ROS学习笔记publisher的编程实现c++详解
前言
基于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.世界坐标系到相机坐标系的变换(刚体变换)[xw^→xc^\boldsymbol {\hat{x_{w}}}\rightarrow \boldsymb ...
- SNMP学习笔记之SNMP 原理与实战详解
原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...
- RT-Thread学习笔记|TCS34725 RGB 颜色识别传感器详解
rt-thread是什么? RT-Thread 是一个集实时操作系统(RTOS)内核.中间件组件和开发者社区于一体的技术平台,组件完整丰富.高度可伸缩.简易开发.超低功耗.高安全性的物联网操作系统.R ...
- HTML学习笔记3:HTML基本骨架详解
在HTML笔记1中,我简单介绍了HTML抽象的基本框架,其实,HTML的基本骨架部分还有更多内容需要了解,这一节,咱们就详细学习HTML的基本骨架. 打开sublime编辑器,输入html:xt 图1 ...
- 吴恩达深度学习笔记(114)-RNN梯度消失问题详解
https://www.toutiao.com/a6652968074712449550/ 2019-02-10 14:34:53 循环神经网络的梯度消失(Vanishing gradients wi ...
- Django学习笔记之Django ORM Aggregation聚合详解
在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序.Djngo聚合就能满足这些要求. 以下面的Mode ...
- [转]iOS5 ARC学习笔记:strong、weak等详解
iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的. 在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都 ...
- 【STM32学习笔记】(1)—— STM32详解
什么是STM32 STM32的字面含义: 1.ST-代表着意法半导体公司,即由什么公司生产. 意法半导体公司是一家SOC厂商,所谓SOC(System-on-a-Chip),根据它的中文意思可以知道& ...
- pytorch学习笔记(十二):详解 Module 类
Module 是 pytorch 提供的一个基类,每次我们要 搭建 自己的神经网络的时候都要继承这个类,继承这个类会使得我们 搭建网络的过程变得异常简单. 本文主要关注 Module 类的内部是怎么样 ...
最新文章
- python绘制中国加油_软件开发|使用 Python 为你的油箱加油
- MSM USB插入流程代码分析
- wxWidgets:在带有 DC 的面板上绘图
- 一分钟安装IDA pro7.0
- event对应的各种坐标
- Linux中的软硬连接
- linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi
- JavaScript学习(二十六)—事件处理程序的添加与删除
- oracle报错12516,Oracle连接数太多报错-ORA-12516异常
- 关于跳转 + 传递消息,
- 计算机电路基础知识点总结,《计算机电路基础》课程教学方法的探索
- python中linspace函数_python np.linspace
- 牛客网刷题记录——数理统计(累积记录)
- idea的替换快捷键
- 栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
- 李南江HTML5教程学习心得
- python将字典按行或按列写入csv文件
- CVPR 2022 Oral | 人大高瓴AI学院提出:面向动态视音场景的问答学习机制
- jeDate—选择日期后,再点开重新选择时间,日期会被置为今日日期
- 从零搭建“人工智障”音箱