提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
ROS—(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。到2008年,主要由威楼加拉吉继续该项目的研发;
ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等),目前ROS主要支持Ubuntu;
ROS可以分成两层,低层是上面描述的操作系统层,高层则是广大用户群贡献的实现不同功能的各种软件包,例如定位绘图,行动规划,感知,模拟等等。ROS(低层)使用BSD许可证,所有是开源软件,并能免费用于研究和商业用途。而高层的用户提供的包则可以使用很多种不同的许可证。
一、Ubuntu操作系统版本对应
ROS安装一定要对应相应的操作系统版本,Ubuntu与ROS版本对应关系:
Ubuntu | ROS 1.0 | ROS 2.0 |
---|---|---|
16.04 LTS | Kinetic LTS | Ardent |
18.04 LTS | Melodic LTS | Dashing LTS |
20.04 LTS | Noetic LTS | Foxy LTS |
这里我使用是Ubuntu的18.04版本,因此选择安装Ros-Melodic版本。
二、安装ROS
1.换源
在应用面板中打开“软件和更新”,打开后按照下图进行配置(确保“restricted”, “universe” 和 “multiverse”打上勾),然后在ubuntu软件栏将“下载自”的地址改为国内源,这里选择的是科大源,配置完关闭窗口即可。
2.添加国内源
我选择科大源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
3.设置密钥
配置公网密钥,为了确保系统认为该路径安全。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4.安装ROS
在添加新源后,更新一下源列表。
sudo apt-get update
然后安装桌面完整版的ROS melodic。
sudo apt-get install ros-melodic-desktop-full
注意:这一步可能会出现如下问题(如果没出现直接跳到第5步):
输入指令:sudo apt-get install ros-melodic-desktop-full 后有如下报错:
ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装
依赖: ros-melodic-perception 但是它将不会被安装
依赖: ros-melodic-simulators 但是它将不会被安装
依赖: ros-melodic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
参考:解决ros-melodic-desktop-full安装过程中未满足的依赖关系问题
利用aptitude安装所提到的四个依赖软件包(aptitude是个更智能的安装手段,可以更好地处理包间的相互依赖,并给出解决方案供用户选择):
sudo aptitude install ros-melodic-desktop ros-melodic-perception ros-melodic-simulators ros-melodic-urdf-sim-tutorial
会出现一个未满足依赖关系的软件包libgpgme11,但是提示我这个软件包已经安装了,就是版本太高不匹配才报错。
询问是否接受该解决方案?先选择“n”,拒绝第一个解决方案。然后会给出一个建议降级软件包的方案,这里选择“y”,确定降级libgpgme11。
接受方案后,开始安装:
安装好4个依赖包后,就可以正常安装ros-melodic了:
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
5.初始化 rosdepc
rosdepc 可以帮助安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。(这里我们不再用rosdep了,改用大佬 鱼香ROS 的rosdepc)
sudo apt-get install python3-pip
sudo pip install rosdepc
sudo rosdepc init
rosdepc update
注意:这一步可能会出现如下问题(如果没出现直接跳过这段解决方法):
sudo: pip:找不到命令
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
参考:1)在ubuntu中使用sudo找不到命令,2)linux中pip命令找不到怎么解决
原因分析:主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,因此无法找到我们想要的命令。
1、首先打开sudo的配置文件:
sudo vim /etc/sudoers
找到如下部分:
Defaults env_reset
将这项改为:
Defaults !env_reset
取消掉对PATH变量的重置。
2、然后编辑配置文件~/.bashrc:
sudo vim ~/.bashrc
添加;
alias sudo='sudo env PATH=$PATH'
使修改生效:
source ~/.bashrc
这样sudo执行命令时所搜寻的路径就是系统的PATH变量中的路径,可以使用sudo pip安装了。
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
6.设置环境变量
关于ROS的启动,我们需要在启动终端窗口的时候,生效一下我们的ROS功能内径, 但是每次打开一个窗口手动生效依次很麻烦,所有可以将需要生效的内容放在~/.bashrc文 件内,这样在每次启动终端的时候就可以自动生效了。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
7.安装生成包依赖
sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
至此ROS已经成功安装完成了。
三、验证ROS
ROS系统的启动需要一个ROS Master,即节点管理器,可以在终端输入roscore指令来启动ROS Master:
roscore
新打开一个终端,启动一个小海龟的例程:
rosrun turtlesim turtlesim_node
再打开一个终端,输入:
rosrun turtlesim turtle_teleop_key
测试结果是,你可以用键盘的↑、↓、←、→来控制小乌龟移动。
注意:这一步可能会出现如下问题(如果没出现直接跳过这段解决方法):
IOError: [Errno 13] Permission denied: “/home/XXXX /.ros/roscore-11311.pid"
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
参考:roscore 运行失败,提示 /.ros/roscore-11311.pid 没权限的问题
原因分析:这个文件夹的权限不够,只要把~/.ros/ 整个文件夹权限设置一下就可以了。
sudo chmod 777 -R ~/ .ros/
----------------------------------------------------------------解决方法-----------------------------------------------------------------:
总结
新人第一次安装,记录以供自己使用,如有错误敬请谅解。
安装教程主要参考:
1)ROS教程(一):ROS安装教程(详细图文)
2)百分百成功的ros安装教程,有手就能看懂!!!