前言

基于B站ROS公开课:【古月居】古月·ROS入门21讲
基于Ubuntu 20.04.1、Noetic版本


提示:以下是本篇文章正文内容,下面案例可供参考

一、ros publisher C++

代码如下(示例):

#include <ros/ros.h>

#include <geometry_msgs/Twist.h>

int main(int argc, char **argv)

{

//ros setup

ros::init(argc, argv, "velocity_publisher");

//creat ros nodehandle name:ns

ros::NodeHandle ns;

//creat publisher turtle_vel_pub and viod a topic /turtle1/cmd_vel line 10

ros::Publisher turtle_vel_pub = ns.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 10);

//set loop rate 10hz

ros::Rate loop_rate(10);

int count = 0;

while (ros::ok())

{

//geometry_msg::Twist setup

geometry_msgs::Twist vel_msg;

vel_msg.linear.x = 0.5;

vel_msg.angular.z = 0.2;

//publish the msg

turtle_vel_pub.publish(vel_msg);

ROS_INFO("publish turtle velocity command[%0.2f m/s,%0.2 rad/s]",vel_msg.linear,vel_msg.angular);

//follow loop hz to deley

loop_rate.sleep();

}

return 0;

}

2.python

import rospy

from geometry_msgs.msg import Twist

def velocity_publisher():

#ros node setup

rospy.init_node('velocity_publisher', anonymous=True)

#creat publisher topic name /turtle1/cmd_vel msg type is geometry::Twist line 10

turtle1_vel_pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)

#set loop rate

rate = rospy.Rate(10)

while not rospy.is_shutdown():

#set up geometry_msgs::Twist type

vel_msg = Twist()

vel_msg.linear.x = 0.5

vel_msg.angular.z = 0.2

#pub msgs

turtle1_vel_pub.publish(vel_msg)

rospy.loginfo("publish turtle velocity command[%0.2f m/s,%0.2f rad/s]",vel_msg.linear.x, vel_msg.angular.z)

rate.sleep()

if __name__=='__main__':

try:

velocity_publisher()

except rospy.ROSInterruptException:

pass


ROS学习笔记publisher的编程实现c++详解相关推荐

  1. 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解

    目录 前言 一.小孔成像模型 二.坐标系的变换 1.世界坐标系到相机坐标系的变换(刚体变换)[xw^→xc^\boldsymbol {\hat{x_{w}}}\rightarrow \boldsymb ...

  2. SNMP学习笔记之SNMP 原理与实战详解

    原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...

  3. RT-Thread学习笔记|TCS34725 RGB 颜色识别传感器详解

    rt-thread是什么? RT-Thread 是一个集实时操作系统(RTOS)内核.中间件组件和开发者社区于一体的技术平台,组件完整丰富.高度可伸缩.简易开发.超低功耗.高安全性的物联网操作系统.R ...

  4. HTML学习笔记3:HTML基本骨架详解

    在HTML笔记1中,我简单介绍了HTML抽象的基本框架,其实,HTML的基本骨架部分还有更多内容需要了解,这一节,咱们就详细学习HTML的基本骨架. 打开sublime编辑器,输入html:xt 图1 ...

  5. 吴恩达深度学习笔记(114)-RNN梯度消失问题详解

    https://www.toutiao.com/a6652968074712449550/ 2019-02-10 14:34:53 循环神经网络的梯度消失(Vanishing gradients wi ...

  6. Django学习笔记之Django ORM Aggregation聚合详解

    在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序.Djngo聚合就能满足这些要求. 以下面的Mode ...

  7. [转]iOS5 ARC学习笔记:strong、weak等详解

    iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的. 在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都 ...

  8. 【STM32学习笔记】(1)—— STM32详解

    什么是STM32 STM32的字面含义: 1.ST-代表着意法半导体公司,即由什么公司生产. 意法半导体公司是一家SOC厂商,所谓SOC(System-on-a-Chip),根据它的中文意思可以知道& ...

  9. pytorch学习笔记(十二):详解 Module 类

    Module 是 pytorch 提供的一个基类,每次我们要 搭建 自己的神经网络的时候都要继承这个类,继承这个类会使得我们 搭建网络的过程变得异常简单. 本文主要关注 Module 类的内部是怎么样 ...

最新文章

  1. python绘制中国加油_软件开发|使用 Python 为你的油箱加油
  2. MSM USB插入流程代码分析
  3. wxWidgets:在带有 DC 的面板上绘图
  4. 一分钟安装IDA pro7.0
  5. event对应的各种坐标
  6. Linux中的软硬连接
  7. linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi
  8. JavaScript学习(二十六)—事件处理程序的添加与删除
  9. oracle报错12516,Oracle连接数太多报错-ORA-12516异常
  10. 关于跳转 + 传递消息,
  11. 计算机电路基础知识点总结,《计算机电路基础》课程教学方法的探索
  12. python中linspace函数_python np.linspace
  13. 牛客网刷题记录——数理统计(累积记录)
  14. idea的替换快捷键
  15. 栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
  16. 李南江HTML5教程学习心得
  17. python将字典按行或按列写入csv文件
  18. CVPR 2022 Oral | 人大高瓴AI学院提出:面向动态视音场景的问答学习机制
  19. jeDate—选择日期后,再点开重新选择时间,日期会被置为今日日期
  20. 从零搭建“人工智障”音箱

热门文章

  1. 百度网盘NDM高速下载
  2. 阿拉伯世界的历史现状与前景2019尔雅满分答案
  3. 会计报表分析相关指标收集
  4. Eeid—ligerUI学习(1)[首页布局]
  5. 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
  6. winds操作系统下登录本地MySQL和远程MySQL
  7. 照片怎样变漫画图片?建议收藏这些方法
  8. 【模电知识总结】二极管
  9. 【项目】Java学生宿舍管理系统,赠予即将毕业的兄弟!
  10. cad和php哪个工资高,CAD顶级绘图员必备,人手一份的绘图命令,学会工资上万不是梦...