基于ubuntu1604的ROS安装

news2024/11/17 10:31:43

不同版本的Ubuntu都有对应的ROS版本,不要强行安装不对应的版本,否则遇到问题会很难找到解决方法。此教程也只是基于Ubuntu1604和kinetic版本的ROS。

一、基本流程

以下命令仅记录执行顺序,不要无脑复制执行,重在理解

#基本更新
sudo apt update
sudo apt upgrade

##添加ROS下载源
touch /etc/apt/sources.list.d/ros-latest.list
#阿里ros源,将以下语句复制进ros-latest.list即可
deb https://mirrors.aliyun.com/ros/ubuntu/ xenial main

#设置秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
#继续执行,curl未安装的先安装curl
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -

安装ROS完整版,大概2G多,需要等一会儿,ros安装路径在/opt/ros/kinetic/
sudo apt install ros-kinetic-desktop-full
二、rosdep

以上过程较为容易,有不同之处百度下即可解决。下面要进行rosdep初始化,可能会有一些问题,但耐心仔细地跟着网上的教程走一般也能搞定。首先看问题:

sudo rosdep init

大概率会报以下错误:
问题截图
上面的命令其实就是从指定的地址下载一个文件,如图中所示,但由于国内科学上网的问题没法下载下来,方法也很简单,将需要的文件转移到一个能访问的地址就可以了,或者更直接一点,把文件及源码直接克隆到本地。

git clone https://github.com/ros/rosdistro.git

如果这个也没法克隆,就先利用码云从github导过来,再克隆到本地,克隆完成后,修改原来需要下载的文件,因为那个文件作用也是指定其他文件地址,很不幸也是几个访问不到的地址,所以也要改为本地地址(或能访问到的网络地址)。

cd rosdistro/rosdep/sources.list.d/
vim 20-default.list

20-default.list这个文件在执行完rosdep init后会被放到/etc/ros/rosdep/sources.list.d/下。
可以看到其内容是关于几个yaml文件网络位置的,我们已经将整套源码包括这几个文件克隆到本地了,所以可以改成本地地址(只需要替换网络位置部分即可)。修改前:

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

修改后(不要无脑复制,重在理解):

# os-specific listings first rosdep update
yaml file:///home/lxh/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/lxh/rosdistro/rosdep/base.yaml
yaml file:///home/lxh/rosdistro/rosdep/python.yaml
yaml file:///home/lxh/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/lxh/rosdistro/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

根据以上经验,只要涉及到无法访问的地址的文件都要改,大概还有一下几个文件需要修改:

/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

需要修改的地方都包含一个我们无法访问的网络地址https://raw.githubusercontent.com,直接搜索这个字符串就能找到修改的地方,改后内容(对应上述文件顺序):

DEFAULT_INDEX_URL = 'file:///home/lxh/rosdistro/index-v4.yaml'
REP3_TARGETS_URL = 'file:///home/lxh/rosdistro/releases/targets.yaml'
FUERTE_GBPDISTRO_URL = 'file:///home/lxh/rosdistro/releases/fuerte.yaml'
DEFAULT_SOURCES_LIST_URL = 'file:///home/lxh/rosdistro/rosdep/sources.list.d/20-default.list'

此时再执行

sudo rosdep init
rosdep update

畅通无阻。

三、rosinstall

没什么难度了

##配置环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

##安装
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
四、测试(小海龟)

要打开窗口界面的,所以需要在ubunutu16桌面打开终端执行,需要三个终端

##相当于服务器,给终端和控制端传递消息
roscore

##小海龟终端
rosrun turtlesim turtlesim_node

##小海龟控制端,按下方向键控制小海龟
rosrun turtlesim turtle_teleop_key

看到图像界面并且能进行控制说明测试通过,安装完成。

博文参考1http://t.csdnimg.cn/I5F0D
博文参考2http://t.csdnimg.cn/bsZzU

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 进阶问题列表,巩固自己的知识。

