ROS系统安装Kinetic(零基础教程)

2023-05-16

文章目录

  • 一、引言
  • 二、安装过程
    • 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已成功安装!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS系统安装Kinetic(零基础教程) 的相关文章

  • Windbg查看调用堆栈(k*)

    https www 52pojie cn thread 664189 1 1 html 无论是分析程序崩溃原因 xff0c 还是解决程序hang问题 xff0c 我们最常查看的就是程序调用堆栈 学会windbg调用堆栈命令 xff0c 以及
  • POV写作手法

    POV xff08 Point of View xff09 xff0c 一种写作手法 xff0c 即 视点人物写作手法 xff0c 在叙述同一件事可以自由选取最丰厚的角度 xff0c 大大加强了叙述的灵活性 xff0c 在讲述故事的同时作者
  • Go语言学习资料整理

    整理网上找到的Golang语言学习资料 基础 基础教程 书籍在线版 Go 指南 A Tour of Go Go语言圣经 xff08 中文版 xff09 Effective Go中文版 Go Web编程 build web applicati
  • 更好的内存管理-jemalloc

    今年年初由于facebook而火起来的jemalloc广为人之 xff0c 但殊不知 xff0c 它在malloc界里面很早就出名了 Jemalloc的创始人Jason Evans也是在FreeBSD很有名的开发人员 此人就在2006年为提
  • Windows上安装Net-SNMP5.7

    本文简要记录了在Windows上安装 net snmp 5 7 1的步骤 xff0c 最新的源码包可上net snmp官方网站下载 安装net snmp 5 7 1之前需要先安装 VS2010Win32 OpenSSL v1 0 1fAct
  • Redis源码分析(二)--结构体分析(1)

    继上次的redis源码分析 一 之后 xff0c 本人开始订制着一份非常伟大的计划 啃完redis源代码 xff0c 也对他进行了切块划分 xff0c 鉴于本人目前对他的整个运行流畅还不特别清楚的情况下 xff0c 所以决定第一个要解决的就
  • Redis源码分析(三)---dict哈希结构

    昨天分析完adlist的Redis代码 xff0c 今天马上马不停蹄的继续学习Redis代码中的哈希部分的结构学习 xff0c 不过在这里他不叫什么hashMap xff0c 而是叫dict xff0c 而且是一种全新设计的一种哈希结构 x
  • 【原创】关于wince OS开发面试问题的总结系列之Bootloader

    参考资料 xff1a 1 Windows CE 工程事件完全解析 by xff1a 李大为 2 Windos CE 实用开发技术 by xff1a 张冬泉 等 3 Windows Embedded CE 6 0 Fundamentals 4
  • UML--类之间的五种关系

    UML中的关系 xff08 Relationships xff09 主要包括5种 xff1a 关联关系 聚合关系 依赖关系 泛化关系 实现关系 1 关联 xff08 Association xff09 关系 关联关系是一种结构化的关系 xf
  • stm32并行驱动LCD12864,最简洁代码让你的屏幕亮起来

    前言 这两天因为一个项目的需要 xff0c 所以又用到了LCD12864这个模块 好久都没用到这玩意了 xff0c 感觉这东西好像要被淘汰的样子 xff0c 没想到现在又要用到 xff0c 简直了 记得上次用还是大一参加机器人比赛的时候 x
  • GCC编译过程,了解编译原理

    说明 xff1a 这篇文件是在读 程序员的自我修养 链接 装载与库 的一点笔记 xff0c 权当时学习的记录 1 GCC编译过程分解 以HelloWorld程序为例 2 预编译 规则 xff1a 命令 xff1a gcc E XXX c o
  • 谨以此文献给正在面临选择的你

    我是2011届的考生 xff0c 当我从我们学校的的分数公布栏上看到自己的分数时 xff0c 我感觉我的世界都变成了灰色 xff0c 一切都暗淡无光 在那段时间里 xff0c 我思考了很多的问题 xff0c 诸如要不要去复读 去哪一所学校
  • Linux - Ubuntu里安装Python的包

    在Ubuntu中 xff0c apt install python xff0c 默认是安装python2 要安装python3 要使用apt install python3 安装后运行python python2 xff0c 调用的都是py
  • 第二章:STM32MxCube配置串口

    基于上一次将第一章 xff1a STM32MxCube 基本使用方法 本章直接讲叙述STM32配置串口2的 查看STM32F407电路图 xff1a 可得USART2接在PA2 PA3 下面新建STM32MxCube工程 xff0c 开始配
  • 浅述数字化与信息化

    数字化 和 信息化 是两个被用 滥 了的词 xff0c 但是搞 IT 的一定要真正理解这两个词 xff0c 才能在正确的场合使用在正确的地方 数字化 xff08 to digitize xff09 简单的说就是用计算机技术来代替一些传统手动
  • 飞书扫码登录网页

    二维码 SDK 接入文档 最后更新于 2022 06 14 概述 为了实现在网页内部完成授权登录的流程 xff0c 避免跳转到飞书登录页 xff0c 保证流畅的体验 xff0c 可以接入二维码 SDK 将飞书登录的二维码嵌入到网页中 当用户
  • make命令参数详解

    Make命令本身可带有四种参数 xff1a 标志 宏定义 描述文档名和目标文档名 其标准形式为 xff1a Make flags macro definitions targets Unix系统下标志位flags选项及其含义为 xff1a
  • c语言汉诺塔问题详解

    一 前言 汉诺塔 xff08 Tower of Hanoi xff09 xff0c 又称河内塔 xff0c 是一个源于印度古老传说的益智玩具 大梵天创造世界的时候做了三根金刚石柱子 xff0c 在一根柱子上从下往上按照大小顺序摞着64片黄金
  • 阿里云服务器的使用

    阿里云服务器的使用 外网ip 39 108 98 xxx xff08 linux xff09 ubuntu16 04 root root密码 putty ssh工具 xshell ssh scp 登录到阿里云服务器上 xff08 ubunt
  • 项目如何介绍

    谈谈XXX项目 分析 xff1a 考官通过看你的简历或者你的介绍来了解你所做的项目 xff0c 那么考官肯定想更详细的了解您的项目 xff0c 看是不是与你的简历写的项目经验一致 也就是考核你是否具有真实的项目经验 一般来说 xff0c 在

