ROS机器人操作系统的安装、配置与初级教程 1

2023-05-16

ROS 安装、环境配置与测试

此课程为ROS配置与使用介绍,如果为已经并安装配置好的环境,本课程可作为ROS基础知识进行学习和掌握,不用重新进行配置。实验楼已经为你配置好在线环境。

ROS中文维基

ROS中文教程

1 系统更新

  • update

    $ sudo apt-get update
    
  • upgrade

    $ sudo apt-get upgrade
    

2 安装 ROS

此处输入图片的描述

依据网页:http://wiki.ros.org/cn/indigo/Installation/Ubuntu 进行配置,具体步骤如下:

2.1 添加 sources.list

  • 配置你的电脑使其能够安装来自 packages.ros.org 的软件。 ROS Indigo 仅 支持 Saucy (13.10) 和 Trusty (14.04)。
    $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    
    注:强烈建议使用国内或者新加坡的镜像源,这样能够大大提高安装下载速度。
  • USTC (China)
    $ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
    

2.2 添加 keys

$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

实验楼

2.3 安装

  • 首先,确保你的Debian软件包索引是最新的:
    $ sudo apt-get update
    
  • 桌面完整版安装:(推荐)
    $ sudo apt-get install ros-indigo-desktop-full
    

2.4 初始化 rosdep

在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

$ sudo rosdep init
$ rosdep update

实验楼

2.5 环境设置

如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便得多:

$ echo "source /opt/ros/indigo/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc

2.6 安装 rosinstall

rosinstall 是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。要在ubuntu上安装这个工具,请运行:

$ sudo apt-get install python-rosinstall

3 ROS测试

测试已经安装好的ROS是否可以正常使用。

3.1 测试 roscore

打开一个终端测试roscore是否能正常启动,使用ROS必须保证roscore运行:

$ roscore

实验楼

3.2 启动 turtlesim

启动一个turtlesim节点并通过键盘控制其运动,新开启一个终端,执行以下命令:

$ rosrun turtlesim turtlesim_node

然后,再开启一个终端:

$ rosrun turtlesim turtle_teleop_key

实验楼

3.3 启动 rviz

新开启一个终端输入:

$ rviz

实验楼

3.4 启动 Gazebo

新开启一个终端输入:

$ gazebo

实验楼

这时就可以正常使用ROS了。测试完毕。

4 学习ROS

根据你的学习风格和偏好,你可以采用两种方式来学习ROS:

开始学习教程 - 立刻进入和开始使用ROS http://wiki.ros.org/cn/ROS/Tutorials 。

概览 - 通读ROS和它的功能的这个概览 http://wiki.ros.org/cn/ROS/Introduction 。

有关ROS架构的更多详细信息,请参考ROS核心文档 http://wiki.ros.org/cn/ROS 。

  • 找答案有三个地方去寻找你的问题的答案。第一个就是本维基。请尝试右上角的“搜索”( Search)功能。

如果你不能找到你的问题的解决方法,就尝试搜索 http://answers.ros.org 或者邮件列表归档。或者在 http://answers.ros.org/questions/ask/ 上提出问题。

查看支持页面获取更多信息 http://wiki.ros.org/Support 。

  • 找代码想知道是否已经有ROS软件包满足你的需要吗?http://www.ros.org/browse/list.php 这个浏览软件包的工具可以让你搜索一些有用的软件包。

你也可以通过浏览公开的ROS代码库的这个列表来寻找做相似工作的群组 http://wiki.ros.org/RecommendedRepositoryUsage/CommonGitHubOrganizations 。

  • 如何使用这个wiki请参考 维基导航 http://wiki.ros.org/ROS/Tutorials/NavigatingTheWiki 来获取更多信息。

5 ROS机器人操作系统官方教程使用说明

5.1 功能包配置

全部示例功能包源码文件夹:

/opt/row_ws/src

实验楼

5.2 环境配置(依赖安装)

row_ws目录下输入:

$ rosdep install --from-paths src -iy

所有配置完成后显示如下:

#All required rosdeps installed successfully

5.3 编译功能包

