ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真
urdf Gazebo V-Rep Webots Morse
书中,大部分出现hydro的地方。直接替换为indigo或jade或kinetic,就可以在相应版本号中使用。
提供ROS接口的3D软件比較多。本章以最典型的Gazebo介绍为主。从Player/Stage/Gazebo发展而来。如今独立的机器人仿真开发环境,眼下2016年最新版本号Gazebo7.1配合ROS(kinetic)使用。
补充内容:http://blog.csdn.net/zhangrelay/article/details/50241863
本书翻译基本參考官方推荐用语,例如以下:
ROS wiki 是一个开放的公共平台,你能够在上面编辑分享对社区实用的信息,比方翻译或编写教程。欢迎大家在这个非盈利性的公共平台上一起维护和分享ROS中文相关资源。
假设你想翻译。仅仅需參考下面指南并自觉依照wiki编辑规范用心翻译:
怎样開始翻译(翻译必读)。包括翻译时的页面编辑方法、注意事项、约定以及翻译技巧等。
ROS专有词汇中英对比列表,ROS专有词汇中英对比列表,请尽量保持统一。
最佳翻译參考,一些典型词句的翻译方法。仅供參考以保持统一。
贡献者名单。假设你认为有必要能够自行加入自己的名单。鼓舞无名英雄。
眼下已完毕“0基础”和“中级”教程翻译。但还须要保持更新。翻译时最好教程优先。下面是推荐优先翻译的部分:
ROS 基本概念等
catkin 教程。
roscpp 教程。
rospy 教程。
URDF 教程。
rviz 教程。
TF 教程。
导航 教程。
pcl 教程。
QQ群
361379172【ROS机器人操作系统】,ROSwiki交流分享求助群。
144964398【ROS机器人技术交流群】。
253247353【ROS(机器人操作系统)】。
204907939【Gaitech ROS Forum】,Turtlebot中国代理商Gaitech官方群。
9820986【机器人操作系统】。
109434898【ExBot开源机器人社区】。
184903125【ROS机器人俱乐部】。
论坛及博客
ROS维基社区。由ROS学者从业者自由组成的维基社区,主要解决ROS应用出现的错误大家互相帮助和分享。
ROS机器人俱乐部,自由、分享、开源的中文ROS交流社区。
ROS中文问答网。非营利性ROS中文问答网。answers.ros.org中文版。
ros.gaitech.net,Gaitech官方论坛。
www.robotos.net。由爱好者维护的社区论坛。
blog.exbot.net,易科机器人实验室的博客,包括一些ROS相关的应用教程。
books.exbot.net,易科机器人实验室维护的机器人开源图书,包括一些ROS相关图书。
视频教程
51cto.com,机器人操作系统ROS精品入门视频课程。
官网教程:
非刚開始学习的人: 假设你已经非常熟悉 ROS fuerte(要塞龟)或更早期版本号的使用,而仅仅是想使用在groovy(加岛象龟)和hydro(渔龟)中開始採用的最新编译构建系统catkin。那你能够深入学习catkin教程。
可是我们仍然建议全部人学完整个“0基础”教程以方便理解新增的功能特性。
假设你是Linux刚開始学习的人:或许先学习一些有关linux命令行工具的高速使用教程会对你非常有帮助。这里有篇好教程(英文)。
文件夹
- 核心ROS教程
- 0基础
- 中级
- ROS标准
- 外部ROS资源
- 外部教程
- 外部研讨会或课件
- 在机器人上执行ROS
- 其他ROS函数库教程
- 提供ROS接口的函数库教程
核心ROS教程
0基础
- 安装并配置ROS环境
本教程具体描写叙述了ROS的安装与环境配置。
- ROS文件系统介绍
本教程介绍ROS文件系统概念,包括命令行工具roscd、rosls和rospack的使用。
- 创建ROS程序包
本教程介绍怎样使用roscreate-pkg或catkin创建一个新程序包,并使用rospack查看程序包的依赖关系。
- 编译ROS程序包
本教程介绍ROS程序包的编译方法
- 理解 ROS节点
本教程主要介绍 ROS 图(graph)概念 并讨论roscore、rosnode和 rosrun 命令行工具的使用。
- 理解ROS话题
本教程介绍ROS话题(topics)以及怎样使用rostopic 和 rxplot 命令行工具。
- 理解ROS服务和參数
本教程介绍了ROS 服务和參数的知识,以及命令行工具rosservice 和 rosparam的用法。
- 使用 rqt_console 和 roslaunch
本教程介绍怎样使用rqt_console和rqt_logger_level进行调试,以及怎样使用roslaunch同一时候执行多个节点。早期版本号中的rqt工具并不完好。因此,假设你使用的是“ROS fuerte”或更早期的版本号,请同一时候參考这个页面学习使用老版本号的“rx”工具。
- 使用rosed编辑ROS中的文件
本教程将展示怎样使用rosed来简化编辑过程。
- 创建ROS消息和ROS服务
本教程具体介绍怎样创建并编译ROS消息和服务,以及rosmsg, rossrv和roscp命令行工具的使用。
- 编写简单的消息公布器和订阅器 (C++)
本教程将介绍怎样编写C++的公布器节点和订阅器节点。
- 写一个简单的消息公布器和订阅器 (Python)
本教程将通过Python编写一个公布器节点和订阅器节点。
- 測试消息公布器和订阅器
本教程将測试上一教程所写的消息公布器和订阅器。
- 编写简单的Service和Client (C++)
本教程介绍怎样用C++编写Service和Client节点。
- 编写简单的Service和Client (Python)
本教程介绍怎样用Python编写Service和Client节点。
- 測试简单的Service和Client
本教程将測试之前所写的Service和Client。
- 录制与回放数据
本教程将教你怎样将ROS系统执行过程中的数据录制到一个.bag文件里,然后通过回放数据来重现类似的执行过程。
- roswtf入门
本教程介绍了roswtf工具的基本用法。
- 探索ROS维基
本教程介绍了ROS维基(wiki.ros.org)的组织结构以及用法。
同一时候解说了怎样才干从ROS维基中找到你须要的信息。
- 接下来做什么?
本教程将讨论获取很多其他知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。
如今你已经完毕了0基础教程的学习,请回答这个 问卷来检验一下自己的学习效果。
中级
大多数clientAPI的使用教程能够在相关程序包(roscpp, rospy, roslisp)中找到。
- 手动创建ROS package
本教程将展示怎样手动创建ROS package
- 管理系统依赖项
本教程将展示怎样使用rosdep安装系统依赖项.
- Roslaunch在大型项目中的使用技巧
本教程主要介绍roslaunch在大型项目中的使用技巧。
重点关注怎样构建launch文件使得它能够在不同的情况下反复利用。我们将使用 2dnav_pr2 package作为学习案例。
- ROS在多机器人上的使用
本教程将展示怎样在两台机器上使用ROS系统,详述了使用ROS_MASTER_URI来配置多台机器使用同一个master。
- 自己定义消息
本教程将展示怎样使用ROS Message Description Language来定义你自己的消息类型.
- 在python中使用C++类
本教程阐述一种在python中使用C++类的方法。
- 怎样编写教程
(概述:)本教程介绍在编辑ros.org维基时能够用到的模板和宏定义,并附有演示样例以供參考。
ROS标准
ROS开发人员指南 有关代码风格和软件包布局等相关指南。
标准測量单位和坐标约定。
外部ROS资源
外部教程
机器人操作系统ROS精品入门视频课程(中文)
ANU的ROS视频教程
NooTriX的手把手ROS教程
Jonathan Bohren的ROS教程
Clearpath Robotics 的知识库
外部研讨会或课件
由位于东京的TORK提供的面向企业基础培训的研讨会
在机器人上执行ROS
创建你自己的URDF文件 创建一个定制的通用机器人格式化描写叙述文件。
ros_control 使用ROS的标准控制器框架来与硬件连接。
在Gazebo中使用URDF 在Gazebo机器人模拟器中加入必要的标记。
搭建 MoveIt! 建立配置程序包(configuration package)来使用MoveIt!运动规划框架。
其他ROS函数库教程
Robot Model
Visualization
actionlib
pluginlib
nodelets
导航
ROS-Industrial Tutorials
提供ROS接口的函数库教程
Stage
TF
PCL with ROS
当完毕0基础和中级教程后,就能够根据须要进行ROS相关主题学习。
下面言归正传:
第192页:
简单介绍本章要点。
第193-198页:
URDF,统一机器人描写叙述格式的构成,创建,rviz中查看,属性配置等。
补充阅读:
学习 URDF (Unified Robot Description Format,统一的机器人描写叙述文件格式)
- Create your own urdf file
In this tutorial you start creating your own urdf robot description file.
- Parse a urdf file
This tutorial teaches you how to use the urdf parser
- Using the robot state publisher on your own robot
This tutorial explains how you can publish the state of your robot to tf, using the robot state publisher.
- Start using the KDL parser
This tutorial teaches you how to create a KDL Tree from a URDF file
- Using urdf with robot_state_publisher
This tutorial gives a full example of a robot model with URDF that uses robot_state_publisher. First, we create the URDF model with all the necessary parts. Then we write a node which publishes the JointState and transforms. Finally, we run all the parts together.
手把手学习URDF
- Building a Visual Robot Model with URDF from Scratch
Learn how to build a visual model of a robot that you can view in Rviz
- Building a Movable Robot Model with URDF
Learn how to define movable joints in URDF
- Adding Physical and Collision Properties to a URDF Model
Learn how to add collision and inertial properties to links, and how to add joint dynamics to joints.
- Using Xacro to Clean Up a URDF File
Learn some tricks to reduce the amount of code in a URDF file using Xacro
实例解说一个完整的URDF文件
- Understanding the PR2 Robot Description
This tutorial explains the layout of the top level URDF Xacro file for a complex robot such as PR2.
第199-205页:
xacro机器人建模。
http://wiki.ros.org/xacro
在jade之后版本号中添加了一些内容。注意官网的New in Jade标签。
第205-214页:
在ROS使用Gazebo进行机器人仿真。
补充參考:http://blog.csdn.net/ZhangRelay/article/category/6457458
Gazebo机器人仿真学习探索笔记系列。
第215页:
本章小结。
思考与巩固:
1 在Gazebo中建立一个机器人模型,并用键盘控制在环境中运动。
2 加入传感器获取环境信息识别障碍等。
3 在V-Rep中使用ROS接口进行机器人控制和传感器信息获取。
4 熟练掌握URDF和xacro。
本章内容较多,须要掌握xml语言特点,并熟练使用。注意.xacro和.urdf差别。移动控制机器人的C++或Python代码。其他开源或商业3D建模软件创建自己的模型。启动Gazebo和ROS的.launch文件特点,加入传感器并在rviz中获取可视化数据。