ROS环境下进行package的简单创建并编译

来源:互联网 发布:微信公众号推荐 知乎 编辑:程序博客网 时间:2024/06/05 15:36

ROS环境下进行package的简单创建并编译

1、  安装ROS工作环境。

本人是基于ubuntu12.04环境下的fuerte的安装,安装参考文档见:

http://ros.org/wiki/fuerte/Installation/Ubuntu;安装完毕之后,打开终端,运行一下“roscore”,如果没有问题,安装就成功了!

 

2、  修改环境变量。在终端运行$ export | grep ROS,就会得到ROS的一些版本信息及包的路径等,如下所示:

declare -xROSLISP_PACKAGE_DIRECTORY="/opt/ros/fuerte/share/common-lisp/ros"

declare -xROS_DISTRO="fuerte"

declare -xROS_ETC_DIR="/opt/ros/fuerte/etc/ros"

declare -xROS_MASTER_URI="http://localhost:11311"

declare -xROS_PACKAGE_PATH="/opt/ros/fuerte/stacks:/opt/ros/fuerte/share"

declare -xROS_ROOT="/opt/ros/fuerte/share/ros"

 

在终端执行$ export ROS_PACKAGE_PATH=/opt/ros/fuerte/stacks:/opt/ros/fuerte/share:/home/liuqin/ros_workspace,即将自己要建立的ROS的包(我的路径:/home/liuqin/ros_workspace)与ROS装的包建立起联系,ROS并从这些包含的路径中去寻找相应的包。再次运行$ export | grep ROS就会得到更新的一些信息。

declare -xROSLISP_PACKAGE_DIRECTORY="/opt/ros/fuerte/share/common-lisp/ros"

declare -xROS_DISTRO="fuerte"

declare -xROS_ETC_DIR="/opt/ros/fuerte/etc/ros"

declare -xROS_MASTER_URI="http://localhost:11311"

declare -xROS_PACKAGE_PATH="/opt/ros/fuerte/stacks:/opt/ros/fuerte/share:

/home/liuqin/ros_workspace"

declare -xROS_ROOT="/opt/ros/fuerte/share/ros"

为什么要这样添加呢?

因为ROS的package是ROS_ROOT或者ROS_PACKAGE_PATH里面的一个目录/文件夹,包含一个manifest.xml文件。

 

3、  根据个人安装的ROS的版本,选择合适的编译方式。Groovy(含)以上的版本采用catkin,以下的版本采用rosbuild。由于我是采用的fuerte版本,因此采用基于rosbuild的创建及编译方式。

3.1 创建一个包:

cd 进入自己的包的路径,我的路径是/home/liuqin/ros_workspace

参考网址:http://wiki.ros.org/ROS/Tutorials/CreatingPackage

利用 rorcreate-pkg 创建 package,比如$ roscreate-pkg beginner_tutorials std_msgs roscpp rospy

得到的结果:

Created packagedirectory /home/liuqin/ros_workspace/beginner_tutorials

Created includedirectory /home/liuqin/ros_workspace/beginner_tutorials/include/beginner_tutorials

Created cpp sourcedirectory /home/liuqin/ros_workspace/beginner_tutorials/src

Created packagefile/home/liuqin/ros_workspace/beginner_tutorials/Makefile

Created packagefile /home/liuqin/ros_workspace/beginner_tutorials/manifest.xml

Created packagefile /home/liuqin/ros_workspace/beginner_tutorials/CMakeLists.txt

Created packagefile /home/liuqin/ros_workspace/beginner_tutorials/mainpage.dox

Please editbeginner_tutorials/manifest.xml and mainpage.dox to finish creating yourpackage

3.2查看 package相关第一层依赖项

$ rospack depends1 beginner_tutorials  ----package第一层依赖项查询

$ rospack depends1 rospy ----package依赖项rospy的第一层依赖项查询

$ rospack depends beginner_tutorials  ---package所有依赖项查询

结果如下:

std_msgs

roslang

rospy

roscpp

以上只是建立了一个包,参看这个包的文件,发现有include、src和一些manifest等文件。

3.3 建立和编译package

参考文档:http://wiki.ros.org/ROS/Tutorials/CreatingPackage

http://wiki.ros.org/ROS/Tutorials/BuildingPackages

3.3.1系统关联

rosdep命令 ----根据ROS packages来安装系统变量,执行$ rosdepinstall beginner_tutorials。

3.3.2 编译package

rosmake命令 ---编译package

$ rosmake beginner_tutorials

同理,编译多个package,执行$ rosmake [package1] [package2] [package3]

此时beginner_tutorials这个包里的文件为bin、build、include、src和一些makefile、manifest等文件。

 

试验平台:ubuntu12.04+fuerte

 

0 0