ros_ws目录下输入:

$ catkin_make -j1 -l1

实验楼

如果没有遇到错误,就可以使用功能包中的教程进行实验了。

在.zshrc中添加:

source /opt/ros_ws/devel/setup.zsh

或者使用:

$ echo "source /opt/ros_ws/devel/setup.zsh" >> ~/.zshrc

实验楼

5.4 测试

5.4.1 turtlesim绘制五边形

示例源码在/opt/ros_ws/src/common_tutorials/。

分别在不同的终端打开:

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtle_actionlib shape_server
$ rosrun turtle_actionlib shape_client

实验楼

5.4.2 TF2

示例源码在/opt/ros_ws/src/geometry_tutorials/。

$ roslaunch turtle_tf2 turtle_tf2_demo.launch
$ rviz

注意:rviz需要正确配置

实验楼

实验楼

5.4.3 URDF

示例源码在/opt/ros_ws/src/urdf_tutorials/。

$ roslaunch urdf_tutorial display.launch

实验楼

5.4.4 Rviz 可视化

示例源码在/opt/ros_ws/src/visualization_tutorials/。

$ roscore
$ rosrun visualization_marker_tutorials points_and_lines
$ rviz

注意:rviz需要正确配置

实验楼

$ roscore
$ rosrun interactive_marker_tutorials pong
$ rviz

注意:rviz需要正确配置

实验楼

5.4.5 导航 navigation

示例源码在/opt/ros_ws/src/navigation_tutorials/。

实验楼

实验楼

6 总结

本节介绍了ROS的安装与测试,并补充了丰富的示例功能包用于学习ROS教程,下面我们就以ros_tutorials为例,一步一步进入ROS机器人系统的奇妙世界,其他功能请探索实现,进阶教程正在制作之中,稍后补充。


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

ROS机器人操作系统的安装、配置与初级教程 1 的相关文章

  • nginx中配置root和alias的区别

    在nginx中 xff0c root和alias都可以代理静态资源 xff0c 那么他们两个有什么区别呢 xff1f 在什么情况下使用什么呢 初识 xff1a root和alias都可以在定义在location模块中 xff0c 都是用来请

随机推荐

  • 史上最全的mysql数据类型汇总-(上)

    mysql支持多种数据类型 xff0c 主要有数值类型 日期 时间类型以及字符串类型 整数类型 数值型数据类型主要用来存储数字 xff0c mysql提供了多种数值数据类型 xff0c 不同的数据类型提供不同的取值范围 xff0c 可以存储
  • 史上最全的mysql数据类型汇总(下)

    接着上文继续来梳理 xff0c 上文我们写到了日期与时间类型中的time类型 xff0c 然后我们接着来写日期与时间类型中的date类型 date类型 date类型用在仅需要日期值时 xff0c 没有时间部分 xff0c 在存储时需要3字节
  • mysql中的字段如何选择合适的数据类型呢?

    前面两篇我们介绍了很多种数据类型 xff0c 那么有没有看花眼呢 xff0c 我们在mysql中创建数据表的时候 xff0c 到底应该选择哪一种数据类型呢 xff1f 这次我们就来简单的梳理一下子把 准则 我们不论要如何创建数据表 xff0
  • mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏

    运算符连接表达式中的各个操作数 xff0c 他的作用是用来指明对数据表中的操作数所进行的运算 运用运算法有什么好处呢 xff1f 运用运算符可以更加灵活的使用表中的数据 xff0c 我们可以通过使用运算符来解决我们的很多问题 xff0c 大
  • mysql函数汇总之数学函数

    什么是mysql函数 xff1f 61 61 61 61 61 61 61 61 61 61 61 61 61 61 函数表示对输入参数值返回一个具有特定关系的值 xff0c mysql提供了大量丰富的函数 xff0c 在进行数据库管理以及
  • mysql函数汇总之字符串函数

    字符串函数主要用来处理数据库中的字符串数据 mysql中的字符串函数有计算字符串长度函数 字符串合并函数 字符串替换函数 字符串比较函数 查找指定字符串位置函数等 计算字符串字符数的函数 CHAR LENGTH str 函数计算字符串str
  • mysql函数汇总之日期和时间函数

    日期和时间函数主要用来处理日期和时间值 xff0c 一般的日期函数除了使用date类型的参数外 xff0c 也可以使用datetime或者timestamp类型的参数 xff0c 但会忽略这些值的时间部分 获取当前日期的函数 curdate
  • [ Ubuntu 使用技巧 ] 在当前工作目录打开 Terminal

    1 General Purposes Why I wrote this 在 Ubuntu 系统开发最舒服的一点就是可以开心地使用 Terminal 这是个好东西 xff0c 尤其当你熟悉大部分的常用命令之后 xff0c 对日常的代码工作还有
  • mysql函数汇总之条件判断函数

    条件判断函数也被称为控制流程函数 xff0c 根据满足的不同条件 xff0c 执行响应的流程 mysql中进行条件判断的函数有if ifunll和case等 IF expr v1 v2 函数 IF expr v1 v2 xff1a 如果表达
  • mysql函数汇总之系统信息函数

    mysql的系统信息有数据库的版本号 当前用户名和连接数 系统字符集 最后一个自动生成的ID值等 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • mysql数据库中的数据如何加密呢?mysql8.0自带新特性

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • mysql还有哪些自带的函数呢?别到处找了,看这个就够了。

    格式化函数FPRMAT x n format x n 将数字x进行格式化 xff0c 并以四舍五入的方式保留小数点后n位 xff0c 结果以字符串的形式返回 如果n为0 xff0c 则返回结果函数不含小数部分 mysql gt select
  • mysql中还有窗口函数?这是什么东西?

    什么是窗口函数 xff1f 在mysql8 0的版本中 xff0c 新增了一个窗口函数 xff0c 用他可以实现很多新的查询方式 窗口函数类似于sun count 那样的集合函数 xff0c 但它并不会将多行查询结果合并为一行 xff0c
  • 记一次mysql查询慢的优化历程

    有一个项目 xff0c 代称cc xff0c 用了我们公司的产品 xff0c 单表数据量在200万左右 在做业务操作的时候 xff0c 点击一下按钮 xff0c 需要等待2 3分钟 及其难以忍受 xff0c 特此让我们修改 PS xff1a
  • configure: error: No curses library functions found

    centos上编译程序报错如下 xff1a configure error No curses library functions found 这个错误是因为缺少 curses 库导致的 在CentOS 7中 xff0c 可以通过以下命令安
  • STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

    STM32使用内部RC振荡器时 xff0c OSC32 IN xff0c OSC32 OUT接法 xff1a 1 xff09 对于100脚或144脚的产品 xff0c OSC IN应接地 xff0c OSC OUT应悬空 2 xff09 对
  • 项目笔记(6):阿里云的Iot Studio和web可视化

    项目笔记 xff08 4 xff09 阿里云物联网的自定义主题和物联网模型
  • k-近邻算法实现手写数字识别系统

    k 近邻算法实现手写数字识别系统 一 实验介绍 1 1 实验内容 本实验将会从电影题材分类的例子入手 xff0c 详细讲述k 近邻算法的原理 在这之后 xff0c 我们将会使用该算法实现手写数字识别系统 1 2 课程来源 本课程源自 图灵教
  • sqlite 句柄-sqlite 基础教程(3)

    要操纵一个数据库你就得有一个这个数据库的句柄 又碰到这个难以理解的词了 xff0c 不过确实还没得一个更好的词来替代它 其实你跟本不需要去在乎这个词叫什么 xff0c 你只要搞清楚他是一个什么玩意儿 就如同鞋子为什么叫鞋子 xff0c 仔细
  • ROS机器人操作系统的安装、配置与初级教程 1

    ROS 安装 环境配置与测试 此课程为ROS配置与使用介绍 xff0c 如果为已经并安装配置好的环境 xff0c 本课程可作为ROS基础知识进行学习和掌握 xff0c 不用重新进行配置 实验楼已经为你配置好在线环境 ROS中文维基 ROS中