【ROS入门21讲】发布者Publisher的编程使用
本文章是针对bilibili古月居up的【ROS入门21讲】所作的笔记,笔记从第8讲开始,主要记录一些关键内容方便查阅。
视频连接:【ROS入门21讲】
课件及源码:
链接: https://pan.baidu.com/s/1UUGTN1DI-2eCeRc80OUKcg?pwd=e23b
提取码: e23b
————————————————

ROS Master首先对Publisher与Shubscriber进行注册;
Publisher通过Topic话题与与Subscriber进行通讯;
Message用于指定通信数据的类型;
以小海龟为例
我在这里与视频不同,使用的vscode + ros。
1、初始化工作空间,这里就不细讲了,具体请我的另一篇博客:【ROS】VSCODE + ROS 配置方法(总结了多篇)。
2、创建功能包
roscpp rospy std_msgs geometry_msgs turtlesim
。
3、创建发布者代码(C++):
#include "ros/ros.h"
#include "geometry_msgs/Twist.h"
int main(int argc,char **argv)
{
// 1
ros::init(argc,argv,"velocity_publisher");
ros::NodeHandle n;
// 2
ros::Publisher pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",10);
ros::Rate r(10);
int count = 0;
while (ros::ok())
{
geometry_msgs::Twist vel_msg;
vel_msg.linear.x = 0.5;
vel_msg.angular.z = 0.2;
pub.publish(vel_msg);
ROS_INFO("command[%0.2f m/s,%0.2f rad/s]",vel_msg.linear.x,vel_msg.angular.z);
r.sleep();
}
return 0;
}
注意:
1、“velocity_publisher”,必须是这个;
2、"/turtle1/cmd_vel",必须是这个;
4、配置发布者代码编译规则
添加到CMakeLists.txt中
add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})
配置号task.json文件后,ctrl + shfit +b编译出可执行文件
5、vscode运行publisher
所有指令都是通过ctrl + shfit + p完成,代替了终端。
- 执行ctrl + shfit + p,输入ROS:Start启动ROSMaster。
- 执行ctrl + shfit + p,输入ROS:Run a executable,然后输入turtlesim,然后输入turtlsim_node。目的启动小海龟节点。
- 执行ctrl + shfit + p,输入ROS:Run a executable,然后输入编译出的可执行文件。
- 就可以在终端看到小海龟画圈了。
【ROS入门21讲】发布者Publisher的编程使用【ROS入门21讲】发布者Publisher的编程使用