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 darknet_ros_msgs std_msgs rospy roscpp
此时,新创建的包文件夹下会有include、src、CMakeList.txt、package.xml
“CMake是一种跨平台编译工具,CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库。”
“package.xml 也是一个catkin的package必备文件, 它是这个软件包的描述文件, 用于描述pacakge的基本信
息。rospack find 、 rosdep 等命令之所以能快速定位和分析出package的依赖项信息, 就
是直接读取了每一个pacakge中的 package.xml 文件。”
4 创建新的话题
在当前功能包新建msg文件夹,存放msg文件(由于话题名自带包名,所以yolo录的话题都是darknet_ros_msgs/
开头的,用的时候新建的话题也得是darknet_ros_msgs/
打头,干脆新创建同名包,专门存话题了,当然也可以把其他程序也写在这个包的src下)
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文件