ROS创建功能包

一. 新建工作空间

	mkdir -p ws_chassis/src

二 初始化文件夹为ROS功能包工作空间

在ws_chassis/src目录下执行以下命令

	catkin_init_work_space

三.编译工作空间

回到ws_chassis目录,执行以下命令

	catkin_make
正常可以看到编译成功到100%

四.创建功能包

在ws_chassis/src目录下执行以下命令

	catkin_create_pkg kh_chassis roscpp std_msgs geometry_msgs nav_msgs tf

kh_chassis 为功能包名,后面的都是依赖

五.修改CMakeLists

在ws_chassis/src可以看到创建的功能包文件夹kh_chassis ,进入里面能看到有CMakeLists.txt、include、package.xml、src。在src文件夹下放入ros代码,如chassis.cpp、groy.cpp两个,其中程序入口在chassis.cpp中,groy.cpp中的函数会被调用。

1.确认/添加依赖

打开CMakeLists.txt,找到这一行

find_package(catkin REQUIRED COMPONENTS

可以看到其中包含的依赖就是我们创建功能包时添加的,若想要在创建功能包之后再添加别的依赖,可以直接在这里添加;

2.包含头文件路径

找到这一行:

include_directories(

这部分是用来包含头文件路径的,可以包含kh_chassis文件夹下的include文件夹,例如我们将groy.h放到ws_chassis/src/kh_chassis/include/kh_chassis/文件夹下(include下面的kh_chassis是在创建功能包时自动创建的),修改为如下:

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

我们就可以在groy.cpp或chassis.cpp中包含头文件并调用其函数或变量:

#include "kh_chassis/groy.h"

3.设置节点名称及其编译要使用的源文件

ros中一个功能包中可以有多个可独立运行的节点,这里的节点可理解为进程。
找到这一行:

add_executable(${PROJECT_NAME}_node 

其中${PROJECT_NAME}_node是该节点的名称(可任意修改),包含的是其所用到的源文件:

add_executable(${PROJECT_NAME}_node 
  src/chassis.cpp
  src/groy.cpp
)

4.指定链接库

找到这一行:

target_link_libraries(${PROJECT_NAME}_node

修改为

target_link_libraries(${PROJECT_NAME}_node
  ${catkin_LIBRARIES}
)

六.编译源码

和第三步一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值