#目录:
一.创建ROS包
二.创建发布者
三.创建订阅者
四.添加编译选项
五.运行可执行程序
六.创建msg文件
一.创建ROS包
首先进入catkin_ws/src目录下,在此目录下打开终端。
执行catkin_create_pkg beginner_tutorials std_msgs rospy roscpp(这里包的名称是beginner_tutorials)
二.创建发布者
在beginner_tutorials/src下面创建c++文件,文件名称为talker和listener
gedit talker.cpp
gedit listener.cpp
之后在talker中写入以下内容(自己按照发布者编写规范自由编写):
三.创建订阅者
在listener中写入以下内容:
四.添加编译选项
4.1编译代码
在目标包beginner_tutorials/src中,打开CMakeLists.txt,修改如下内容:
设置需要编译的代码和生成的可执行文件
设置链接库
设置依赖
4.2编译C++节点
在~/catkin_ws目录下执行catkin_make或者catkin_make –force-cmake -DCATKIN_WHITELIST_PACKAGES=”beginner_tutorials”
五.运行可执行程序
分别打开三个终端:
(1)roscore
(2)source ~/catkin_ws/devel/setup.bash(设置环境变量)
rosrun beginner_tutorials talker
(3)source ~/catkin_ws/devel/setup.bash(设置环境变量)
rosrun beginner_tutorials listener
最终通信结果
六.创建msg文件
6.1定义msg文件
在ros包~/catkin_ws/src/beginner_tutorials中创建msg文件夹,在该文件夹下面创建自定义文件person.msg
mkdir msg
gedit person.msg
在其中自定义话题消息:
6.2添加依赖项
在package.xml添加功能包依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_generation</exec_depend>
<build_depend>geometry_msgs</build_depend>
<exec_depend>gepmetry_msgs</build_depend>
在CMakeList.txt添加
find_package(……geometry_msgs message_generation)
catkin_package(CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs message_runtime)
add_message_files(FILES person.msg)
generate_messages(DEPENDENCIES std_msgs)
6.3编译
catkin_make或者catkin_make –force-cmake -DCATKIN_WHITELIST_PACKAGES=”beginner_tutorials”
6.4检查编译是否成功
source ~/catkin_ws/devel_setup.bash
rosmsg show person