没有合适的资源?快使用搜索试试~ 我知道了~
首页ROS与C++入门教程.pdf
资源详情
资源评论
资源推荐

1
1.ROS 与 C++入门教程-目录
说明
这个专栏是介绍利用 C++来编写 ROS 程序
编写 ROS 参数,ROS 服务,ROS 发布器,ROS 订阅器
编写完整的 ROS 程序包
分析 C++例程
分析 roscpp 类 API
目录:
ROS 与 C++入门教程-目录
ROS 与 C++入门教程-构建工作空间
ROS 与 C++入门教程-构建 Catkin 包
ROS 与 C++入门教程-搭建开发环境(catkin_make)
ROS 与 C++入门教程-搭建开发环境(QT+ros_qtc_plugin)
ROS 与 C++入门教程-搭建开发环境(Eclipse)
ROS 与 C++入门教程-编写简单发布节点和订阅节点
ROS 与 C++入门教程-编写简单服务端和客户端
ROS 与 C++入门教程-使用参数
ROS 与 C++入门教程-访问 NodeHandle 类的私有名称
ROS 与 C++入门教程-使用类方法作为回调函数
ROS 与 C++入门教程-使用 Timers 类
ROS 与 C++入门教程-动态配置-编写高级的发布器和订阅器
ROS 与 C++入门教程-初始化和关闭 roscpp 节点
ROS 与 C++入门教程-消息-消息生成
ROS 与 C++入门教程-消息-Traits(特征)
ROS 与 C++入门教程-消息-自定义容器分配器
ROS 与 C++入门教程-消息-序列化和适配类型
ROS 与 C++入门教程-服务
ROS 与 C++入门教程-参数服务器
ROS 与 C++入门教程-Timers(定时器)
ROS 与 C++入门教程-NodeHandles
ROS 与 C++入门教程-Callbacks 和 Spinning
ROS 与 C++入门教程-Logging(日志)
ROS 与 C++入门教程-名称和节点信息
ROS 与 C++入门教程-Time(时间)

2
ROS 与 C++入门教程-Exceptions(异常)
ROS 与 C++入门教程-发布和订阅
ROS 与 C++入门教程-Advanced: Internals(高级:内部)
ROS 与 C++入门教程-tf-数据类型
ROS 与 C++入门教程-tf-坐标变换
ROS 与 C++入门教程-tf-广播变换
ROS 与 C++入门教程-tf-使用已发布的变换
ROS 与 C++入门教程-tf-异常
ROS 与 C++入门教程-tf-编写 tf broadcaster(广播)
ROS 与 C++入门教程-tf-编写 tf listener(监听)
ROS 与 C++入门教程-tf-增加坐标系
ROS 与 C++入门教程-tf-深入 Time 和 TF
ROS 与 C++入门教程-tf-Time travel(时间穿梭)
ROS 与 C++入门教程-actionlib-编写简单的 action 服务器(Execute Callback)
ROS 与 C++入门教程-actionlib-编写简单的 action 客户端
ROS 与 C++入门教程-actionlib-运行 action 服务器和客户端
ROS 与 C++入门教程-actionlib-编写简单的 action 服务器(Goal Callback)
ROS 与 C++入门教程-actionlib-多线程的 action 客户端
ROS 与 C++入门教程-actionlib-启动 action 服务器和客户端并带有数据节点
ROS 与 C++入门教程-actionlib-编写基于回调函数的客户端
ROS 与 C++入门教程-pluginlib-插件介绍
ROS 与 C++入门教程-pluginlib-编写简单的插件
ROS 与 C++入门教程-nodelet-介绍
ROS 与 C++入门教程-nodelet-运行 Nodelet
ROS 与 C++入门教程-nodelet-Node 封装为 Nodelet
ROS 与 C++入门教程-nodelet-Kobuki 的控制器的 Nodelet 实现
ROS 与 C++入门教程-navigation-实现发布 Odom 话题
ROS 与 C++入门教程-navigation-实现 TF 变换
ROS 与 C++入门教程-navigation-实现发布传感器话题
ROS 与 C++入门教程-navigation-实现路径规划
参考:
http://docs.ros.org/indigo/api/roscpp/html/
http://wiki.ros.org/IDEs
https://github.com/ros/ros_tutorials/tree/indigo-devel
http://wiki.ros.org/roscpp_tutorials
http://wiki.ros.org/roscpp

