【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的程式設計使用