不定时更新 JavaScript 进阶问题列表 从基础到进阶,测试你有多了解 JavaScript,刷新你的知识,或者帮助你的 coding 面试! 💪 🚀 答案❤️ 1. 输出是什么? function sayHi() {console.log(na…

【Git】Git 学习笔记_操作本地仓库

1. 安装与初始化配置 1.1 安装 下载地址 在文件夹里右键点击 git bash here 即可打开命令行面板。 git -v // 查看版本1.2 配置 git config --global user.name "heo" git config --global user.email xxxgmail.com git config --global credential.helper stor…

关于Alibaba Cloud Toolkit 下载配置以及后端自动部署

idea中File-Settings-Plugins 搜索Alibaba Cloud Toolkit点击下载,下载完成重启 1、点击 Tools-Alibaba Cloud-Deploy to Host 部署到主机 2、配置服务器ip、jar包启动命令、服务器jar存放位置 3、设置服务器ip用户名密码,点击测试连接情况 4、配置脚本…

基于SSM的酒店客房管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

读取xlsx文件存入MongoDB数据库中

要将xlsx文件存入MongoDB数据库,您需要执行以下步骤: 步骤1:安装必要的库 您需要安装pymongo和openpyxl库。您可以使用以下命令安装: pip install pymongo openpyxl 步骤2:创建一个MongoDB数据库 您需要创建一个Mon…

Etcd 常用命令与备份恢复

1. etcd简介 官方网站:etcd.io 官方文档:etcd.io/docs/v3.5/op-guide/maintenance 官方硬件推荐:etcd.io/docs/v3.5/op-guide/hardware github地址:github.com/etcd-io/etcd etcd是CoreOS团队于2013年6月发起的开源项目&#xf…

常用评价指标及方法(以NILM及SV为例)

1. NILM的评价指标 主要有 accuracy,precision,recal, F1-score, F1-micro, F1-macro 首先需要了解一下几个概念,TP (true positive), FP (false positive), TN (true negitive), FN (false negitive)。 TP:true positive。预测是正确的正样本FP:false positive。…

Linux应用开发基础知识——Makefile 的使用(二)

前言: 在 Linux 中使用 make 命令来编译程序,特别是大程序;而 make 命令所执 行的动作依赖于 Makefile 文件。最简单的 Makefile 文件: hello: hello.c 、gcc -o hello hello.c 、clean:、 rm -f hello 将上述 4 行存为 Makefile …

通过关键词合并2张excel表格——Python代码实现

问题描述 2个excel表格中都包含了一个共同的关键字【单品编码】,如何将2个表通过该关键字合并为一张表格。使用Python代码完成该任务。 1.数据说明 附件1中的数据excel格式 销售日期,扫码销售时间,单品编码,销量(千克),销售单价(元/千克),销售类型,是否打折销售…

访问控制列表

目录 ACL ACL原理 ACL包过滤方式 ACL通用命令 查看ACL表命令 删除整张表命令 接口配置ACL ACL分类 标准ACL 标准ACL的动作与条件 通配符掩码 扩展ACL 扩展ACL的动作与条件 命名ACL 前言 书写方式 ACL 含义:访问控制列表,其是一种包过滤…

element 弹窗浏览器后退-遮照层还存在问题 以及跟vue keep-alive冲突

问题:element 弹窗浏览器后退-遮照层还存在问题 查询官网可以设置 modal-append-to-body“false” 可以全局设置 ElementUI.Dialog.props.modalAppendToBody.default false 后续 基本到这能解决问题,不过本项目比较特殊,使用了 keep-alive…

你真的了解static吗?

目录 一.static1.概念2.存在形式3.访问形式注意4.static成员变量的初始化4.1就地初始化4.2使用代码块初始化 5.关于main 二.代码块概念1.普通代码块2.构造代码块3.静态代码块注意事项①加载形式②加载顺序 一.static 1.概念 在Java中,被static修饰的成员&#xff0…

Visual Studio 2017附加依赖项

在读韩国人尹圣雨的《TCP/IP网络编程》,在书中教我如何在Visual Studio 2008中设置附加依赖项,但是我使用的是Visual Studio 2017,所以我写下这篇文章学习如何在Visual Studio 2017附加依赖项。 在项目这里选择属性。 选择输入这一项,然后点…

如何通过货架电子标签PTL灯光指引拣选优化仓库管理

物流仓储行业的不断发展和智能化技术的应用,仓库管理的效率和精度要求也日益提高。在这样的背景下,PTL亮灯拣选系统作为一种智能化设备,采用分布式管理结构,为仓库管理带来了新的可能性。 PTL亮灯拣选系统采用智能计算机作为主控设…

低代码工具的常见用例与受众市场

目录 一、低代码工具的常见用例是什么? 1.业务流程管理(BPM) 2.自定义应用程序开发 3.数据管理和分析 4.移动应用程序开发 二、低代码受众和市场 1.制造商 2.个人开发者/自由职业者 3.代理商 4.小型企业和初创企业 5.中型企业 6.营销团队 7.软…

Voice Control for ChatGPT简单高效的与ChatGPT进行交流学习。

快捷又不失灵活性 日常生活中,我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的,毕竟相对于文字来说语音就不会显的那么的苍白无力,同时最大的好处就是能解放我们的双手吧,能更快实现两者间的对话,沟通便更高效…

基于Java Web的在线教学质量评价系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【数据结构】树与二叉树(五):二叉树的顺序存储(初始化,插入结点,获取父节点、左右子节点等)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语5.1.4 树的表示 5.2 二叉树5.2.1 二叉树1. 定义2. 特点3. 性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉…

免费好用的网页采集工具软件推荐

在众多各具特色的采集器软件中,真正好用的采集器软件有哪些? 自己一个个去查找和尝试无疑会耗费大量的时间和精力。 因此,在深入体验大多数采集器后,给大家推荐几款优秀且好用的免费网页采集器软件。 本文将对这几款采集器进行…

【机器学习】梯度下降预测波士顿房价

文章目录 前言一、数据集介绍二、预测房价代码1.引入库2.数据3.梯度下降 总结 前言 梯度下降算法学习。 一、数据集介绍 波士顿房价数据集:波士顿房价数据集,用于线性回归预测 二、预测房价代码 1.引入库 from sklearn.linear_model import Linear…