随机推荐

  • K8S的flannel组件容器网络分析

    kubernetes的网络通信可以分为一下几个部分 xff1a pod内部的容器间通信pod间通信pod与service之间网络通信kubernetes外部与service之间的网络通信 理论 xff1a 1 pod内部的容器间通信 kub
  • 数据结构(Data Structure)——1、栈(Stack)

    栈的介绍 栈 xff08 stack xff09 在计算机科学中是限定仅在表尾进行插入或删除操作的线形表 栈是一种数据结构 xff0c 是只能在某一端插入和删除的特殊线性表 它按照先进后出的原则存储数据 xff0c 先进入的数据被压入栈底
  • 进程间通信之消息队列

    首先说一下什么是消息队列 消息队列是进程间通信的一种 xff0c 它是由操作系统维护的以字节序列为基本单位的间接通信机制 xff0c 它提供了一个进程向另一个进程发送一个带类型的数据块的方法 我们知道用管道来实现进程间通信的机制是两个进程利
  • STM32 编码器模式详解

    0 编码器模式 stm32的定时器带的也有编码器模式 所用的编码器是有ABZ三相 xff0c 其中ab相是用来计数 xff0c z相输出零点信号 AB相根据旋转的方向不同 xff0c 输出的波形如下图所示 xff1a 从图上可以看出来 xf
  • LAN8720A网络模块关于时钟的使用问题

    微雪的LAN8720A驱动电路 xff1a 正点原子LAN8720A驱动电路 xff1a 1 nINTSEL Configuration 从原理图中可以看出正点原子的LAN8720A模块所使用的晶振是25M 而微雪的LAN8720A模块使用
  • 机器学习和深度学习大纲

    机器学习 https blog csdn net qq 45056216 article details 104303569 深度学习 https blog csdn net weixin 42237113 article details
  • VIM 助记符

    https www bilibili com video BV114411J7Z8 from 61 search amp seid 61 9900190950002805677 一 工作模式 vim其实三种模式 xff0c 一般模式 xff
  • STLINK下载程序(附STLINK驱动包)

    一 ST Link V2的JTAG SWD接口定义及产品图 实物图 STLINK指定标准接口 xff1a 二 STLINK驱动安装 xff1a 双击ST LinkUpgrade安装即可 安装成功之后 xff0c 设备管理器 三 打开工程文件
  • STM32 之 HAL库

    1 STM32的三种开发方式 通常新手在入门STM32的时候 xff0c 首先都要先选择一种要用的开发方式 xff0c 不同的开发方式会导致你编程的架构是完全不一样的 一般大多数都会选用标准库和HAL库 xff0c 而极少部分人会通过直接配
  • 迷你版的ARDUINO MEGA2560

    1 传统的MEGA2560板 xff1a 2 迷你的MEGA2560 特点 xff1a 嵌入版Mega 2560 CH340G ATmega2560 兼容 Mega 2560主板 基于Atmel ATmega2560微控制器和USB UAR
  • MATLAB撸了一个2D LiDAR SLAM

    0 引言 刚刚入门学了近一个月的SLAM xff0c 但对理论推导一知半解 xff0c 因此在matlab上捣鼓了个简单的2D LiDAR SLAM的demo来体会体会SLAM的完整流程 1 数据来源 xff1a 德意志博物馆Deutsch
  • 基于粒子滤波的定位算法 ——原理、理解与仿真

    1 算法原理 1 1 机器人定位问题 关于机器人定位 xff0c 有三大问题 xff0c 它们分别是 xff1a 1 全局定位 xff1a 指初始位置未知 xff0c 机器人靠自身运动确定自己在地图中的位姿 2 位姿跟踪 xff1a 指已知
  • 从图片中提取曲线坐标数据--基于MATLAB

    转载 https zhuanlan zhihu com p 52112012 0 引言 在读文献的时 xff0c 经常遇到这样的情况 xff1a 文章里提出的方法好有趣啊 xff0c 好想拿文中用的数据来试试看看能不能得到相近的结果 xff
  • 49天精通Java,第8天,JDK 和 JRE 、final 与 static 、堆和栈

    作者简介 哪吒 CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 专注Java硬核干货分享 立志做到Java赛道全网Top N 本文收录于 Java基础教程系列 目前已经700 订阅 CSDN最
  • Python 之 Serial串口通信

    0 Serial方法 1 导入pyserial模块 import serial 2 打开串行口 打开串口0 xff0c 9600 xff0c 8N1 xff0c 连接超时0 5秒 import serial ser 61 serial Se
  • PYTHON字符串转数字,数字转字符串;数字转bytes,bytes转数字;字符串转bytes,bytes转字符串。数字表达字符串

    字符串str转数字 float str int str 数字num转字符串 str num a 61 39 1234 39 print 39 a 61 39 a print type a b 61 int a print 39 b 61 3
  • 杂记 | Linux中修改docker默认访问端口(2375)

    2375端口是docker的默认访问端口 xff0c 使用该端口可实现远程访问和操作docker xff0c 但在服务器上直接开启该端口有安全风险 xff08 笔者本人今天就应该端口导致服务器被入侵 xff09 xff0c 可以修改该默认端
  • RVIZ中的fixed frame选项以及“For frame [XX]: Fixed Frame [map] does not exist”

    RVIZ 使用的时候如果fixed frame选项设置不正确 xff0c 那么就会无法显示显示相应的数据信息 xff0c 并提示一下错误 xff1a For frame XX Fixed Frame map does not exist 官
  • C++常见面试题总结

    本文主要总结了一些常见的C 43 43 面试题 链接现在不让发 xff0c 所以如果需要整理好的文档的话 xff0c 请关注本篇文章底部的推广订阅公众号获取 xff1a Cpp编程小茶馆 进入正题 xff0c 下面是自己整理的文档目录截图
  • ROS系统安装Kinetic(零基础教程)

    文章目录 一 引言二 安装过程2 1 配置软件库2 2 添加ROS软件源2 3 添加密钥2 4 安装ROS2 4 初始化rosdep2 5 设置环境变量2 5 构建工厂依赖 三 测试过程3 1 启动ROS Master3 2 启动小海龟仿真