ROS机器人程序设计(原书第2版)补充资料 (贰) 第二章 ROS系统架构及概念

由于工作事物繁忙,更新有些慢,抱歉。

已经完成的各章节补充说明,会依据反馈意见持续更新,希望大家多提宝贵意见,非常感谢。

在完成了第一章的学习实现之后,基本已经掌握了ROS系统的安装,那么如何使用ROS,理解系统架构和概念,这是第二章的内容。hydro-indigo-kinetic通用概念不做区分。

如果使用IDEs进行ROS开发环境构建,推荐:http://wiki.ros.org/IDEs

RoboWare Studio:http://www.roboware.me

补充参考:http://blog.csdn.net/zhangrelay/article/details/49893069

第16页:

理解ROS文件层次--综合包--包--等

第17页:

工作空间(重点)catkin_ws 当然也可以配置spark_ws等,

如果经常使用,注意在.bashrc中配置好环境。包括但不限于如下:

export JAVA_HOME=/opt/jdk/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PYTHONPATH=$PYTHONPATH:/home/exbot/LeapDeveloper/LeapSDK:/home/exbot/LeapDeveloper/LeapSDK/lib:/home/exbot/LeapDeveloper/LeapSDK/lib/x64
export LEAP_SDK=/home/exbot/LeapDeveloper/LeapSDK
export VREP_ROOT_DIR=/home/exbot/V-REP_PRO_EDU_V3_3_1_64_Linux/
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/exbot/catkin_ws/src
source /opt/ros/indigo/setup.bash
source /home/exbot/catkin_ws/devel/setup.bash
source /home/exbot/spark_ws/devel/setup.bash
#set up G2O
export G2O_ROOT=/home/exbot/Rob_Soft/g2o-master
export G2O_BIN=${G2O_ROOT}/bin
export G2O_LIB=${G2O_ROOT}/lib
export LD_LIBRARY_PATH=${G2O_LIB}:${LD_LIBRARY_PATH}
export PATH=${G2O_BIN}:${PATH}
export NVM_DIR="/home/exbot/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

第18-21页:

理解功能包,综合功能包,消息,服务的基本组成结构,常用指令,数据类型等。

层次及包含关系。

第22页:

计算图级:节点等。主题等之间通信和数据流向。

第23页:

节点概念与常用指令。

第24页:

主题概念与常用指令。

第25页:

服务概念与常用指令。

第26-27页:

消息,记录包,节点管理器,参数服务器等。

第28页:

ROS开源社区简介。

使用练习:hydro-indigo-kinetic差别不大:

如indigo版:

[email protected]:~$ rospack find turtlebot_navigation
/opt/ros/indigo/share/turtlebot_navigation

一般只是版本号有些不同。

有些在github上的功能包,是hydro版本的,已经不更新了,但是稍微修改下甚至不修改,通过源码编译可以用于indigo和kinetic版。
需要熟悉常用指令,rospack,rosstack,rosls,roscd,通常是linux常用终端命令前加ros

第29页:

创建工作空间。需要熟练掌握,hydro之后版本类似。

第30页:

创建并编译功能包等。

第31页:

安装独立功能包,注意各版本区别,hydro,indigo和kinetic:

[email protected]:~$ sudo apt-get install ros-indigo-turtlebot-gazebo 

启动:

roscore

使用roslaunch可以忽略上步。下面会细说使用.launch一次启动多个节点。

第32页:

使用rosnode。

rqt_action                       rqt_pose_view
rqt_bag                          rqt_publisher
rqt_bag_plugins                  rqt_py_common
rqt_console                      rqt_py_console
rqt_dep                          rqt_reconfigure
rqt_graph                        rqt_robot_dashboard
rqt_gui                          rqt_robot_monitor
rqt_gui_cpp                      rqt_robot_steering
rqt_gui_py                       rqt_runtime_monitor
rqt_image_view                   rqt_rviz
rqt_joint_trajectory_controller  rqt_service_caller
rqt_launch                       rqt_shell
rqt_logger_level                 rqt_srv
rqt_moveit                       rqt_tf_tree
rqt_msg                          rqt_top
rqt_nav_view                     rqt_topic
rqt_plot                         rqt_web

第33-35页:

使用rostopic。

补充除了书上介绍的指令,也可以使用图形界面。

[email protected]:~$ rosrun rqt_topic rqt_topic

发布主题也可以使用:

e[email protected]:~$ rosrun rqt_publisher rqt_publisher 

方便快捷。

其他功能自己探索,乐趣多多。

第36-37页:

使用服务,补充如下:

[email protected]:~$ rosrun rqt_service_caller rqt_service_caller


第38页:

参数服务。

第39-40页:

学习用C++写一个简单节点。

第41-42页:

编译节点。

第43页:

创建msg和srv文件。

第44-47页:

使用msg和srv文件。

第48-49页:

启动文件roslaunch。

补充可以尝试练习,用一个launch启动,海龟并画圆。文末给出答案。

第50-53页:

动态参数。

第54页:

本章总结。

思考与巩固:

1 熟练掌握ROS系统架构及概念

2 nodelet使用

参考:

2.1 官网:http://wiki.ros.org/nodelet

2.2 kint_zhao博客:http://blog.csdn.net/zyh821351004/article/details/52143309

3 启动文件.launch

第二章所用到的指令在hydro,indigo,jade,kinetic中均通用的,这章内容是ROS非常重要的基础。

附:

1 使用多个终端,启动roscore和小海龟,并画方形。如下:

2 使用roslaunch

下面是配置:

<!--turtlesim drawsquare launch-->
<launch>

  <node name="turtlesim_node1" pkg="turtlesim" type="turtlesim_node"/>
  <node name="turtlesim_node2" pkg="turtlesim" type="turtlesim_node"/>
  <node name="draw_square" pkg="turtlesim" type="draw_square"/>
  <node name="rqt_graph" pkg="rqt_graph" type="rqt_graph"/>

</launch>

直接在终端,输入:

~$ roslaunch turtlesim_drawsquare.launch

效果如下:

时间: 2024-12-26 05:32:33

ROS机器人程序设计(原书第2版)补充资料 (贰) 第二章 ROS系统架构及概念的相关文章

《算法导论(原书第3版)》第24章部分题目解答

第24章 单源最短路径 24.1 Bellman-Ford算法 24.1-4 思路: 先做|V|-1遍松弛操作,然后再做一遍松弛操作,对于这次松弛操作中dist值被更新的点,必然包含了每个负环中的至少一个点.对于这些点做dfs查找它们能够在图中到达哪些点,所有被搜索到的点即为题目要求找的点 部分c++代码: #include <bits/stdc++.h> using namespace std; const int maxn = ...; const int inf = 0x3f3f3f3f

ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse

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://blo

ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation

ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 本章三个非常重要概念:TF,SLAM,AMCL.务必掌握. 补充内容:http://blog.csdn.net/zhangrelay/article/details/50299417 第216页: 简介本章要点. 第217页: 导航综合功能包组成架构等. 补充如下: 目录 配置并使用导航功能

ROS机器人程序设计(原书第2版)补充资料 (零) 源代码和资料等

ROS机器人程序设计(原书第2版)补充资料 (零) 源代码等 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 稍后会补充,各章节针对indigo版本和kinetic版本的修正说明,方便读者阅读. 可以选用的完整镜像参考:http://blog.csdn.net/zhangrelay/article/details/50176685 已经预装ROS indigo,安装完即可使用,书中全部案例.如果需要了解ROS的实时性,请点击下载. hy

学习PHP爬虫--《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》

<Webbots.Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)> 译者序 前言 第一部分 基础概念和技术 第1章 本书主要内容3 1.1 发现互联网的真正潜力3 1.2 对开发者来说3 1.2.1 网络机器人开发者是紧缺人才4 1.2.2 编写网络机器人是有趣的4 1.2.3 网络机器人利用了“建设性黑客”技术4 1.3 对企业管理者来说5 1.3.1 为业务定制互联网5 1.3.2 充分利用公众对网络机器人的经验不足5 1.3.3 事半功倍6 1.4 结论

计算机程序的构造和解释原书第2版PDF

作者: Harold Abelson / Gerald Jay Sussman / Julie Sussman 出版社: 机械工业出版社 副标题: 原书第2版 原作名: Structure and Interpretation of Computer Programs 译者: 裘宗燕 出版年: 2004-2 页数: 473 定价: 45.00元 装帧: 平装 内容简介 · · · · · · <计算机程序的构造和解释(原书第2版)>1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本

C安全编码标准:开发安全、可靠、稳固系统的98条规则(原书第2版)——互动出版网

这篇是计算机类的优质预售推荐>>>><C安全编码标准:开发安全.可靠.稳固系统的98条规则(原书第2版)> 部分目录 译者序 前言 贡献者简介 第1章 预处理器(PRE) 1 1.1 PRE30-C. 不要通过连接创建通用字符名称 1 1.2 PRE31-C. 避免不安全宏参数的副作用 3 1.3 PRE32-C. 不要在类函数的宏调用中使用预处理器指令 7 第2章 声明和初始化(DCL) 9 2.1 DCL30-C. 声明具有正确存储持续期的对象 10 2.2 DCL

IT项目管理(原书第7版)——互动出版网

这篇是计算机类的优质预售推荐>>>><IT项目管理(原书第7版)> 译者序 1984年,美国项目管理协会(Project Management Institute,PMI)推出了项目管理知识体系(Project Management Body of Knowledge,PMBOK),描述了以项目为研究对象的知识板块,以多维.横断.交叉等全息方式聚集相关知识,反映了当前社会快速发展和变化的需求,得到国际学术界和产业界的积极响应. 在过去的30多年中,随着全球经济和政治的巨

《软件测试的艺术(原书第2版)》【PDF】下载

<软件测试的艺术(原书第2版)>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196343 内容简介 本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查.走查与评审.测试用例的设计.模块(单元)测试.系统测试.调试等主题,以及极限测试.互联网应用测试等高级主题,全面展现了作者的软件测试思想.第3版在前两版的基础上,结合软件测试的最新发展进行了更新,覆盖了可用性测试.移动应用测试以及敏捷开发测试等内容. 本书适合软件开