Ubuntu18.04安装ROS Melodic(解决网络原因,先将所需压缩包下载到本地,然后rosdep update)
一、ROS介绍
机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。 因此自ROS诞生以来,受到了学术界和工业界的欢迎,如今已经广泛应用于机械臂、移动底盘、无人机、无人车等许多种类的机器人上。
具体探索请参考:ROS探索总结(一)——ROS简介
二、版本选择
Ubuntu版本 | ROS版本 |
---|---|
20.04 | Noetic Ninjemys |
18.04 | Melodic Morenia |
16.04 | Kinetic Kame |
三、安装步骤
① 设置安装源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIBCODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
② 设置密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
在更新之前,需要安装公钥,否则无法验证签名,命令如下:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
③ 更新软件列表
sudo apt update
④ 安装ROS
sudo apt-get install ros-melodic-desktop-full
⑤ 安装完成之后初始化rosdep
-
执行如下命令,否则将报错: " sudo: rosdep:找不到命令 "
sudo apt install python-rosdep
-
初始化rosdep
sudo rosdep init rosdep update
大多数情况下,做到这一步都会报错,除非大家科学上网,可能不会出现如下情况:
···Website may be down
或者···ERROR: unable to process source
错误原因是由于 raw.githubusercontent.com 被墙,程序无法下载相应的文件导致的,正常情况下我们也无法访问该网站。按照网上大多数做法是修改hosts记录,然而并没有成功啊😭😭。
没办法了,最后只能放弃在线安装,先把所需的文件都存在本地,再来尝试了
-
问题解决
A. 下载rosdistro-master的压缩包,然后解压到主目录cd ~ unzip rosdistro-master.zip mv rosdistro-master rosdistro
链接:https://pan.baidu.com/s/1z25LvAV1Z7dCTuzELqhOsA</a><br> 提取码:75r1
B. 修改 20-default.list 文件
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
内容修改如下:
# os-specific listings first yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx # generic yaml file:///home/xxx/rosdistro/rosdep/base.yaml yaml file:///home/xxx/rosdistro/rosdep/python.yaml yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
注意:上述 xxx 需替换为自己的用户名,如本人的用户名为: helloworld
后面的 xxx 同样也需要替换为自己的用户名!!!
C. 修改 sourceslist.py 文件
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sourceslist.py
注释原
DEFAULTSOURCES_LIST_URL
一行,然后在其后添加如下一行,注意:xxx替换
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
D. 修改 rep3.py 文件
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
注释原
REP3_TARGETS_URL
一行,然后在其后添加如下一行,注意:xxx替换
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
E. 修改 __init.py 文件
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init
.py
注释原
DEFAULT_INDEX_URL
一行,然后在其后添加如下一行,注意:xxx替换
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
-
重新
rosdep update
,如果结果如下图所示,则说明该步骤已经成功了
⑥ 添加 ROS 环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
⑦ 安装 rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
⑧ 第一次启动ROS时,需要进行环境变量配置,执行如下命令
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
四、出来吧,小王八
先开启三个终端,然后分别依次输入如下命令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
然后将鼠标聚焦到输入最后一个命令的窗口,通过键盘的上下左右键,分别控制小王八的前进,后退,左转,右转。