ros的安装过程总体参考了 Ubuntu18.04安装Ros,这篇文章还是比较靠谱的,不过它安装的是ros-melodic-desktop-full
开始安装前先下载rosdistro,下载地址:github rosdistro,如果github打不开,从下边的地址下载,地址来源:rosdistro下载安装,解决rosdep init失败的时候要用
链接:https://pan.baidu.com/s/1ZjMcvqOvLRa_iTdXis8ufg
提取码:01e2
补充介绍ros镜像相关:可在网站docker hub: ros查找不同的ros docker镜像版本,选择tag搜索想要的ros版本,如 melodic-ros-core,简单查了下,melodic-ros-base是在core版本基础上拓展得到的,额外安装了一些基础工具和库;点开镜像我们能看到它的镜像层image layer,可看到镜像构建的过程,在容器内安装ros-core时使用了其中的一些命令
安装步骤如下
2.1 更新镜像地址和keys
echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros1-latest.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
2.2 软件更新并安装ros-core
apt-get update && apt-get install --no-install-recommends ros-melodic-ros-core=1.4.1-0*
安装过程需要输入时区,选择6 Asia 和 70 Shanghai继续安装
2.3 设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc && source ~/.bashrc
2.4 安装库依赖
apt install -y python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
2.5 rosdep初始化
rosdep init
如果报错:ERROR: cannot download default sources list from
按照如下方式解决:
(1) 将下载好的rosdistro包放到容器内,如 /home/ 目录下,文件/文件夹拷贝命令
docker cp rosdistro containerId:/home
(2) 拷贝后文件路径为 /home/rosdistro,修改目录下rosdep/sources.list.d/20-default.list文件,替换其中的地址为本地文件地址
vim /home/rosdistro/rosdep/sources.list.d/20-default.list
修改后如下
(3) 修改/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py文件中的DEFAULT_SOURCES_LIST_URL
vim /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
(4) 修改/usr/lib/python2.7/dist-packages/rosdep2/rep3.py文件中的REP3_TARGETS_URL
vim /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
修改后如下
(5) 修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py文件中的DEFAULT_INDEX_URL
vim /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
修改后如下
(6) 然后再执行rosdep init或sudo rosdep init
2.6 rosdep更新
rosdep update
2.7 清理安装残留
apt-get autoclean -y && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
至此就完成了容器内melodic-ros-core的安装,执行roscore测试一下。如果安装过程中有碰到其他问题,欢迎留言讨论
参考文章:
docker hub ros镜像层
ubuntu18.04安装ros
下载rosdistro
解决rosdep init参考
ros base对比ros core
created by shuaixio, 2022.06.18