虚拟机Ubuntu18.04安装对应ROS版本详细教程!(含错误提示解决)

参考链接:

Ubuntu18.04安装Ros(最新最详细亲测)_向日葵骑士Faraday的博客-CSDN博客

1.4 ROS的安装与配置_哔哩哔哩_bilibili

ROS官网:http://wiki.ros.org/melodic/Installation/Ubuntu

一、检查cmake

安装ROS时会自动安装旧版的Cmake3.10.2。所以在安装Ros之前,需要先检查此先是否有安装Cmake。如果之前已经安装新版的cmake,那电脑中存在多个版本的cmake,如果没有安装,则可以在安装完ROS后再安装需要版本的cmake。如何让cmake命令指向我们所需的特定版本?可参考下面这篇博客:

Unbuntu安装Ros后Cmake变成3.10_ros 默认的cmake版本_向日葵骑士Faraday的博客-CSDN博客

(安装完ROS后会显示cmake版本为3.10.2)

二、安装版本检查

不同的Ubuntu安装的ROS版本不同。Ubuntu18.04对应的ros版本为RS Melodic,不要安装错了。可以去官网melodic/Installation/Ubuntu - ROS Wiki查看其他对应版本。

三、安装步骤

1.安装Ubuntu的软件和更新源

1)先检查Ubuntu软件和更新源

将四个选项全部选上,同时将下载源更换为国内源。默认的服务器比较慢,换成阿里云,清华,中科大都是可以的。

2)添加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'

2. 设置ROS安装密钥

公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。设置ROS安装密钥,输入以下命令:

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

查看软件包密钥可以使用 apt-key命令。

3. 更新Ubuntu软件源

更新Ubuntu软件源,输入以下命令:

sudo apt update

4. 安装ROS桌面完整版

在终端输入以下命令,慢慢等待安装完成:

这个命令将安装完整的ROS软件,包括ROS,rqt,rviz,机器人通用库,2D / 3D模拟器,导航和2D / 3D感知等等的全套基础组件。

sudo apt install ros-melodic-desktop-full

5. 设置ROS环境变量

设置ROS环境变量,输入以下命令:

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

6. 安装ROS工具

安装ROS工具,输入以下命令:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

7. 初始化ROS安装

在初始化ROS安装时,会从外国的网站raw.githubusercontent.com拉取一些信息和文件。这个网站现在被墙了,导致这一步出错。不用爬楼梯的解决办法如下:

1)修改/etc/hosts文件

终端输入以下命令并回车:sudo gedit /etc/hosts,将hosts文件打开,把下面这些地址拷贝到hosts文件末尾,然后保存。

199.232.28.133 raw.githubusercontent.com
192.30.253.118 gist.github.com
185.199.110.153 github.io
151.101.113.194 github.global.ssl.fastly.net
52.216.227.168 github-cloud.s3.amazonaws.com
52.74.223.119 github.com
199.232.28.133 avatars1.githubusercontent.com
199.232.28.133 avatars2.githubusercontent.com
199.232.28.133 avatars0.githubusercontent.com
199.232.28.133 avatars3.githubusercontent.com
199.232.28.133 user-images.githubusercontent.com
199.232.28.133 avatars.githubusercontent.com
199.232.28.133 github.map.fastly.net
199.232.28.133 avatars7.githubusercontent.com
54.239.31.69 aws.amazon.com
54.239.30.25 console.aws.amazon.com
54.239.96.90 ap-northeast-1.console.aws.amazon.com
54.240.226.81 ap-southeast-1.console.aws.amazon.com
54.240.193.125 ap-southeast-2.console.aws.amazon.com
54.239.54.102 eu-central-1.console.aws.amazon.com
177.72.244.194 sa-east-1.console.aws.amazon.com
176.32.114.59 eu-west-1.console.aws.amazon.com
54.239.31.128 us-west-1.console.aws.amazon.com
54.240.254.230 us-west-2.console.aws.amazon.com
54.239.38.102 s3-console-us-standard.console.aws.amazon.com
54.231.49.3 s3.amazonaws.com
52.219.0.4 s3-ap-northeast-1.amazonaws.com
54.231.242.170 s3-ap-southeast-1.amazonaws.com
54.231.251.21 s3-ap-southeast-2.amazonaws.com
54.231.193.37 s3-eu-central-1.amazonaws.com
52.218.16.140 s3-eu-west-1.amazonaws.com
52.92.72.2 s3-sa-east-1.amazonaws.com
54.231.236.6 s3-us-west-1.amazonaws.com
54.231.168.160 s3-us-west-2.amazonaws.com
52.216.80.48 github-cloud.s3.amazonaws.com
54.231.40.3 github-com.s3.amazonaws.com
52.216.20.171 github-production-release-asset-2e65be.s3.amazonaws.com
52.216.228.168 github-production-user-asset-6210df.s3.amazonaws.com
————————————————
版权声明:本文为CSDN博主「向日葵骑士Faraday」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/KIK9973/article/details/118755045

