求知 文章 文库 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(火龙果软件)
622 次浏览
6次  

描述: 本教程介绍了构建软件包及使用的工具链。

教程级别:初学者

构建软件包

只要安装了这个包的所有系统依赖项,就可以开始编译软件包了。

注意:如果你是通过apt或者其它软件包管理器来安装ROS的,那么系统已经安装好了所有的依赖项。

如果你还没设置环境的话,记得先苏克雷一下。在Ubuntu中的操作如下:

$ source /opt/ros/<distro>/setup.bash

使用catkin_make

catkin_make 是一个命令行工具,它简化了标准catkin工作流程。你可以认为catkin_make是在标准CMake工作流程中依次调用了cmake和make。

用法:

# 在catkin工作空间下
$ catkin_make [make_targets]
[-DCMAKE_VARIABLES=...]

 

如果你不熟悉什么是标准CMake工作流程,可以认为是以下几个步骤:

注意:直接运行以下命令是无效的,因为它只是一个演示CMake工作流程的例子。

# 在CMake工作空间下
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install  # (可选)

 

每个CMake项目都要单独进行这样的步骤。相反,多个catkin项目可以放在工作空间中一起构建,在工作空间中构建零到多个catkin软件包为以下工作流程:

# 在catkin工作空间下
$ catkin_make
$ catkin_make install  # (可选)

 

上述命令会构建src目录下的所有catkin项目。该过程遵循REP128的建议。如果你的源代码不在默认位置(catkin_ws/src),比如说存放在了my_src中,那可以这样来使用catkin_make:

注意:直接运行以下命令是无效的,因为my_src可能不存在。

# 在catkin工作空间下
$ catkin_make --source my_src
$ catkin_make install --source my_src  # (可选)

 

对于catkin_make的高级用法,请参考catkin/command/catkin_make。

开始构建你的软件包

如果现在就要构建自己的代码,请同时看一下后面的(C++)/(Python)教程,因为你可能需要修改CMakeLists.txt文件。

按照之前的创建ROS软件包教程,你应该已经创建了一个好catkin工作空间和一个名为beginner_tutorials的catkin软件包。现在切换到catkin工作空间并查看src目录:

$ cd ~/catkin_ws/
$ ls src

 

beginner_tutorials/  CMakeLists.txt@  

 

你可以看到一个名为beginner_tutorials的目录,这就是你之前用catkin_create_pkg命令创建的。现在我们可以使用catkin_make来构建它了:

$ catkin_make

 

你可以看到很多cmake和make的输出信息:

Base path: /home/user/catkin_ws
Source space: /home/user/catkin_ws/src
Build space: /home/user/catkin_ws/build
Devel space: /home/user/catkin_ws/devel
Install space: /home/user/catkin_ws/install
####
#### Running command: "cmake /home/
user/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/
user/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/user
/catkin_ws/install" in "
/home/user/catkin_ws/build" #### -- The C compiler
identification is GNU 4.2.1 -- The CXX compiler identification
is Clang 4.0.0 -- Checking whether C compiler
has -isysroot -- Checking whether C compiler
has -isysroot - yes -- Checking whether C compiler supports
OSX deployment target flag -- Checking whether C compiler supports
OSX deployment target flag - yes -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler:
/usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler:
/usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Using CATKIN_DEVEL_PREFIX: /tmp/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/kinetic -- This workspace overlays: /opt/ros/kinetic -- Found PythonInterp: /usr/bin/python
(found version "2.7.1") -- Found PY_em: /usr/lib/python2.7
/dist-packages/em.pyc -- Found gtest: gtests will be built -- catkin 0.5.51 -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing packages in topological order: -- ~~ - beginner_tutorials -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ add_subdirectory(beginner_tutorials) -- Configuring done -- Generating done -- Build files have been written to:
/home/user/catkin_ws/build #### #### Running command: "make -j4" in
"/home/user/catkin_ws/build" ####

 

请注意,catkin_make首先输出它所使用到的每个空间所在的路径。更多关于空间的信息,请参考REP128和catkin/workspaces。需要注意的是,根据这些变量的默认值,有几个目录已经在catkin工作空间中自动生成了,用ls看看:

$ ls

 

build
devel
src

 

build 目录是构建空间的默认位置,同时cmake和make也是在这里被调用来配置和构建你的软件包。而devel目录是开发空间的默认位置, 在安装软件包之前,这里可以存放可执行文件和库。

 


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

1元 10元 50元





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



622 次浏览
6次