本次博客总结介绍如何用c++编写发布器Publisher
话题模型

创建功能包
- 创建工作空间  mkdir -p ~/catkin_ws/src/ 
 cd ~/catkin_ws/src/
 catkin_init_workspace
 cd ~/catkin_ws/
 catkin_make
 source devel/setup.bash
如果编译以及环境变量设置没有出错,那么工作空间的创建就顺利完成
- 创建功能包  cd ~/catkin_ws/src 
 catkin_create_pkg learing_topic roscpp rospy std_msgs geometry_msgs turtlesim
功能创建成功如下图所示:
编写创建Publisher
如何实现一个发布者Publisher
- 初始化节点
- 向ROS master注册节点信息,包括发布的话题名和话题中的消息类型
- 创建消息数据
- 按照一定频率循环发布消息
按照以上方法编写velocity_publisher.cpp文件来创建Publisher,使用geometry_msgs::Twist的消息类型。具体代码如下:
| 1 | /* | 
配置发布者代码编译规则
- 设置需要编译的代码和生成的可执行文件 - add_executable(velocity_punlish src/velocity_publisher.cpp) 
- 设置链接库 - target_link_libraries(velocity_publisher ${catkin_LIBRARIES}) 
将这两条设置写入到/learning_topic/CMakeLists.txt文件的 build 注释下方,如下图所示:
编译并运行发布者
- 编译并配置环境变量 - cd ~/catkin_ws/ 
 catkin_make
 source devel/setup.bash
- 打开新的终端启动master - roscore 
- 打开新终端运行海龟仿真器 - rosrun turtlesim turtlesim_node 
- 打开新窗口运行自己功能包中的程序 - rosrun learning_topic velocity_publisher 
最后海龟以0.5m/s的线速度,0.2rad/s的角速度运动,结果如下图:
