ROS Rviz 显示轨迹 Python

  • 1. 缘由
  • 2. Python实现
  • 3. 效果

1. 缘由

3月一直在调试设备,还要持续一段时间,没空余时间
工作上也遇到很多非技术问题
同事的帮忙,最近状态才调整过来,看淡了

最近也有人来私信来问 ROS Rviz 怎么显示轨迹
在网上的资料基本都是C++版本的
“你行,我也行”,这里就补一下Python版本


2. Python实现

#!/usr/bin/env python3import rospy
from nav_msgs.msg import Path
from geometry_msgs.msg import PoseStamped, Quaternion
import tf
import math# 起始运动状态
x, y, th = 0, 0, 0def DataUpdating(path_pub, path_record):"""数据更新函数"""global x, y, th# 时间戳current_time = rospy.Time.now()# 发布tfbr = tf.TransformBroadcaster()br.sendTransform((0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 1.0),rospy.Time.now(), "odom", "map")# 配置运动dt = 1 / 50vx = 0.25vy = 0.25vth = 0.2delta_x = (vx * math.cos(th) - vy * math.sin(th)) * dtdelta_y = (vx * math.sin(th) + vy * math.cos(th)) * dtdelta_th = vth * dtx += delta_xy += delta_yth += delta_th# 四元素转换quat = tf.transformations.quaternion_from_euler(0, 0, th)# 配置姿态pose = PoseStamped()pose.header.stamp = current_timepose.header.frame_id = 'odom'pose.pose.position.x = xpose.pose.position.y = ypose.pose.orientation.x = quat[0]pose.pose.orientation.y = quat[1]pose.pose.orientation.z = quat[2]pose.pose.orientation.w = quat[3]# 配置路径path_record.header.stamp = current_timepath_record.header.frame_id = 'odom'path_record.poses.append(pose)# 路径数量限制if len(path_record.poses) > 1000:path_record.poses.pop(0)# 发布路径path_pub.publish(path_record)def node():"""节点启动函数"""try:# 初始化节点pathrospy.init_node('PathRecord')# 定义发布器 path_pub 发布 trajectorypath_pub = rospy.Publisher('trajectory', Path, queue_size=50)# 初始化循环频率rate = rospy.Rate(50)# 定义路径记录path_record = Path()# 在程序没退出的情况下while not rospy.is_shutdown():# 数据更新函数DataUpdating(path_pub, path_record)# 休眠rate.sleep()except rospy.ROSInterruptException:passif __name__ == '__main__':node()

3. 效果

怎么启动上述文件就不再描述了
直接上图看效果


谢谢

ROS Rviz 显示轨迹 Python相关推荐

  1. ROS Rviz 显示地图 Python

    ROS Rviz 显示地图 Python 1. 缘由 2. Python实现 3. 效果 1. 缘由 地图在自主移动机器人这个行业里是非常重要的 第一步需要可视化地图来感官了解一下 在网上的资料基本都 ...

  2. ROS Rviz 显示超声波测量范围 Python

    ROS Rviz 显示超声波测量范围 Python 1. 缘由 2. Python实现 3. 效果 最近几个月都在忙调试和工程的事情 太忙了,两个月都没发布文章了 过阵子应该就可以重新开始软件开发工作 ...

  3. ROS入门:GPS坐标转换Rviz显示轨迹

       GPS信息是无法直接绘制轨迹的,因为其x,y为经纬度,z为高度,单位不一样,本程序实现了以下功能:    1.将GPS轨迹,从经纬度WGS-84坐标转换到真实世界xyz坐标系下(思路:计算出每个 ...

  4. 小场景下基于ROS的GPS经纬高度值转换为平面XYZ坐标值,并用RVIZ显示轨迹

    一.实现原理 在小范围场景下,可以假设GPS经纬度值都在一个平面上,地理正东方向为经度正方向,正北方向为纬度正方向,正上方向为高度正方向,至此经纬高度坐标系已经建立.而我们要做的是将其转换到一个以米为 ...

  5. ros rviz显示rosbag中的图像和imu数据

    一.rosbag相关的指令 1. rostopic list //列举出系统中正在发布的ros 话题 2. rosbag record -a //录制系统中所有正在发布的ros 话题 3. rosba ...

  6. ROS+Turtlebot3+RVIZ 显示机器人历史轨迹方法

    (六)ROS发布里程计(Odometry)消息并在rviz中显示_火星机器人life的博客-CSDN博客_ros 发布odom 一.如果只是RVIZ查看移动机器人的历史轨迹方法 1. 打开gazebo ...

  7. Rviz显示理想的运动的轨迹,并对比实时的运动轨迹

    20210505更新 前天的bug,修改了marker点的尺寸和颜色后在rviz中不显示的问题解决了,代码什么的完全没有改,只是用了sudo apt-get upgrade,把ros的一些包和库都升级 ...

  8. ROS中rviz显示运动轨迹的常见方法

    文章目录 1.利用nav_msgs/Path消息实现轨迹显示 2.利用visualization_msgs/Marker消息类型显示轨迹 1.利用nav_msgs/Path消息实现轨迹显示 主函数sh ...

  9. ros中启动rviz显示段错误,核心以转储问题

    ros中启动rviz显示段错误,核心以转储问题 运行命令 $ rosrun rviz rviz -d rospack find turtle_tf/rviz/turtle_rviz.rviz 显示 解 ...

最新文章

  1. 深度 | 香港中文大学(深圳)张大鹏教授:生物特征识别的新进展 | CCF-GAIR 2019
  2. zabbix数据库表结构简单解析
  3. C语言函数调用一般分,C语言调用声明函数
  4. 《数据结构与抽象:Java语言描述(原书第4版)》一练习
  5. linux messages 时间错乱_BATJ 常考的 21 条 Linux 命令,速度收藏!
  6. mysql进程异常_关于MySQL-Proxy子进程异常退出BUG修复
  7. js面向对象的程序设计 --- 上篇(理解对象)
  8. 后台管理系统PRD该怎么写?
  9. 6. NMF方法及实例
  10. 09-新闻发布系统数据库-管理角色数据操作
  11. Facebook改名,元宇宙非区块链不可
  12. 【期末复习】网络安全技术(双语)
  13. 云计算:程序员重回个人英雄时代
  14. 架构师米洛:你不经意的职场坏姿势会损坏你的身体
  15. 牛客刷题<19>使用3-8译码器实现逻辑函数
  16. 字符串Hash函数对比
  17. mysql 查看并发数,mysql最大并发连接数的查看与修改()
  18. adobe fonts字体下载
  19. A股-入门-弱市中如何把握超跌股的机会
  20. 2022考研王道计算机408pdf(王道计算机组成原理+王道操作系统+王道计算机网络+王道数据结构)

热门文章

  1. 删除 setup.py 安装的 Python 软件包
  2. Struts知识问答
  3. 学习笔记(1):uni-app实战社区交友类app开发-引入自定义图标库
  4. Mybatis源码笔记之浅析ParameterHandler
  5. github代码的提交与下载
  6. 《大道至简》阅读笔记
  7. Android录音并输出为Mp4文件
  8. 高可用性HA及Cluster集群
  9. 【推荐】2017年你应该了解的11款新型编程工具
  10. “智慧城市”建设以前是传说,现在能体验