欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ROS学习(三):ROS创建工作空间&功能包

程序员文章站 2022-07-14 22:08:59
...
    在官网上此章节的题目是 Creating a workspace for catkin但但不知道 catkin 是是什么意思,翻译过来为 1、**卡婷**是一个广告公司   2、葇荑花  显然两种意思都不太符合!。不过那些都不太重要只要我们知道 catkin 是一个 ROS 中的工具就行了!

1、创作工作空间

mkdir -p ~/catkin_ws/src

转到已创建好的工作空间之下运行面指令,尽管这个 空间是空的,我们仍然可以构建(build)它:

cd ~/catkin_ws/
catkin_make

执行完上边命令后就会在catkin_ws中看到三个目录:build devel src

src:是我们在创建工作空间时创建的目录,同时在src文件夹下也会自动生成一个名称为CMakeLists.txt的文件!
build:文件夹是存放编译过程中产生的中间文件
devel:文件夹存放的是编译过程中产生的可执行文件和环境变量的设置脚本

build和devel都是执行完catkin_make后自动生成的!

为了能够每次打开终端的时候在linux系统中都能找到该工作空间,我们将在.bashrc文件中添加如下命令:

source ~/catkin_ws/devel/setup.bash

检查环境变量是否设置成功:

echo $ROS_PACKAGE_PATH

2、创建功能包
在工作空间里创建功能包
:ROS包在命名时遵循一个命名规范,只允许使用小写字母、数字和下划线且第一个字符得是小写字母。

在工作空间src目录下运行:
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
package-name为功能包名称,后边参数为功能包依赖!
首先创建一个名称为hello的功能包该功能包依赖roscpp (源代码用c++编写,提供必要的编程环境)

aaa@qq.com:~/catkin_ws/src$ catkin_create_pkg hello roscpp

ROS学习(三):ROS创建工作空间&功能包
编写功能包的src文件中新建main.cpp文件
ROS学习(三):ROS创建工作空间&功能包
编辑main.cpp文件内容如下:
#include “ros/ros.h”
#include
using namespace std;
int main(int argc, char **argv)
{
cout<<“hello ros!”<<endl; return 0;

}
4、修改CMakeLists.txt文件
在hello文件夹下的CMakeLists.txt文件,添加下面两行内容:

## Declare a cpp executable
add_executable(printf_hello src/main.cpp)

就会生成printf_hello的可执行文件,其依赖于src、main.cpp
关于CMakeLists.txt文件是一个Cmake的脚本文件,Cmake是一个符合工业标准的跨平台编译系统,文件中包含了一系列的编译指令、以及要生成哪种可执行文件,需要哪些源文件、在哪儿可以找到所需的头文件和链接库。

5、编译工作空间

aaa@qq.com:~/catkin_ws$ catkin_make

编译完成之后可以在devel文件夹下找到printf_hello文件
关于
6、运行
启动ROS节点:

roscore

重新打开一个终端运行hello功能包的printf_hello功能

rosrun hello printf_hello
hello ros!

运行完成后可成功打印出hello ros!
原文:https://blog.csdn.net/wwwlyj123321/article/details/83147242#commentBox