Ubuntu20.04-ROS:Noetic安装

参考B站古月居老师的视频以及大量博客反复尝试多次,终于安装成功,现将安装过程进行详细说明,望后来者避坑。

版本说明

因为安装的Ubuntu版本为20.04,所以对应的ROS版本为Noetic。

安装过程

1. 添加 source.list

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2. 添加keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3. 安装

sudo apt update
sudo apt install ros-noetic-desktop-full

安装过程可能会持续10~20mins,请耐心等待,若因网络问题无法安装请尝试将第一步换为下面的源,再按上述步骤安装。

sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

4. 初始化与更新

sudo rosdep init
rosdep update
4.1 初始化报错解决办法

可能会提示下载python-rosdep2,noetic对应的版本应为python3-rosdep2,故安装命令为

sudo apt install python3-rosdep2

安装完成后再执行 sudo rosdep init 时需要重置初始化文件20-default.list,直接删除该文件

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

再次执行初始化命令,可能会出现下列报错:

ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.

解决办法如下:

4.1.1 查询IP

这是因为https://raw.githubusercontent.comt网站的IP地址变化引起的,所以需要访问 https://www.ipaddress.com/, 查询 raw.githubusercontent.com 的IP地址 (一键查询

查询到的网址IP

4.1.2 修改hosts
sudo gedit /etc/hosts

打开hosts文件如下:

127.0.0.1       localhost
127.0.1.1       xmzb

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

在最后一行添加(IP根据你查到的修改)

185.199.110.133 raw.githubusercontent.com

保存退出后运行初始化命令如果仍然报错尝试更换其他IP地址。
初始化成功后会提示 rosdep update 的信息。

4.2 更新报错解决办法

执行 rosdep update可能会出现以下报错:

$ rosdep update reading in sources list data from /etc/ros/rosdep/sources.list.d ERROR: error loading sources list: ('The read operation timed out')

这是由于访问的网站被墙的缘故,所以需要添加代理,更新过程一共会访问5个网站,建议全部都启用代理进行访问

4.2.1 打开包含资源下载函数的文件
sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py
4.2.2 添加代理
url="https://ghproxy.com/"+url

代码修改位置:

代理

4.2.3 修改 /usr/lib/python3/dist-packages/rosdistro/init.py 文件中的DEFAULT_INDEX_URL
sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
//修改第68行的地址
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
4.2.4 修改其余(4个)文件中的地址,在地址 https://raw.githubusercontent.com/… 前添加https://ghproxy.com/
sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
//修改第36行的地址
sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py 72//修改第72行
sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py
//修改第39行
sudo gedit /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py
//修改第68行、119行

再次运行 rosdep update ,成功完成对5个网站的访问(Hit)并获取到相应资源。

5hit

5 环境配置

5.1 必须在使用ROS的每个bash终端中获取此脚本的源代码
source /opt/ros/noetic/setup.bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

至此已经在Ubuntu20.04的系统中完整安装ROS Noetic

6 安装rosinstall

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

7 测试安装是否成功

输入ros并敲击两次Tab,观察以ros开头的命令是否有roscore

ros

roscore
若没有,按照安装步骤再操作一遍,可以发现第二次安装的时间很短,应该是补齐了之前没有安装好的包。
或者根据古月居老师教程直接输入roscore命令,可能会显示以下错误:

Resource not found: roscore ROS path [0]=/opt/ros/noetic/share/ros ROS path [1]=/opt/ros/noetic/share The traceback for the exception was written to the log file

提示安装其他的包,发现安装后没有用,应该改为以下语句

sudo apt-get install ros-noetic-roslaunch

8 尝试控制小海龟

三次命令分别开启不同终端执行

8.1启动ROS Master
roscore
8.2 启动小海龟仿真器
rosrun turtlesim turtlesim_node
8.3 启动海龟控制节点
rosrun turtlesim turtle_teleop_key

使用上下左右键对小海龟进行控制
ros成功
参考资料:

【1】https://blog.csdn.net/Robin_hlt/article/details/114365554
【2】https://blog.csdn.net/maizousidemao/article/details/109476275
【3】https://zhuanlan.zhihu.com/p/392082731

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值