3
http://wiki.ros.org/roscpp/Overview
http://wiki.ros.org/roscpp_tutorials?distro=indigo
http://wiki.ros.org/CppStyleGuide
http://wiki.ros.org/DevelopersGuide
http://wiki.ros.org/pluginlib
http://blog.csdn.net/sunbibei/article/details/52958724
https://github.com/ros/pluginlib
http://wiki.ros.org/actionlib/Tutorials
http://wiki.ros.org/actionlib
http://wiki.ros.org/nodelet
2.ROS 与 C++入门教程-构建工作空间
说明
本节说明如何构建工作空间
建立工作空间
下面我们开始创建一个 catkin 工作空间:
$ mkdir ‐p ~/catkin_ws/src
$ cd ~/catkin_ws/src
即使这个工作空间是空的(在'src'目录中没有任何软件包,只有一个 CMakeLists.txt 链接文件),你依
然可以编译它:
$ cd ~/catkin_ws/
$ catkin_make
catkin_make 命令在 catkin 工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到
'build'和'devel'这两个文件夹。在'devel'文件夹里面你可以看到几个 setup.sh 文件。source 这些文件中
的任何一个都可以将当前工作空间设置在 ROS 工作环境的最顶层,想了解更多请参考 catkin 文档。接
下来首先 source 一下新生成的 setup.sh 文件:

4
$ source devel/setup.bash
要想保证工作空间已配置正确需确保 ROS_PACKAGE_PATH 环境变量包含你的工作空间目录,采用以
下命令查看:
$ echo $ROS_PACKAGE_PATH
/home/youruser/catkin_ws/src:/opt/ros/indigo/share:/o pt/ros/indigo/stacks
youruser 为用户目录
到此你的工作环境已经搭建完成,接下来可以继续学习 ROS 文件系统教程.
每次打开终端自动加载 ROS 环境和工作空间
$vim ~/.bashrc
添加内容到文件末尾
source /opt/ros/indigo/setup.bash
source /home/youruser/catkin_ws/devel/setup.bash
youruser 为用户目录
3、ROS 与 C++入门教程-构建 Catkin 包
说明
本部分教程将演示如何使用 catkin_create_pkg 命令来创建一个新的 catkin 程序包以及创建之后都能做
些什么。
将剖析 catkin_create_pkg 命令生成的每个文件并详细描述这些文件的组成部分以及如何自定义这些文
件。
步骤
首先切换到之前通过创建 catkin 工作空间教程创建的 catkin 工作空间中的 src 目录下:
# You should have created this in the Creating a Works pace Tutorial
$ cd ~/catkin_ws/src

5
现在使用
catkin_create_pkg
命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于
std_msgs、roscpp 和 rospy:
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
这将会创建一个名为 beg inner_tutorials 的文件夹,这个文件夹里面包含一个 package.xml 文件和一
个 CMakeLists.txt 文件,这两个文件都已经自动包含了部分你在执行
catkin_create_pkg 命令时提供
的信息。
catkin_create_pkg 命令会要求你输入 package_name,如果有需要你还可以在后面添加一些需要依赖
的其它程序包:
# This is an example, do not try to run this
# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
程序包依赖关系
一级依赖
之前在使用 catkin_create_pkg 命令时提供了几个程序包作为依赖包,现在我们可以使用
rospack
命令
工具来查看一级依赖包。
$ rospack depends1 beginner_tutorials
效果:
std_msgs
rospy
roscpp
就像你看到的,rospack 列出了在运行 catkin_create_pkg 命令时作为参数的依赖包,这些依赖包随后
保存在 package.xml 文件中。
$ roscd beginner_tutorials
$ cat package.xml
效果:
<?xml version="1.0"?>
<package>
...
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<run_depend>roscpp</run_depend>
剩余235页未读,继续阅读





安全验证
文档复制为VIP权益,开通VIP直接复制

评论5