解决方案

ubuntu20.04中安装ROS系统,详细介绍各种错误解决方法,直达小海龟

seo靠我 2023-09-24 03:34:59

因为最近学习的缘故,花了半天的时间安装了ROS,期间因为ubuntu也是临时安装的双系统,遇到了各种各样的问题,这里记录一下,主要集中在ROS系统安装问题的解决。

Ubuntu系统的安装

ubuntu系统SEO靠我的安装网上已经有很多详细的教程,这里就不展开详述了,安装的各种问题都可以在网上找到。我遇到的最大的问题是nvidia的显卡驱动不兼容,使得安装完系统重新启动后一直黑屏,这个问题网上查到的方法很乱,我也SEO靠我尝试了一些不同的解决方式,这个可以后面再总结一下,这篇主要讲ROS的安装

ROS系统的安装

ROS的安装其实非常的简单,需要运行命令行不超过10行,总共就四步:添加密钥 ➡ 下载ROS ➡ 初始化 ➡ 设SEO靠我置环境变量。期间遇到了一些错误或者问题其实都是相应的库没有配置好或者网络的问题。所以遇到任何问题就去溯根溯源,定位问题去解决就好了。

0. ROS版本

ROS 虽说也叫操作系统,但它是寄生在 LINUX SEO靠我操作系统之下的。Ubuntu20.04是ROS1支持的最后一个版本,如果安装Ubuntu22.04的话需要用ROS2。当然ROS2有很多的优点,大家都可以去尝试用一下。安装的时候注意版本的名字,版本名SEO靠我字对应了安装包的命名。

UbuntuROS 1.0ROS 2.018.04 LTSMelodic LTSDashing LTS20.04 LTSNoetic LTSFoxy LTS

1. 添加ROS软件源SEO靠我

将下面这条命令复制到ubuntu的终端执行:

sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubunSEO靠我tu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list

2. 添加密钥

将以下命令复制到ubuntu的终端执行,成功后会SEO靠我显示已导入。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4SEO靠我F42ED6FBAB17C654

3. 更新软件源

为了保证后面下载速度,一般需要使用国内的镜像源。一般使用过Linux相关的系统都会进行这一步的操作。更改起来很简单,在命令行或者软件更新器更改都可以。具SEO靠我体可以参考https://blog.csdn.net/qq_44339029/article/details/108916820这篇博客。

4. 安装ROS

执行命令:(注意安装包的版本,noetic是uSEO靠我bunutu20.04里对应ROS1的版本命名)

sudo apt install ros-noetic-desktop-full

5. 初始化rosdep

执行命令:

sudo rosdep init

成功的SEO靠我话会显示 please run rosdep update。

这一步非常建议开VPN,否则会经常性的网络链接错误。主要原因是因为 www.rawgithubusercontent.com 这个网站被墙。SEO靠我

可能遇到的问题如下:

错误1:找不到命令 执行命令: sudo apt install python3-rosdep 错误2 ERROR: cannot download default sSEO靠我ources list from:https: //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-deSEO靠我fault.listWebsite may be down. 执行命令: sudo gedit /etc/hosts

将 185.199.109.133 raw.githubuserconSEO靠我tent.com 加在hosts文件最后。主要原因是增加raw.githubusercontent.com网站的真实IP地址。

错误3: ERROR: default sources list fileSEO靠我 already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initSEO靠我ialize 出现这个这个问题说明前面尝试失败了一两次,输入命令: sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

基本上解决SEO靠我一个错误就可以输入sudo rosdep init命令试试,遇到其他错误再对应解决。最后成功会显示 please run rosdep update ,一定要开VPN科学上网!!!!

6. 更新rosdSEO靠我ep

既然上一步让我们run rosdep update,那肯定得run是吧。

执行命令: rosdep update

不出意外的话会出意外,报错:reading in sources list data fSEO靠我rom /etc/ros/rosdep/sources.list.d

ERROR: error loading sources list: (‘The read operation timed out’SEO靠我)

这一步正常网络下基本不可能跑通,主要问题还是刚刚那个网站被墙,上一步可以VPN解决,但这一步不行,必须更改对应的链接。解决方法主要参考了这个博客:https://blog.csdn.net/leidSEO靠我a_wt/article/details/115120940?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingSEO靠我word-0&spm=1001.2101.3001.4242

基本用这篇博客里的修改方式便可以解决,注意一个问题就是文件夹的位置,因为我们装的是python3-rosdep,所以对应的文件夹在pythoSEO靠我n3而不是python2.7里面,还有一个问题就是注意python的标准换行是四个空格,有时候tab键换行是否可行和你的编辑器的配置有关。

修改命令如下:

打开包含资源下载函数的文件: SEO靠我 sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 添加代理

在 download_rSEO靠我osdep_data 函数里添加url: url="https://ghproxy.com/"+url 修改/usr/lib/python3/dist-packageSEO靠我s/rosdistro/init.py文件中的DEFAULT_INDEX_URL sudo gedit /usr/lib/python3/dist-packages/rosdistroSEO靠我/__init__.py DEFAULT_INDEX_URL = https://ghproxy.com/https://raw.githubusercontent.com/ros/rSEO靠我osdistro/master/index-v4.yaml 修改其余文件中的地址,在地址 https://raw.githubusercontent.com/… 前添加https:/SEO靠我/ghproxy.com/,需要自己定位一下网址在的行数 sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_supSEO靠我port.py sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py 72行 sudo gSEO靠我edit /usr/lib/python3/dist-packages/rosdep2/rep3.py sudo gedit /usr/lib/python3/dist-packageSEO靠我s/rosdistro/manifest_provider/github.py 解决 Hit 第五个地址的报错 sudo gedit /usr/lib/python3SEO靠我/dist-packages/rosdep2/gbpdistro_support.py // 在 给gbpdistro_url赋值前添加 gbpdistro_url =SEO靠我 "https://ghproxy.com/" + gbpdistro_url 运行 rosdep update ,完美解决问题

7. 设置环境变量

执行命令:(注意这里的文件夹名字也是SEO靠我和ros的版本名字匹配的)

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc

8. 安装rosiSEO靠我nstall

执行命令:

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

9. 验证ROS是否SEO靠我安装成功

按理说ROS到这里就安装完成了,执行roscore测试一下:

roscore

如果报错有对应的安装包没有装,那就安装提示重新安装一下。

成功的话会显示 started core service.

可以SEO靠我启动一下小海龟的仿真器试一试,分别打开两个新的终端,每个输入一行以下命令:

rosrun turtlesim turtlesim_node rosrun turtlesim turtleSEO靠我_teleop_key

这时候你按键盘上的方向键就可以控制小海龟移动,ROS成功安装!

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2