本章主要讲解的是 ROS Melodic 版本在 Ubuntu 18.04 系统上的安装,后面的内容会在此环境下进行。
1. 添加ROS的镜像源
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'
添加的镜像源为中国科技大学的镜像源。由于ROS的主服务器在国外,国内访问时速度比较慢,因此我们添加国内镜像源。
2. 配置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
如果以上服务器在连接过程中存在问题,可以用以下两个备选地址:
hkp://pgp.mit.edu:80
hkp://keyserver.ubuntu.com:80
3. 更新Ubuntu的源
sudo apt-get update
4. 安装ROS melodic
sudo apt install ros-melodic-desktop-full
如果没有完全安装成功,可以执行以下命令来修复安装(基本不会用到这条命令):
sudo apt-get -f install ros-melodic-desktop-full
ROS初始化
1. 配置全局环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
melodic安装在/opt/ros/melodic
目录下,我们需要将安装目录下的功能包配置到系统的环境变量中去。这样我们才能使用ROS提供给我们的一些命令工具。
2. 安装打包工具依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep(如果是python3,安装 python3-rosdep,不要安装 python3-rosdep2,否则在运行rosdep install ... 时会remove python3-rosdep2,同时提示安装python3-rosdep-modules,导致rosdep被删除。)
3. 初始化rosdep
sudo rosdep init
rosdep update
① 在/usr/lib/python2.7/dist-packages/rosdep2下打开终端
cd /usr/lib/python2.7/dist-packages/rosdep2
执行命令:
sudo gedit ./sources_list.py
在311行添加如下代码:
url="https://ghproxy.com/"+url
将72行代码修改成如下代码(添加https://ghproxy.com/前缀):
DEFAULT_SOURCES_LIST_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
点击Save保存并退出。
此时sudo rosdep init应该能正常下载文件到/etc/ros/rosdep/sources.list.d/20-default.list
/****************************************************此部分可不尝试
修改20-defaults.list中的地址,添加前缀https://ghproxy.com/
然后运行rosdep update,但是可能提示No address associate with hostname
(使用wget也会提示could not resolve http,解决方式一样)
这是因为dns在解析主机时失败,需要修改dns
打开/etc/resolve.conf
在nameserver 127.0.1.1前再加一行 nameserver 8.8.8.8
在/etc/hosts中添加
151.101.84.133 raw.githubusercontent.com
这样就可以解决无法解析主机的问题,此时rosdep update应该能下载部分*.yaml文件
******************************************************************************/
② 同样在/usr/lib/python2.7/dist-packages/rosdep2文件夹下,执行命令:
sudo gedit ./gbpdistro_support.py
将36行代码修改成如下代码(添加https://ghproxy.com/前缀):
FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/' \
在204行添加如下代码:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
点击Save保存并退出。
③ 同样在/usr/lib/python2.7/dist-packages/rosdep2文件夹下,执行命令:
sudo gedit ./rep3.py
将39行代码修改成如下代码(添加https://ghproxy.com/前缀):
REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
点击Save保存并退出。
④ 在/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider(注意,这一步需要更改当前目录)下,执行命令:
cd /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider
sudo gedit ./github.py
将119行代码修改成如下代码(添加https://ghproxy.com/前缀):
url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/%s' % \
点击Save保存并退出。
⑤ 在
cd /usr/lib/python2.7/dist-packages/rosdistro
(注意,这一步需要更改当前目录)下,执行命令:
sudo gedit ./__init__.py
将68行代码修改成如下代码(添加https://ghproxy.com/前缀):
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
在/usr/lib/python2.7/dist-packages/rosdistro/rosdistro.py中修改
distro_url = urlopen('https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/%s.yaml' % name)
还可以在${HOME}/.ros/rosdep/sources.cache/index中修改(可能在执行过rosdep update后才会生成)
接下来执行:
sudo rosdep init
成功提示如下信息:
然后执行:
rosdep update
成功提示如下信息:
7. 验证是否安装成功
打开一个终端,输入:
roscore
不要关闭前面的终端,另外打开一个终端,输入:
rosrun turtlesim turtlesim_node
不要关闭前面两个终端,另外再打开一个终端,输入:
rosrun turtlesim turtle_teleop_key
如果出现以下窗口,并且可以使用键盘控制小乌龟的运动,则证明安装成功。
ros安装2
鱼香肉丝安装。
PCL库安装
sudo apt-get install libpcl-dev
(直接成功则不用软链接)
这是已经编译好的点云库(PCL-1.7),附带安装了VTK-6.2.0,以及各种杂七杂八的依赖库。
安装后的编译过程中出现了库文件vtkproj4.so丢失的问题。这个问题与我另一篇寻找缺失库文件的文章不同,这是VTK-6.2.0 (build10)中的BUG,而原作者已经在build11中修正了该问题。
这个问题有一个非常简单的解决方法:在/usr/lib文件夹下,我发现了vtk5.10的相关库文件,考虑到5.10与6.2版本间的差距应该不大,我直接进行了软链接……
sudo ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so
编译通过!告辞!
sudo apt-get install libpcap-dev libeigen3-dev libboost-dev libpcl-dev
参考:
【ROS】Ubuntu18.04下安装ROS-Melodic的步骤及rosdep update报错的解决方案_Quentin_HIT的博客-CSDN博客