记录创建功能包

1 创建文件,初始化工作空间

 mkdir -p -/catkin_ws/src
 cd -/catkin_ws/src
 catkin_init_workspace		# src下出现CMakeList

2 编译

cd ...
caktin_make		# catkin_ws下出现build和devel

3 创建功能包

cd src
#创建指令         #包名(文件夹名字)       #依赖的功能包
catkin_create_pkg XXXXXX std_msgs rospy roscpp

此时,新创建的包文件夹下会有include、src、CMakeList.txt、package.xml

“CMake是一种跨平台编译工具,CMake主要是编写CMakeLists.txt文件,然后用cmake命令将MakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库。”
“package.xml 也是一个catkin的package必备文件, 它是这个软件包的描述文件, 用于描述pacakge的基本信息。rospack find 、 rosdep 等命令之所以能快速定位和分析出package的依赖项信息, 就是直接读取了每一个pacakge中的 package.xml 文件。”

在src下编辑文件seg.cpp,添加到CMakeList:

			# 可执行文件名 源文件名
add_executable(seg src/seg.cpp)
			# 可执行文件名 添加可执行文件的依赖
target_link_libraries(seg ${catkin_LIBRARIES})

注意添加CMakeList时,顺序不要乱了,遇到过生成的可执行文件出现在build而不是在devel中:

CMakeList中声明顺序有问题,要先声明catkin_package(),再声明add_executable()

4 创建新的话题
在当前功能包新建msg文件夹,存放msg文件(由于话题名自带包名,所以yolo录的话题都是darknet_ros_msgs/开头的,用的时候新建的话题也得是darknet_ros_msgs/打头,我这里干脆新创建同名包darknet_ros_msgs,专门存话题了)

package.xml下添加:
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>  # 或者<exec_depend>message_runtime</exec_depend>
CMakeList添加
find_package(message_generation)  # 话题用到的依赖,比如pcl库等
add_message_files(BoundingBox.msg BoundingBoxes.msg)  # 话题文件
catkin_package(message_runtime)

catkin_make 后在catkin_ws/devel/include/darknet_ros_msgs下生成话题.h文件;
在程序中#include <darknet_ros_msgs/BoundingBox.h>进来就好;
如果是在单独的功能包中创建的的话题,还需要在CMakeList中find_package(darknet_ros_msgs)
launch文件

<launch>
    <!-- 两种参数读入方式 -->
    <!-- 1、从yaml文件中 -->
    <rosparam file="$(find segmentation)/config/params.yaml" command="load" />
    <!-- 2、直接从launch文件中 -->
    <param name="center_x" value="381.91"/>
    
     <!-- pkg:包名  type:可执行文件名  name:节点名  -->
    <node pkg="segmentation" type="seg" name="seg" output="screen" respawn="true" />
    <node name="rviz" pkg="rviz" type="rviz" output="log" args="-d $(find segmentation)/launch/rviz.rviz" />
</launch>

参数服务器
yaml文件直接写就行了,launch文件<rosparam file="$(find segmentation)/config/params.yaml" command="load" />找到它。

id: 56
poseTopic: "/vins_estimator/odometry"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值