2)修改/etc/resolv.conf 文件

.终端输入以下命令并回车sudo gedit /etc/resolv.conf将原有的nameserver那一行注释,并添加以下两行后保存:

nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

3)再次执行sudo rosdep init

显示如上信息则表示rosdep初始化成功,如果出现以下错误提示:

是因为20-default.list 这个文件已经存在,解决办法就是

删除20-default.list这个文件。

终端输入以下命令并回车删除文件:sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

再次执行sudo rosdep init

8. rosdep update 更新

在终端输入以下命令并回车rosdep update

网络良好的话,很快就更新完成了,更新成功会显示上述信息。如果出现更新超时read operation timed out的错误提示,是因为raw.githubusercontent.com这个网站被墙,国内网拉取信息网速缓慢。

解决办法1:多次执行rosdep update操作,网络良好的情况下有可能完成所有更新。如果还是不行,使用办法2.

解决办法2:将更新所需要的文件下载放在本地文件夹,并修改执行更新的路径。在本地完成更新,避免向外国网站拉取信息和文件。

CSDN作者银时大魔王已经将更新所需的文件整理好上传云中(大家可以去观摩原文):
链接: https://pan.baidu.com/s/1PhTCqtvScV_XGf9ac0CcCg 提取码: w3ix

将下载提取出的文件夹移动到/etc/ros文件夹下,终端输入sudo cp -r ../ros_github/ /etc/ros/

注意:../ros_github/为自己提取安放的路径,需要改成自己的)

再修改更新文件路径:

参考链接:Ubuntu 18.04 安装 ROS Melodic 中 sudo rosdep init 和 rosdep update 一定能成功的方法,就硬干-CSDN博客

1)修改index-v4.yaml路径

终端输入以下命令回车:sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py将该文件中第68行代码注释并添加file:///etc/ros/ros_github/index-v4.yaml,见下图

2)修改 /etc/ros/rosdep/sources.list.d/20-default.list文件

终端输入以下命令回车:sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list再将原有内容全部注释 或者 删除。最后添加以下内容在文档中。如下图所示

再次执行rosdep update

常见问题:如果遇到Hit缺失,更新不完整的情况 ,可以尝试关闭终端 再次执行更新命令。多尝试几次就能成功。

到此,ROS安装就算成功了。

四、检查安装情况:运行小海龟和rviz

终端输入命令回车:roscore

出现以上提示则代表安装成功。

接下来运行小海龟。开启第二个终端输入rosrun turtlesim turtlesim_node会出现一个小海龟

然后开启第三个终端输入rosrun turtlesim turtle_teleop_key ,接下来就可以通过方向键控制海龟的移动。

最后检查rviz等高级功能的运行。新开一个终端输入:rosrun rviz rviz,显示以下界面表示运行成功。


