teb教程2

http://wiki.ros.org/teb_local_planner/Tutorials/Inspect%20optimization%20feedback

检查优化反馈

简介:怎样检查优化的轨迹反馈,例如可视化选择的优化轨迹的速度分布

对于进一步参数调试或者评价目的,更感兴趣的是更够访问内部优化状态比如包括实时的状态。因此teb_local_planner提供了一个信息teb_local_planner/FeedbackMsg,其包含了内部所有的状态以及一些推断的变量(如速度分布)。对于加速度分布当前是空的。该消息也包含了在拓扑结构中所有可替代的轨迹。当前可选择的轨迹索引被存储在变量selected_trajectory_idx中。

反馈的topic可以被任何节点订阅,可用于数据输出到文件,或者自定义的可视化。

默认情况下,反馈消息被关闭了,以便减少计算资源。可以通过参数服务器变量publish_feedback设置为真,或者通过rqt_reconfigure来使能。

以下代码用于订阅test_optim_node节点发布的速度相关信息,并通过plots可视化出来,plots依赖*pypose*。

   1 #!/usr/bin/env python
   2
   3 import rospy, math
   4 from teb_local_planner.msg import FeedbackMsg, TrajectoryMsg, TrajectoryPointMsg
   5 from geometry_msgs.msg import PolygonStamped, Point32
   6 import numpy as np
   7 import matplotlib.pyplot as plotter
   8
   9 def feedback_callback(data):
  10   global trajectory
  11
  12   if not data.trajectories: # empty
  13     trajectory = []
  14     return
  15   trajectory = data.trajectories[data.selected_trajectory_idx].trajectory
  16
  17
  18 def plot_velocity_profile(fig, ax_v, ax_omega, t, v, omega):
  19   ax_v.cla()
  20   ax_v.grid()
  21   ax_v.set_ylabel(‘Trans. velocity [m/s]‘)
  22   ax_v.plot(t, v, ‘-bx‘)
  23   ax_omega.cla()
  24   ax_omega.grid()
  25   ax_omega.set_ylabel(‘Rot. velocity [rad/s]‘)
  26   ax_omega.set_xlabel(‘Time [s]‘)
  27   ax_omega.plot(t, omega, ‘-bx‘)
  28   fig.canvas.draw()
  29
  30
  31
  32 def velocity_plotter():
  33   global trajectory
  34   rospy.init_node("visualize_velocity_profile", anonymous=True)
  35
  36   topic_name = "/test_optim_node/teb_feedback" # define feedback topic here!
  37   rospy.Subscriber(topic_name, FeedbackMsg, feedback_callback, queue_size = 1)
  38
  39   rospy.loginfo("Visualizing velocity profile published on ‘%s‘.",topic_name)
  40   rospy.loginfo("Make sure to enable rosparam ‘publish_feedback‘ in the teb_local_planner.")
  41
  42   # two subplots sharing the same t axis
  43   fig, (ax_v, ax_omega) = plotter.subplots(2, sharex=True)
  44   plotter.ion()
  45   plotter.show()
  46
  47
  48   r = rospy.Rate(2) # define rate here
  49   while not rospy.is_shutdown():
  50
  51     t = []
  52     v = []
  53     omega = []
  54
  55     for point in trajectory:
  56       t.append(point.time_from_start.to_sec())
  57       v.append(point.velocity.linear.x)
  58       omega.append(point.velocity.angular.z)
  59
  60     plot_velocity_profile(fig, ax_v, ax_omega, np.asarray(t), np.asarray(v), np.asarray(omega))
  61
  62     r.sleep()
  63
  64 if __name__ == ‘__main__‘:
  65   try:
  66     trajectory = []
  67     velocity_plotter()
  68   except rospy.ROSInterruptException:
  69     pass

该代码可在teb_local_planner_tutorials的visualize_velocity_profile.py中找到,

运行过程

rosparam set /test_optim_node/publish_feedback true # or use rqt_reconfigure later
roslaunch teb_local_planner test_optim_node.launch
rosrun teb_local_planner_tutorials visualize_velocity_profile.py # or call your own script here

以及结果如下

原文地址:https://www.cnblogs.com/gary-guo/p/10893224.html

时间: 2024-11-13 10:00:00

teb教程2的相关文章

teb教程3

配置和运行机器人导航 简介:配置teb_local_planner作为navigation中local planner的插件 参考teb安装 由于局部代价地图的大小和分辨率对优化性能影响很大,因为占据代价地图网格被看做单个点障碍物:那么对于巨大的障碍物数量,在多拓扑结构中并行规划可能会失败.为了避免这样,可以增加分辨率或者减小地图直到问题被修复或者通过其他方法如,尝试轻微减小参数h_signature_prescaler的值. 已知的一些问题 如果机器人在很小的窄道里面尝试旋转,可能会发生的是规

teb教程5

跟随全局规划器 简介:本部分是关于如何配置局部规划器严格跟随全局规划,也包括调节在时优和路径跟随上的权衡. 1.先看一下via-points当前的优化行为:启动下面节点 roslaunch teb_local_planner test_optim_node.launch rosrun rqt_reconfigure rqt_reconfigure 为了方便调试参数(默认via-points并为开启) 现在设置global_plan_viapoint-sep为一个正值.正值就激活了via-poin

Windows Git+TortoiseGit简易使用教程

转载自 http://blog.csdn.net/jarelzhou/article/details/8256139 官方教程:http://tortoisegit.org/docs/tortoisegit/(英文版) 为什么选择Git 效率 很多人有一种习惯吧,什么软件都要最新的,最好的.其实吧,软件就是工具,生产力工具,为的是提高我们的生产力.如果现有的工具已经可以满足生产力要求了,就没有必要换了.生产效率高低应当是选择工具的第一位. 历史 开源世界的版本控制系统,经历了这么几代: 第一代,

微信公众号中添加外部链接地址的图文教程

2017-9-18,长沙,有点闷,有点热. 本教程教大家如何在微信公众号中,添加外部的链接,网络有很多教程,但由于表述不太清楚,出个教程吧.最终实现在微信后台管理平台"原文链接"处插入外部链接,用户点击发布好的图文文章底部左下角的"阅读原文",就可以跳转到您添加的外部链接页面中去. 第1步. 使用微信公众管理帐号登陆微信管理后台 > 素材管理 > 图文消息 >  新建图文消息或者编辑文章都可以,如下图所示: 第2步. 之后,将页面向下拉,看到底部&

win2003从组策略关闭端口(445/135/137/138/139/3389等)教程

一些恶劣的病毒会从某些端口入侵计算机,因此关闭某些用不到的而又具有高风险的端口就显得很有必要,是服务器管理员要做的基本的安全防范.本文将介绍win2003系统在组策略关闭某一个端口的教程,文章以关闭445端口为例. 首先要说明的是,此方法不仅仅适用于win2003,也适用于win7,且操作方法完全相同,所以win7用户也可以按照本文教程操作. 1.打开组策略编辑器 按组合键WIN+R打开运行窗口,然后输入gpedit.msc,按回车键,即可进入组策略编辑器. 2.创建 IP 安全策略 展开选项"

微信小程序实例教程(一)

序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志. 1. 获取微信小程序的 AppID 首先,我们需要拥有一个帐号,如果你能看到该文档,我们应当已经邀请并为你创建好一个帐号.注意不可直接使用服务号或订阅号的 AppID. 利用提供的帐号,登录https

SQL Server2005安装材料及教程编制

首发:https://www.douban.com/note/579628972/ 系统为 win10SQL Server 安装材料下载 链接:http://p删除an.baidu.com/s/1中文miQ1ZQg 密码:pszf挂不补,可到bdsola.com搜索下载 1.安装教程(幸运E版):http://jingyan.baidu.com/article/acf728fd1a30d0f8e510a380.html 注意:当你的电脑是多核的时候可能会出现安装错误   2.此时推荐教程:htt

mac数据恢复软件EasyRecovery使用教程

mac数据恢复软件EasyRecovery使用教程 文件丢失是非常让人郁闷的!因为没有备份所以很多重要的东西都没有办法找回!小编为大家准备了EasyRecovery,这款数据恢复软件费非常好用,可以将您丢失的数据找回.小编还特意为大家准备了数据恢复软件EasyRecovery使用教程,下面就和小编一起来看看具体如何使用吧! <ignore_js_op> 数据恢复软件EasyRecovery使用教程介绍:第一步:我们需要在Mac中安装好EasyRecovery for Mac,然后启动EasyR

mac苹果电脑上Mathtype软件的安装教程

对于数学学习来将,Mathtype是一款非常不错的工具,在这里您可以方便快捷的计算出公式的结果,只需要将方程式填写进去就能出来结果.小编为大家准备了Mathtype安装教程,安装的过程是非常简单的,安装好了之后会让您的工作变得更加轻松,还能提升工作的效率哦! Mathtype安装教程介绍:第一步:打开下载的Mathtype文件 第二步:点击左边的安装文件,会得到提示,下图所示: 第三步:选择好,然后会在弹出提示窗口,点击继续,如下图所示: 第四步:因为暂时只有英文版的,所以选择英文版,点击继续安