文章目录

  • 一、引言
  • 二、安装过程
    • 2.1 配置软件库
    • 2.2 添加ROS软件源
    • 2.3 添加密钥
    • 2.4 安装ROS
    • 2.4 初始化rosdep
    • 2.5 设置环境变量
    • 2.5 构建工厂依赖
  • 三、测试过程
    • 3.1 启动ROS Master
    • 3.2 启动小海龟仿真器(打开一个新终端)
    • 3.3 启动海龟键盘控制节点(打开一个新终端)

一、引言

  ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。

  ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(也就是"节点")框架,这些进程被封装在易于被分享和发布的程序包和功能包中。ROS也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受ROS限制)。同时,所有的工程都可以被ROS的基础工具整合在一起。

参考资料: ROS Wiki


二、安装过程

2.1 配置软件库


  打开Ubuntu系统的软件中心,点击软件和更新。

  确认上述窗口中的前四个选项已被勾选。


2.2 添加ROS软件源

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

  将ROS软件源添加到系统软件源。因为ROS本身具有一个单独的镜像去做维护,这个软件源是系统自身所没有的,需要我们自己去添加。


2.3 添加密钥

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

2.4 安装ROS

sudo apt-get update

  先更新一下软件源,这个指令会从上面的软件源配置里面去搜索所有ROS相关的安装包的路径,并更新到系统里面来。

sudo apt-get install ros-kinetic-desktop-full

  安装桌面完整版,包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知等一些基本功能包。

  安装速度稍微有点慢,请耐心等待。


2.4 初始化rosdep

  rosdep是ROS里的一个工具,它可以用来帮我们完成一些功能包依赖的设置和安装。

sudo rosdep init

  执行rosdep初始化。

  如若显示上述错误,则是因为初始化时不能访问该网址。需要我们采取手动的方法,将20-default.list中的内容获取到并放到相应的位置。

  具体操作如下:
  一、首先进入github.com/ros/rosdistro去把这个包下载下来,或者自提:百度网盘链接,提取码:sfir 。
  二、修改这个包中rosdep/source.list.d/下的文件20-default.list,将这个文件中指向raw.githubusercontent.com的url地址全部修改为指向本地文件的地址,也就是该下载好的包的地址。

# os-specific listings first
yaml file:///home/你的用户名/rosdistro/rosdep/osx-homebrew.yaml osx# generic
yaml file:///home/你的用户名/rosdistro/rosdep/base.yaml
yaml file:///home/你的用户名/rosdistro/rosdep/python.yaml
yaml file:///home/你的用户名/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/你的用户名/rosdistro/releases/fuerte.yaml fuerte# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

注意:在py语言中:url本地文件地址格式是:file://+文件地址,后面更改其他文件中地址的时候也一样。
  三、修改/usr/lib/python2.7/dist-packages/rosdep2下的sources_list.py文件。修改该默认url地址,位置大概在70行左右。

# default file to download with 'init' command in order to bootstrap
# rosdep
#DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
DEFAULT_SOURCES_LIST_URL = 'file:///home/你的用户名/rosdistro/rosdep/sources.list.d/20-default.list'
# seconds to wait before aborting download of rosdep data

  四、修改/usr/lib/python2.7/dist-packages/rosdep2/rep3.py,位置位置大概在38行左右。

# location of targets file for processing gbpdistro files
REP3_TARGETS_URL = 'file:///home/你的用户名/rosdistro/releases/targets.yaml'# seconds to wait before aborting download of gbpdistro data

修改/usr/lib/python2.7/dist-packages/rosdistro/__ init__.py,位置位置大概在68行左右。

# index information
DEFAULT_INDEX_URL = 'file:///home/你的用户名/rosdistro/index-v4.yaml'def get_index_url():

再次执行rosdep初始化

sudo rosdep init


  提示我们更新软件源的列表,以此来确定每个版本间的依赖。

rosdep update

2.5 设置环境变量

  ROS安装了很多命令,需要通过环境变量告诉系统这些命令在什么位置。

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

  将ROS的环境变量设置到系统里面来。

source ~/.bashrc

  使设置环境变量生效。

2.5 构建工厂依赖

  rosinstall是一个经常使用的命令行工具,它使我们能够轻松地从一个命令中下载许多 ROS 包的源树,从而帮助我们安装ROS的一些依赖包的。

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

  至此,ROS安装已全部完成。

三、测试过程

  为了检测ROS安装是否成功,还要对其进行测试。接下来我们运行一个小海龟例程。

3.1 启动ROS Master

roscore

3.2 启动小海龟仿真器(打开一个新终端)

rosrun turtlesim turtlesim_node

  此时会弹出仿真器的窗口,里面有一只小海龟。

3.3 启动海龟键盘控制节点(打开一个新终端)

rosrun turtlesim turtle_teleop_key

  这时便可以通过键盘控制小海龟移动了(注意鼠标的光标应该在这行命令所在的终端上):


  运行至此,说明ROS已成功安装!