以上就是Unbuntu18.04安装Ros对应版本的全部过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/127353.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql MVCC(多版本并发控制)理解

最近看MVCC相关资料,这边做一个记录总结,方便后续理解。 目录 一、MVCC相关概念 二、MVCC实现原理 1.隐藏字段 2.undo log 3.Read View 4.MVCC的整体处理流程 5. RC,RR级级别下的innoDB快照读有什么不同 6.总结 一、MVCC相关概念 1…

什么是业务流程图(TFD),数据字典(DD),数据流程图(DFD)

什么是业务流程图(TFD),数据字典(DD),数据流程图(DFD)? 答: TFD是一种描述系统内各单位、人员之间的业务关系、作业顺序和管理流向的图表,利用它可以帮助分析…

震撼消息!OpenAI考虑加入AI芯片制造联盟

原创 | 文 BFT机器人 OpenAI是著名的ChatGPT背后的强大力量,可能很快就会深入研究人工智能芯片制造的动态世界。据路透社最新报道,该公司正在积极考虑创建其独特的人工智能芯片,甚至正在考虑收购该领域的潜在目标。 全球对人工智能芯片的需求…

一些流程图(自用)

前端一次访问后端程序的请求流程 web程序运行流程

竹云筑基,量子加密| 竹云携手国盾量子构建量子身份安全防护体系

9月23日-24日,2023量子产业大会在安徽合肥举行。作为量子科技领域行业盛会,2023年量子产业大会以“协同创新 量点未来”为主题,展示了前沿的量子信息技术、产业创新成果,并举办主旨论坛、量子科普讲座等系列专项活动。量子信息作为…

Windows技巧

Windows应用 无限延长Windows10 自动更新时间 管理员身份打开cmd 输入以下代码 这里设置的是3000天,需要恢复更新可以将其设置为1天 reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword…

prometheus使用数据源的timestamp而非server的timestamp

关于timestamp指标的解释 prometheus中的指标timestamp有两个: prometheus拉取时刻的timestamp,即服务端的timestamp:time.Now();exporter的/metrics接口,除了返回metric,value,还返回timesta…

Web:前端常用的几种Http请求GET和POST样例

1、简述 在Web开发过程中,少不了发起Http请求服务端的接口数据,在不同的框架中使用了不同的Http请求方式,常用的请求有fetch、 ajax、 axios、XMLHttpRequest、request,以下样例仅供参考。 2、Fetch Fetch API 是一种 JavaScr…

Elasticsearch:什么时候应该考虑在 Elasticsearch 中添加协调节点?

仅协调节点(coordinating only nodes)充当智能负载均衡器。 仅协调节点的这种特殊角色通过减轻数据和主节点的协调责任,为广泛的集群提供了优势。 加入集群后,这些节点与任何其他节点类似,都会获取完整的集群状态&…

投票礼物打赏流量主小程序开发

投票礼物打赏流量主小程序开发 投票功能:用户可以参与投票,选择自己支持的候选人或选项。礼物功能:用户可以给候选人或其他用户送礼物,以表示赞赏或支持。打赏功能:用户可以给候选人或其他用户打赏,以表示…

x64内核实验7-线程

x64内核实验7-线程 TOC 线程是比较重要的内核结构,思考一下其实可以想到线程结构体在64位下的变化应该不会很大最多只是扩充了一些内容,因为从我们之前分析段页时候会发现cpu更新的这些内容大部分不影响xp时候的线程切换机制,下面我们来验证…

MySQL笔记(进阶篇)

包含内容: 存储引擎 索引 SQL优化 视图/存储过程/触发器 锁 InnoDB引擎 MySQL管理 存储引擎 MySQL体系结构 连接层:最上层是一些客户端和连接服务,主要完成一些类似于连接处理,授权认证,及相关的安全方案.服务器也会为安全接入的每个客户验证它所…