一、话题模型
二、创建功能包
cd ~/catkin_ws/src
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
三、创建发布者
#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
int main(int argc, char **argv){
ros::init(argc, argv, "velocity_publisher");
ros::NodeHandle n;
ros::Publisher turtle_vel_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 10);
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok()){
geometry_msgs::Twist vel_msg;
vel_msg.linear.x = 0.5;
vel_msg.angular.z = 0.2;
turtle_vel_pub.publish(vel_msg);
ROS_INFO("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z);
loop_rate.sleep();
}
return 0;
}
四、配置发布者代码编译规则
1.add_executable(Velocity_publisher src/velocity_publisher.cpp
描述把那一个程序文件编译成可执行文件
2.targert_link_libraries(velocity_publisher ${catkin_LIBRARIES})
用来帮助我们将ros库、接口通过target和库来做链接
五、编译+运行
cd ~/catkin_ws
catkin_make
source devel/setup.bash
roscore
rosrun turtlism turtlesim_node
rosrun learning_topic velocity_publisiher