首页 资讯 应用 高压 设计 行业 低压 电路图 关于

机器人

旗下栏目: 物联网 机器人 新技术 仪器仪表

ROS机器人高效编程勘误、问题及资料汇总

机器人 | 发布时间:2017-10-08 | 人气: | #评论# |本文关键字:ROS,编程,ROS机器人操作系统
摘要:ROS机器人高效编程(原书第3版)勘误、问题及资料汇总 --持续更新 如果小伙伴发现书中错误,恳请批评指正,非常感谢。勘误在文末。 补充一行代码装ROS,适用于14.04LTS(indigo)和1

ROS机器人高效编程(原书第3版)勘误、问题及资料汇总--持续更新

如果小伙伴发现书中错误,恳请批评指正,非常感谢。勘误在文末。

补充一行代码装ROS,适用于14.04LTS(indigo)和16.04LTS(Kinetic):

14.04:

[plain] view plain copy print?

  1. wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && ./ros_install.sh %NAME_CATKIN_WS% %NAME_ROS_DISTRO_LOWERCASE%  

  2.   

  3. (indigo示例如下)  

  4. wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && chmod 755 ./ros_install.sh && ./ros_install.sh catkin_ws_oroca indigo  


16.04:


[html] view plain copy print?

  1. curl https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh | bash -s %NAME_CATKIN_WS% %NAME_ROS_DISTRO_LOWERCASE%  

  2.   

  3. (Kinetic示例如下)  

  4. curl https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh | bash -s cws_oroca kinetic  


ROS机器人高效编程 - 原书第三版


ROS机器人高效编程 - 原书第三版教程源代码。

作者

  • 阿尼尔 马哈塔尼

  • 路易斯 桑切斯

  • 亚伦 马丁内斯

  • 恩里克 费尔南德斯

安装

按照这里提供的官方说明,兼容的Ubuntu发行版安装ROS Kinetic。推荐Ubuntu 16.04 LTS

安装OpenCV非免费版本库:

sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get install libopencv-nonfree-dev libopencv-nonfree2.4v5

创建一个工作区:

mkdir -p ~/dev/catkin_ws/srccd ~/dev/catkin_ws/src
wstool init

下载此代码库:

wstool set ros_book --git [email protected]:rosbook/effective_robotics_programming_with_ros.git
wstool up -j8

安装依赖项:

cd ..
rosdep install --from-paths src -iy

编译源代码:

source /opt/ros/$(rosversion -d)/setup.bash
catkin build -j4 -p4 --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfosource devel/setup.bash

教程目录:

  • 第01章:ROS入门(在安装过程中不涉及源代码)

  • 第02章:ROS架构和概念

  • 第03章:可视化和调试工具

  • 第04章:3D建模与仿真

  • 第05章:导航功能包集入门 - 机器人设置

  • 第06章:导航功能包集进阶 - 其他设置

  • 第07章:使用MoveIt!

  • 第08章:在ROS下使用传感器和执行器

  • 第09章:计算机视觉

  • 第10章:点云


----

|勘误

书中代码部分有缺漏或排版问题,请参考对应源代码,如138,213,稍后会补充详细。

01. 216页,(此外,发布的消息将会在setup中宣传)更正为:此外,在setup中订阅发布的消息:

02. 225页,

03. 226页,(/imu/data主题是sensor_msg/imu)更正为:/imu/data主题对应的数据类型是sensor_msg/imu

04. 


~持续更新~


如果困惑于使用哪一个版本的ROS,这里推荐Kinetic和Indigo,具体可以参考ROS年度指标报告。

ROS官方已经发布了2017年的年度ROS指标报告。并将其添加到 Metrics wiki第34,您可以在其中找到所有以前版本的链接。

ROS官方在2011年开始收集指标。查看历史,可以看到社区的发展和演变。

衡量开源社区是非常困难的。公开和可再发行的性质意味着我们绝对不认识所有使用它的人,而且这是开放的一部分。这些指标可以提供对社区趋势的洞察,但不应被视为详尽无遗或甚至接近完整,而应视为一致的快照。(报告体现了趋势和发展我们有关于设置镜像的公开说明,这些采集不包括私人或公共镜像的统计数据。公共镜像列在http://wiki.ros.org/Mirrors

每年我们都会提供相同的指标,以便观察趋势。不过,我们也希望更新这些指标,以纳入新的统计资料或涵盖未来我们认为有趣趋势的新方面。例如,我们从去年开始对架构的使用进行抽样,因为对armhf和arm64的兴趣越来越大而i386现在已经不再是最受欢迎的架构

在汇编这份报告时,有几个数据显示出来。最大的是,去年,我们将package.ros.org 5的唯一身份访问量增加了一倍以上。这是社区规模最大的代理商之一。诸如下载计数和带宽使用的其他统计数据可能高度依赖于在任何给定时间段内哪些软件包被释放。

两个统计数字是值得注意的异常值。一个是discourse.ros.org 1上的用户数量,目前有一个垃圾邮件攻击,新的未验证的用户被半自动创建。他们没有超过验证阶段,不能发布。但是,该网站包含他们的用户数,我没有一个很好的方式来排除未经验证的用户。7天后,系统会自动清除。另一个有点偏斜的统计数字是机器人的数量。今年我们从wiki.ros.org/Robots切换http://robots.ros.org 4在切换过程中,有一个审查过程。但是,很明显,新网站的提交也是下降的。我们需要考虑使其更容易访问,因为我相信这个指标现在报表不足。

ROS开发者指南



目录

  1. ROS开发者指南

    1. 源代码管理

    2. Bug追溯

    3. 代码布局

    4. 功能包

    5. GUI 工具包

    6. 代码构建

    7. 证书

    8. 版权

    9. 调试

    10. 测试

    11. 文档汇总

    12. 正式发布

    13. 标准化

    14. 弃用规则

    15. 大数据文件,大测试文件

ROS是一个庞大的系统,许多人协同开发。为了合理的管理,我们已经写好了开发指导说明。请按照下面的指导说明,合理布局你的代码。

参考:

  • Quality assurance process

  • ROS C++ Style Guide

  • ROS Python Style Guide

  • ROS Javascript Style Guide

  • Naming Conventions

  • CommonProcedures


源代码管理

支持使用Git,Mercurial,Subversion, 和Bazaar进行代码管理。由于ROS社区是分散的,欢迎你将代码托管到任何公共访问的地方(比如GitHub, Bitbucket, Google Code). 主要的ROS基础代码会被发布到github.com的几个组织单元several organization units下面。关于建议的仓库使用说明参考RecommendedRepositoryUsage

  • 只添加手动编写的源代码文件,以及必须的构建功能包的相关文件. 不要添加机器自动生成的文件,比如目标文件(*.o),库文件(.a, .so, .dll), 或者自动配置脚本文件.

    • svn add 将会递归到子目录里添加所有文件. 在svn add之前先操作下 make clean .

    • 不要添加大的二进制文件: 通过web服务器上传,下载到本地的构建文件夹去.

  • 尽早且经常性提交自己的代码.不在源码管理范围内的任何文件都应该作为草稿(scratch)存储。

  • 尽量保持每次的提交集中到一处特殊的更改,而不是一次提交多方面的更改,这样更容易回溯代码。

  • 每一次的提交都写清更改说明.

  • 不要打乱构建结构. 在check in之前确保你的代码能够顺利编译.


Bug追溯

针对每一个功能包,利用单独的bug tracker,实现bug报告,增强请求,和任务分配。经常性的,在本站的页面上,你会看的一些具体的bug tracker的相关链接。

对于代码的托管GitHub作为一个仓库的通用的bug tracker。

代码维护者将会为每个报告的问题创建一个里程式标记(milestone)。当问题被定位时,可以给报告者一个合适的反馈。这些里程标记就是ROS正式版(比如 Groovy or Hydro) 或者细分版本(比如 Hydro beta 1). 更多的是,当问题没被修复时,会赋以标记untargeted。这可能是由于开发者的时间紧迫或者可靠性的考虑。

为了让用户表达自己的想法,针对已发布的软件版本,测试是否已经修复bug,维护者应该要么,在关闭问题报告的时候,发布一个尝试版本,要么为每一个更细化的版本设置标记,在下个里程标记之前,标记问题报告。这样一来,对用户来说,让所包含的问题本身来决定发布版的bug是否已经被修复。

当你发现一个bug时,开启一个指派(ticket)。当你需要新功能的时候,打开一个指派。邮件或者发布到answers.ros.org或者邮件列表都有可能被遗忘。但是,指派的方式反而就不会那么容易忘记。

  • 指派的时候尽量遵循这些原则.

    • 尽量包含bug重现时,需要的指令。They should include instructions for reproducing the bug.

    • 尽量描述问题出现时的,系统运行状态。(用的什么系统版本,涉及的功能包有哪些。

  • 不要畏惧指派。许多开发者都会指派给他们自己,比如利用Trac。

如果你不确定出现问题时涉及的的功能包或者问题确实是一个bug,请首先访问answers.ros.org。


代码布局

package功能包由代码组织而成,而功能包组成一个单独的仓库responsitory。功能包是作为代码构建的基本单位。

尤其注意!建议,在GitHub上,在仓库的根目录创建一个README.md,用来向用户说明代码仓库的具体细节。建议,在ROS wiki页面设置链接到指定的包含的软件包。参照 this article 获取更多的帮助.


功能包

ROS功能包和系统的构建依赖于manifest.xml。

  • 每一个功能包都必须,在功能包所在的顶层目录,存在一个manifest.xml文件.

  • 最基本的,manifest必须包含下面的三部分

    • description

    • author

    • license

下面举一个roscpp节点的一个模板例子:

<package>  <description brief="BRIEF DESCRIPTION">     LONGER DESCRIPTION  </description>  <author>You/[email protected]</author>  <license>BSD</license>  <url>http://www.ros.org/wiki/YOURPACKAGE</url>  <depend package="roscpp"/></package>

下面是rospy的一个例子:

<package>  <description brief="BRIEF DESCRIPTION">     LONGER DESCRIPTION  </description>  <author>You/[email protected]</author>  <license>BSD</license>  <url>http://www.ros.org/wiki/YOURPACKAGE</url>  <depend package="rospy"/></package>

GUI 工具包

我们已经移植了所有最新的GUI到rqt,这些GUI都是QT基础的GUI框架。在fuerte使用wxWidgets之前,因交叉编译的兼容性太差,大部分已有的代码被重建。 因此对于新的GUI设计,考虑使用rqt。开发说明从这里获取(including license consideration when writing in python)。

代码构建

基本的代码构建工具是CMake(more).

  • 每一个创建的功能包的顶层目录都必须存在CMakeLists.txt .

  • 现在,每一个功能包都必须有一个Makefile, 短而精巧.

  • 那些没有经过构建步骤的功能包不需要任何的构建文件。


责任编辑:电气自动化网

上一篇:全景视频拼接关键技术

下一篇:没有了

热门文章

首页 | 资讯 | 应用 | 高压 | 设计 | 行业 | 低压 | 电路图 | 关于

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。