本次博客总结介绍如何用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的角速度运动,结果如下图: