关闭

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

标签: ROS机器人程序设计原书第2版ROS
3835人阅读 评论(0) 收藏 举报
分类:

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

书中,大部分出现hydro的地方,直接替换为indigojadekinetic,即可在对应版本中使用。

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

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

在完成了第一章的学习实现之后,基本已经掌握了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

书中2.4.10中,节点示例有一些变化,如下:

~$ rosrun chapter2_tutorials chap
chap2_example1_a  chap2_example2_a  chap2_example3_a  chap2_example4
chap2_example1_b  chap2_example2_b  chap2_example3_b


第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版:

exbot@relay-Aspire-4741:~$ 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:

exbot@relay-Aspire-4741:~$ 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。

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

exbot@relay-Aspire-4741:~$ rosrun rqt_topic rqt_topic

发布主题也可以使用:

exbot@relay-Aspire-4741:~$ rosrun rqt_publisher rqt_publisher 

方便快捷。


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

第36-37页:

使用服务,补充如下:

exbot@relay-Aspire-4741:~$ 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

效果如下:






1
0
查看评论

ROS IDE —— RoboWare Studio

RoboWare Studio的简单使用,详细内容可以跟着官网的使用文档来。
  • Dream_cc
  • Dream_cc
  • 2017-02-02 17:50
  • 6406

ROS IDE - RoboWare Studio 安装与使用教程

1. 安装: 去官网 http://www.roboware.me/#/ 下载安装包后正常安装即可。 2. 使用 2.1.1 基础教程 1. 安装后打开roboware,选择新建工作区或打开原有的工作区,因系统内已有之前建立的工作空间,且已配置好环境,故此处直接打开catkin...
  • ShuaiWangCSDN
  • ShuaiWangCSDN
  • 2017-07-22 15:32
  • 3548

ROS学习--RoboWare Studio的使用和发布器/订阅器的编写与测试

开始ROS学习之前,先按照官网教程和其他老大们写的博客安装好ROS,再安装一个RoboWare-Studio,虽然用Qt和Eclipse也行,但比较麻烦,这个很方便。按照大多网络教材的顺序,我们先来做一个发布器和订阅器。步骤如下: 1.在RoboWare-Studio里的工作区间下新建一个包beg...
  • Han_L
  • Han_L
  • 2017-09-01 13:58
  • 458

RoboWare Studio下Git仓库设置

前言 之前一直用QT作为ROS的IDE,使用QT创建ROS的C++源代码有很多问题,比如QT的编译目录和catkin_make不相同,QT的console控制台更新超级慢,基本还需要guake或者terminal来进行调试。 最近国内的某公司给予VSCode出了一款专门针对ROS的IDE,由于是V...
  • gyzgyz1989
  • gyzgyz1989
  • 2016-12-02 22:09
  • 1792

ROS学习笔记(一)补充篇 参考创客制造

我吧ROS的CPP部分分成7个部分: 1、基础的node param 2、动态调节参数 3、关于TF变换 4、actionlib 5、插件技术 6、movebase 7、nodelet技术前言相比于ros学习笔记一,ros学习笔记一补充篇将会更加注重代码的讲解。ros学习笔记一只是像大...
  • David_Han008
  • David_Han008
  • 2017-01-30 16:02
  • 2810

ROS机器人程序设计(原书第2版)学习镜像分享及使用说明

ROS机器人程序设计(原书第2版)学习镜像分享及使用说明ROS机器人操作系统在线练习课程正在逐步完善中,目前以ROS官网中文资料制作,CSDN下载ROS基础资源汇总:http://download.csdn.net/album/detail/4431通过网页快速了解Linux(Ubuntu)和ROS...
  • ZhangRelay
  • ZhangRelay
  • 2016-11-24 20:54
  • 13144

ROS机器人程序设计(原书第2版)补充资料 (零) 源代码、资料和印刷错误修订等 2017年02月22日更新

ROS机器人程序设计(原书第2版)补充资料 (零) 源代码等 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用。 稍后会补充,各章节针对indigo版本和kinetic版本的修正说明,方便读者阅读。 如果长期使用Ubuntu和ROS,推荐LTS...
  • ZhangRelay
  • ZhangRelay
  • 2016-11-25 19:38
  • 9836

ROS机器人程序设计.pdf

  • 2016-11-08 16:59
  • 44.61MB
  • 下载

ros机器人程序设计

  • 2014-10-28 16:11
  • 13.73MB
  • 下载
    个人资料
    • 访问:884069次
    • 积分:11474
    • 等级:
    • 排名:第1612名
    • 原创:237篇
    • 转载:23篇
    • 译文:49篇
    • 评论:660条
    博客专栏
    最新评论