ROS系统安装Kinetic(零基础教程)相关推荐

  1. ROS机器人入门课程《ROS理论与实践》零基础教程(推荐课程)

    ROS的入门,对于纯小白的我来说很是痛苦,尤其是听完古月老师的21讲之后,更是浇灭了学习的兴趣,当时还在考虑要不要他的买课,还是算了,反正也听不懂,,,!!! 在一番挣扎之后,发现了赵虚左老师的课程, ...

  2. B站百万播放量Java零基础教程视频(适合Java 0基础,Java初学入门),史上最细Java零基础教学视频

    是否还在为学习Java如何入门而烦恼? 是否还在为Java软件如何安装而烦恼? 是否还在找寻着适合零基础的Java视频教程? 动力节点教学总监老杜159集课堂实录Java零基础视频教程,从初学者角度出 ...

  3. 保姆级的HTML零基础教程少见吧?这是第一节(1)

    作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者.15-16年曾在网上直播,带领一批程序小白走上程序员之路.欢迎各位小白加我咨询我相关信息,迷茫的你会找到 ...

  4. 麒麟子Javascript游戏编程零基础教程大纲

    大家好,我是麒麟子, 开源项目<幼麟棋牌-四川麻将>(泄漏版叫 <达达麻将>)作者,成都幼麟科技创始人. 开源项目地址(Github与Gitee同步更新): Github ht ...

  5. 微信小游戏开发零基础教程(一)-CocosCreator

    微信小游戏零基础教程(一)-CocosCreator 最终效果预览 准备工作 创建工程 测试第一个场景 最终效果预览 本教程最后制作的游戏效果: 准备工作 下载 微信开发者工具 最新版->下载地 ...

  6. Make 命令零基础教程

    Make这个词,英语的意思是"制作".Make命令直接用了这个意思,就是要做出某个文件.比如,要做出文件a.txt,就可以执行下面的命令. $ make a.txt 但是,如果你真 ...

  7. Openlayers 6 零基础教程

    Openlayers 6 零基础教程 掌握 OpenLayers(JavaScript Web 制图库)并构建 Web 制图应用程序 课程英文名:Openlayers 6 From Scratch W ...

  8. OpenMV零基础教程

    一.资料导航 "工欲善其事,必先利其器".在正式学习OpenMV之前,你必须知道一条或几条OpenMV的学习途径.这里推荐星瞳科技的中文官网教程,这个教程里面包括了OpenMV I ...

  9. 《网络安全》零基础教程-适合小白科普

    <网络安全>零基础教程 目录 目录 <网络安全>零基础教程 第1章 网络安全基础 什么是网络安全 常见的网络安全威胁 网络安全的三个基本要素 网络安全的保障措施 第2章 网络攻 ...

  10. vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程

    vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...

最新文章

  1. PHP中$_SERVER[QUERY_STRING]函数
  2. Mxnet Focal Loss实现
  3. 开发日记-20190916 gradle新的依赖方式implementation,api,compileOnly
  4. P2056 [ZJOI2007]捉迷藏
  5. cad2020 开始_如何设置CAD2020经典模式,原来这么简单,一起来看看
  6. leetcode 279. 完全平方数 bfs广度优先解法 图解 动态规划解法 c代码
  7. Django-Model中的ForeignKey,ManyToManyField与OneToOneField
  8. linux下ls出现文件的后缀有@,* ,/之类的解释
  9. 关于SQL Server自动备份无法删除过期的备份文件奇怪现象
  10. 句句真研—每日长难句打卡Day13
  11. Java语法基础----课后实践作业
  12. 阿里云推出香港高防IP服务 为中国企业出海安全护航
  13. 当2000万多头猪联接上网,会发生什么
  14. 毕节市搜索引擎优化_毕节市网站建设58同城
  15. 小程序对接企业微信客服
  16. Uni-app 小程序 App 的广告变现之路:全屏视频广告
  17. cpu开启超线程linux,Linux开发人员声称除非禁用超线程否则可以利用英特尔CPU
  18. 怎么做阿里巴巴国际站的测评?需要哪些技术?
  19. 前端开发(html和css)
  20. 网络营销的概念及特征是什么?

热门文章

  1. 【JTeam Champion NFT】NFT交易必备的四个工具
  2. 数据分析 互联网 常用缩写大全(未完待续)
  3. JSP空间网站上传后发生404解决思路
  4. ECSHOP商品页调用热销商品的教程
  5. 我的DB2数据库之旅
  6. Struts2学习之------Struts2的详细的复习讲解
  7. 【STM32】R05D电控红外协议的美的空调遥控器
  8. 01背包python解法_0-1背包问题及Python代码实现
  9. 我的物联网项目(二十一) 摇摇车三种消费模式和城市合伙人
  10. java中jam_Jam的计数法 (Java代码)