求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
ROS教程
1.初级教程
1.1 安装和配置ROS环境
1.2 ROS文件系统导览
1.3 创建ROS软件包
1.4 构建ROS软件包
1.5 理解ROS节点
1.6 理解ROS话题
1.7 理解ROS服务和参数
1.8 使用rqt_console和roslaunch
1.9 使用rosed在ROS中编辑文件
1.10 创建ROS消息和服务
1.11 编写简单的发布者和订阅者(C++)
1.12 编写简单的发布者和订阅者(Python)
1.13 检验简单的发布者和订阅者
1.14 编写简单的服务和客户端(C++)
1.15 编写简单的服务和客户端(Python)
1.16 检验简单的服务和客户端
1.17 录制和回放数据
1.18 从bag文件中读取消息
1.19 roswtf入门
1.20 探索ROS维基
1.21 接下来做什么?
2.中级教程
2.1手动创建ROS包
2.2管理系统依赖项
2.3Roslaunch在大型项目中的使用技巧
2.4ROS在多机器人上的使用
2.5自定义消息
2.6在python中使用C++类
2.7如何编写教程
ROS标准
ROS开发者指南
标准计量单位和坐标约定
 
 
手动创建ROS包
来源: ros.org 在线教程    编辑:Alice(火龙果软件)
280 次浏览
6次  

描述: 本教程将展示如何手动创建ROS包

教程级别:中级

我们可以使用(catkin_create_pkg)工具来自动创建ROS package,不过,接下来你就会发现,这不是什么难事。roscreate-pkg节省精力避免错误,但package只不过就是一个文件夹外加一个XML文件。

现在,我们要手动创建一个名为foobar的package。请转至你的catkin workspace,并确认你已经刷新了setup文件。

catkin_ws_top $ mkdir -p src/foobar
catkin_ws_top $ cd src/foobar

我们要做的第一件事就是添加配置文件。package.xml 文件使得像rospack这类工具能够检测出我们所创建的package的依赖项.

在 foobar/package.xml文件里添加如下语句:

<package>
  <name>foobar</name>
  <version>1.2.4</version>
  <description>
  This package provides foo capability.
  </description>
  <maintainer email="foobar@foo.bar.willowgarage.com">PR-foobar</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>std_msgs</build_depend>

  <run_depend>roscpp</run_depend>
  <run_depend>std_msgs</run_depend>
</package>

同样,你可以参考 this page from catkin tutorial 以获得更多关于 catkin/package.xml 的信息。

现在,你的package里已经包含配置文件(package.xml),ROS能够找到它。试一试,执行如下指令:

rospack find foobar

如果ROS配置正确,你将会看到类似如下的信息: /home/user/ros/catkin_ws_top/src/foobar.这就是ROS如何在后台寻找package的机理。

应该注意到我们刚才所创建的package依赖于 roscpp 和 std_msgs.而catkin恰恰是利用这些依赖项来配置所创建的package。

至此,我们还需要一个 CMakeLists.txt 文件,这样 catkin_make才能够利用 CMake 强大的跨平台特性来编译所创建的包。

在 foobar/CMakeLists.txt文件里输入:

cmake_minimum_required(VERSION 2.8.3)
project(foobar)
find_package(catkin REQUIRED roscpp std_msgs)
catkin_package()

这就是你想在ROS下用catkin编译package所要做的全部工作。当然了,如果想要让它真正的编译一些东西,你还需要学习关于CMake宏的一些知识。请参考 CMakeLists.txt 以获得更多信息。回顾初级教程如 (CreatingPackage 等) 来修改你的 package.xml 和 CMakeLists.txt文件


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



280 次浏览
6次