【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)
{// 1ros::init(argc,argv,"velocity_publisher");ros::NodeHandle n;// 2ros::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的编程使用相关推荐

  1. 古月居 ROS 入门21讲--PA18 tf坐标系广播与监听的编程实现笔记

    古月居 ROS 入门21讲--PA18 tf坐标系广播与监听的编程实现 1.创建功能包 cd ~/catkin_ws/src catkin_create_pkg learning_tf roscpp ...

  2. 古月居ROS入门21讲-编程基础(1)

    视频链接:bilibili 搜 古月居 源代码:关注古月居公众号,回复ROS入门21讲 文章目录 1 创建工作空间和功能包 1.1 工作空间 1.2 功能包 2 发布者Publisher的编程实现 2 ...

  3. 古月居 ROS 入门21讲--PA16 参数的使用与编程方法

    古月居 ROS 入门21讲--PA16 参数的使用与编程方法 1.参数模型 2.创建功能包 cd ~/catkin_ws/src catkin_create_pkg learning_paramete ...

  4. 古月居ROS入门21讲笔记

    ROS入门21讲笔记--古月居 1 C++&Python极简基础 1.1 安装编译/解析器 1.2 for循环 1.3 while循环 1.4 面向对象 2. ROS基础 2.1 ROS概念 ...

  5. ROS入门21讲 | ROS机器人入门教程 【简明笔记】

    古月·ROS入门21讲 | 一学就会的ROS机器人入门教程 文章目录 ROS核心概念 ROS命令行 工作空间与功能包 订阅与发布 发布者 Publisher 订阅者 Subscriber 话题消息的自 ...

  6. 古月居《ROS入门21讲》零基础学习笔记

    文章目录 前言 1.课程简介 2.Linux系统介绍及安装 3.Linux基础操作(操作集) 命令结构 常用命令 快捷操作 4.cpp&python极简基础(操作集) 简单对比 安装编译器 编 ...

  7. 古月居ROS入门21讲-坐标系管理

    视频链接:bilibili 搜 古月居 源代码:关注古月居公众号,回复ROS入门21讲 文章目录 1 TF坐标变换 1.1 常用工具 2 tf坐标系广播与监听的编程实现 2.1 创建功能包 2.2 创 ...

  8. 古月居ROS 入门21讲--PA5-PA8笔记

    ROS 入门21讲--PA5-PA8笔记 一.PA5 ROS 安装 1.配置软件库 备注:上面的四个选项打上钩. 2.添加软件源 sudo sh -c 'echo "deb http://p ...

  9. 古月居 ROS入门21讲 第十二讲 话题消息的定义与使用

    古月居 ROS入门21讲 第十二讲 话题消息的定义与使用 Person.msg string name uint8 sex uint8 ageuint8 unknown=0 uint8 male=1 ...

最新文章

  1. 静态分析C语言生成函数调用关系的利器——cflow
  2. pytorch报错Unable to get repr for
  3. 动态加载javascript
  4. MOSS 2010 修改列表的字段名及列的宽度方法
  5. SEAM学习(一)-----安装运行example
  6. 对话Couchbase首席架构师:Couchbase是目前最好的NoSQL数据库平台
  7. Android JNI编程(五)——C语言的静态内存分配、动态内存分配、动态创建数组...
  8. 小程序作用域与模块化
  9. UVALive 4975 Casting Spells
  10. Laravel框架性能优化
  11. Nginx学习总结(10)——Nginx前后端分离将多个请求转发到多个Tomcat,负载均衡反向代理
  12. redist mysql_redist命令操作(三)--集合Set
  13. Kubernetes核心技术--Pod,Label,Volume,Service,Deployment详解
  14. c语言编程 求一个数根号3,如何用C语言求两个数的最大公约数的三种算法
  15. MySQL数据库完全备份与恢复
  16. 粒子群优化算法实现寻找函数最值
  17. wordpress新留言微信提醒
  18. Poj 2965 The Pilots Brothers‘ refrigerator
  19. 2021-06-11认识征信、了解征信,个人征信有什么影响?
  20. 内外网双网卡路由配置

热门文章

  1. Pandas读取excel合并单元格的正确姿势(openpyxl合并单元格拆分并填充内容)
  2. Win11利用本地组策略编辑器解除网速限制
  3. unity角色控制器简介
  4. AngularJS介绍
  5. #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  6. 尚品宫韩式烧烤 无忧致富好项目
  7. windows cmd Redis 常用操作命令
  8. 杭州iPhone电池已排到周五!旧款iPhone换电池各地揪心指数大比拼
  9. 中国式家长游戏制作人php要学,“中国式家长”是什么意思?两个80后开发《中国式家长》游戏...
  10. 推荐系统技术演进趋势:从召回到排序再到重排