logo资料库

ROSWIKI官网学习资料整理.pdf

第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
资料共48页,剩余部分请下载后查看
ROS 官网学习资料整理 1-初级阶段 目 录 目录 ................................................................................................................................................................. 1 一、基本命令 ................................................................................................................................................. 3 二、创建一个 WorkSpace .............................................................................................................................. 3 三、创建一个 Package ................................................................................................................................... 3 3.1 一个包的组成 .................................................................................................................................. 3 3.2 包与 catkin WorkSpace 空间关系 ................................................................................................... 3 3.3 创建一个 catkin Package ................................................................................................................. 4 3.4 包的依赖 .......................................................................................................................................... 5 3.4.1 First-order dependencies ........................................................................................................ 5 3.4.2.Indirect dependencies ............................................................................................................. 5 3.5 定制自己的包 .................................................................................................................................. 5 3.5.1 认识 package.xml 文件各部分含义 ..................................................................................... 5 四、编译一个 ROS 包 .................................................................................................................................... 6 4.1 Building Packages ............................................................................................................................. 6 五、理解 ROS 节点 ........................................................................................................................................ 6 5.1 熟悉如下几个概念 .......................................................................................................................... 7 5.2 Client Libraries .................................................................................................................................. 7 5.3 roscore ............................................................................................................................................... 7 5.4 开始使用 rosnode ............................................................................................................................ 8 5.5 用 rosrun. .......................................................................................................................................... 9 六、理解 ROS 中的 Topics ........................................................................................................................... 10 6.1 键盘遥控乌龟 ................................................................................................................................ 11 6.2 ROS Topics...................................................................................................................................... 11 6.3 介绍 rostopic .................................................................................................................................. 12 6.3.1 rostopic echo ........................................................................................................................ 12 6.3.2 rostopic list ........................................................................................................................... 13 6.4 ROS Messages................................................................................................................................. 13 6.4.1 用 rostopic type ................................................................................................................... 14 6.4.2 用 rostopic pub 命令 ........................................................................................................... 15 6.4.3 用 rostopic hz 命令 ............................................................................................................. 16 七、理解 ROS 中的 Services 和 Parameters ................................................................................................ 18 7.1 ROS Services................................................................................................................................... 18 7.2 用 rosservice 命令 .......................................................................................................................... 18 7.2.1 rosservice list ........................................................................................................................ 19 7.2.2 rosservice type ...................................................................................................................... 19 7.2.3 rosservice call ....................................................................................................................... 20 7.3 用 rosparam .................................................................................................................................... 21 7.3.1 rosparam list ......................................................................................................................... 21 7.3.2 rosparam set 和 get 命令 ...................................................................................................... 21 7.3.3 rosparam dump 和 rosparam load 命令 ............................................................................... 23 八、使用 rqt_console 和 roslaunch ............................................................................................................. 24 8.1 安装 rqt 和 turtlesim 包。 ............................................................................................................. 24 8.2 rqt_console 和 rqt_logger_level 的用法 ......................................................................................... 24 1 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 8.2.1 关于 logger 的输出等级。 ................................................................................................. 26 8.2.2 roslaunch 的用法 ................................................................................................................. 27 8.2.3 roslaunching ......................................................................................................................... 27 九、用 rosed 编辑文件 ................................................................................................................................ 29 9.1 rosed 的使用 ................................................................................................................................... 29 9.2 用 tab 键编辑一个包下的所有文件。 ......................................................................................... 30 9.3 Editor ............................................................................................................................................... 30 十、创建一个 ROS msg 和 srv ..................................................................................................................... 31 10.1 msg 和 srv 介绍 ............................................................................................................................ 31 10.2 msg ................................................................................................................................................ 32 10.2.1 创建一个 msg ................................................................................................................... 32 10.2.2 使用 rosmsg ...................................................................................................................... 33 10.3 使用 srv ........................................................................................................................................ 34 10.3.1 创建一个 srv ..................................................................................................................... 34 10.3.2 使用 rossrv ........................................................................................................................ 35 10.4 msg 和 srv 的一般步骤 ................................................................................................................ 35 10.5 一些帮助工具 .............................................................................................................................. 37 十一、写一个简单的发布者 Publisher 和订阅者(Subscriber)(C++语言)............................................. 37 11.1 写一个 Publisher 节点 ................................................................................................................. 37 11.2 写一个 Subscriber 节点。 ........................................................................................................... 39 11.3 编译你的节点 .............................................................................................................................. 40 十二、测试发布节点和订阅节点。 ........................................................................................................... 41 12.1 运行 Publisher .............................................................................................................................. 41 12.2 运行 Subscriber ............................................................................................................................ 42 十三、写一个简单的 Service 和 Client ....................................................................................................... 42 13.1 写一个 Service 节点 .................................................................................................................... 42 13.2 写一个 Client 节点 ...................................................................................................................... 43 13.3 编译你的节点 .............................................................................................................................. 44 十四、测试 Service 和 Client ....................................................................................................................... 45 14.1 运行 Service(记得先运行 roscore) ........................................................................................ 45 14.2 运行 Client ................................................................................................................................... 45 十五、记录数据以及回复数据 ................................................................................................................... 46 15.1 记录数据(创建 bag 文件) ...................................................................................................... 46 15.1.1 记录所有发布的 topics .................................................................................................... 46 15.2 查看 bag 文件及 playing bag 文件.............................................................................................. 47 15.3 记录数据的一部分 ...................................................................................................................... 48 十六、roswtf 的使用 ................................................................................................................................... 48 2 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 一、基本命令 cd [file_name]: 进入某一文件路径 cd .. : 返回上一级目录 ls:列出当前路径下的所有文件 rospack find [package_name]: 返回所要找的包的路径 roscd: 将当前路径设置为某一个 ROS 包或栈的路径或其子路径 pwd: 显示出当前 roscd log:将路径设置为 ROS 存储日志文件的路径。 rosls [locationname[/subdir]]:直接将路径改为某个包下的某个子目录 TAB 键,相当于 Eclipse 里面的 ALT+/。但没有 ALT+/功能那么强大,只能在路径唯一时才会自动出 来。不会给出可选列表 二、创建一个 WorkSpace $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace 初始化了工作空间,创建了一个 catkin_ws 空间,在该空间下有一个 src 文件夹。 $ cd ~/catkin_ws/ $ catkin_make 执行完该命令后,查看当前路径,会发现该空间除了 src,又多了 build 和 devel 文件夹。这两个文 件夹中是一些配置信息、编译信息等。 三、创建一个 Package 3.1 一个包的组成 必须满足三个要求: 1. 一个包里必须包含一个 package.xml 文件,用于说明关于包的基本信息(meta information)—— 相当于 Android 里德 Manifest.xml 文件。 2. 包必须包含一个 CMakeLists.txt 文件。 3. 一个文件夹里只能有一个包。这也意味着,不会有多个包共用相同的路径。 3.2 包与 catkin WorkSpace 空间关系 一个包通常要在一个 catkin WorkSpace 中。也可以单独创建包。 包在 WorkSpace 空间中的结构是这样的: workspace_folder/ -- WORKSPACE src/ -- SOURCE SPACE CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin package_1/ 3 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 CMakeLists.txt -- CMakeLists.txt file for package_1 package.xml -- Package manifest for package_1 ... package_n/ CMakeLists.txt -- CMakeLists.txt file for package_n package.xml -- Package manifest for package_n 3.3 创建一个 catkin Package 首先要先进入之前创建的一个 WorkSpace 的 src 目录中 $ cd ~/catkin_ws/src 然后用 catkin_create_pkg [depend1] [depend2] [depend3]创建一个包。 $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp 依照上述命令,创建了一个名为 beginner_tutorials 的包。这个包里包含了一个 package.xml 和 CMakeList.txt 文件。进入 src 文件可以看到多了一个名为 beginner_tutotials 的包。 进入 beginner_tutorials 查看一下。里面有如下文件: 4 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 那么,什么是包的依赖呢?上述的命令里,有三个依赖,std_msgs rospy roscpp,他们分别是什么含 义呢? 3.4 包的依赖 3.4.1 First-order dependencies 一个包直接依赖的文件?类?包?库? 3.4.2.Indirect dependencies 包所依赖的文件可能还依赖别的文件。 用 rospack depends1 查询想要查询的类的依赖 rospack depends 列出包所有依赖的对象 3.5 定制自己的包 3.5.1 认识 package.xml 文件各部分含义 1. description 标签 this can be your description 2. maintainer 标签 user 这个标签描述了谁是这个包的维护者。至少需要一个维护者。标签中给出了维护者的邮箱 3. license 标签 BSD 需要选择一个开放源码许可证。开放源码许可证有:BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, and LGPLv3 等,在 ROS 里采用 BSD 开源许可证 4. dependencies 标签 给出了该包依赖于哪些包或文件 默认为 buildtool_depend、编译 build_depend、运行 run_depend 切换行号显示 12 catkin 13 14 roscpp 15 rospy 16 std_msgs 17 18 roscpp 19 rospy 20 std_msgs 5. 去掉各种注释和无用的标签之后的 packag.xml 文件如下: beginner_tutorials 0.1.0 The beginner_tutorials package Li Gaofeng 5 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 BSD http://wiki.ros.org/beginner_tutorials Li Gaofeng catkin roscpp rospy std_msgs roscpp rospy std_msgs 四、编译一个 ROS 包 4.1 Building Packages 1. 利用 catkin_make 命令 该命令是一个命令行工具,为标准 catkin 工作流程提供了方便。可以看做 catkin_make 命令把 Cmake 工作流程中的 cmake 和 make 的响应结合到了一起。 $ catkin_make [make_targets] [-DCMAKE_VARIABLES=...] 2. Building Your Package $ cd ~/catkin_ws/ $ catkin_make 首先必须进入一个 catkin 空间,不然在进行 catkin_make 编译时,catkin_make 默认的编译路径是空 间下的 src 目录,如果不在空间目录,则找不到 src 文件,编译不成功。 如果更改编译路径: # In a catkin workspace $ catkin_make --source my_src $ catkin_make install --source my_src # (optionally) 编译之后,在工作空间中除了 src 文件夹,还有 build 和 devel 文件夹。build 是 cmake 和 make 在编 译包时生成的一些设置文件。查看该文件夹会发现其中多了一个 beginner_tutorials 的包。devel 文件 夹是默认的 devel 空间路径,是安装包之前的一些必要的可执行文件和库。 五、理解 ROS 节点 我们会用到一个轻量级的模拟器,用下面命令安装: $ sudo apt-get install ros--ros-tutorials 6 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段 将其中的 distro 替换成自己安装的 ros 版本的名字,比如 ros-hydro 5.1 熟悉如下几个概念 Nodes: 节点 Messages: 消息。一种数据类型,用来向一个 Topic 订阅或发布数据。 Topics: 话题 Master: 主节点 rosout: 标准输出/标准错误的输出 roscore: Master+rosout+parameter server 5.2 Client Libraries ROS client library 允许节点以不同的变成语言与其他节点通信。其中有两个包: rospy = python client library roscpp = c++ client library 5.3 roscore 在运行 ROS 时应该首先运行的。运行: $ roscore 会看到如下样式的输出:  ... logging to ~/.ros/log/9cf88ce4-b14d-11df-8a75-00251148e8cf/roslaun ch-machine_name-13039.log  Checking log directory for disk usage. This may take awhile.  Press Ctrl-C to interrupt  Done checking log file disk usage. Usage is <1GB.   started roslaunch server http://machine_name:33919/  ros_comm version 1.4.7   SUMMARY  ========   PARAMETERS  * /rosversion  * /rosdistro   NODES 7 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
ROS 官网学习资料整理 1-初级阶段   auto-starting new master  process[master]: started with pid [13054]  ROS_MASTER_URI=http://machine_name:11311/   setting /run_id to 9cf88ce4-b14d-11df-8a75-00251148e8cf  process[rosout-1]: started with pid [13067]  started core service [/rosout] 5.4 开始使用 rosnode 好了,现在打开一个新的 terminal,让我们用 rosnode 来看看 roscore 都做了什么吧。 Note: 打开一个新的 terminal 会重设环境,~/.bashrc 文件会 is sourced,如果在运行像 rosnode 这 样的命令时出现问题,你需要添加以下环境设置文件到~/.bashrc 文件中,或手动重新 source 他们。 下面的命令会列出当前处于活动状态的所有节点: $ rosnode list 如果什么都没有运行,会看到只有 rosout 节点 下面命令会返回关于某指定节点的信息: $ rosnode info /rosout 返回信息如下所示:  --------------------------------------------------------------------- ---  Node [/rosout]  Publications:  * /rosout_agg [rosgraph_msgs/Log]   Subscriptions:  * /rosout [unknown type]   Services:  * /rosout/set_logger_level  * /rosout/get_loggers  8 Version:1.0;Date:20140430;Author:LiGaofeng,NKU
分享到:
收藏