http://wiki.ros.org/teb_local_planner/Tutorials/Setup%20and%20test%20Optimization

简介:本部分关于teb怎样优化轨迹以及怎样自定义配置参数

首先是安装,

sudo apt-get install ros-kinetic-teb-local-planner

也可以从源码安装

然后安装教程

git clone https://github.com/rst-tu-dortmund/teb_local_planner_tutorials.git

教程中包含了一个简单的测试节点test_optim_node,该节点优化了一个固定起始目标点位姿。首先使用Timed-Elastic-Band来配置起始点之间的单个路径规划,然后激活参数/test_optim_node/enable_homotopy_class_planning来在起始目标点之间规划多个拓扑路径。

1.单路径的优化

通过参数服务器来失能参数

rosparam set /test_optim_node/enable_homotopy_class_planning False

然后通过launch启动该节点

roslaunch teb_local_planner test_optim_node.launch

可以从上图看出Timed-Elastic-Band不能跨越障碍物。后面通过多拓扑结构可以解决。

如果想要自定义优化效果,通常修改如下参数,其他参数尽量不要更改,以免出现意想不到的结果。

减少参数no_inner_iterations,no_outer_iterations 以及obstacle_poses_affected ;增加参数值dt_ref

2.在多拓扑结构中多轨迹的优化

使能该参数并启动节点

rosparam set /test_optim_node/enable_homotopy_class_planning True
roslaunch teb_local_planner test_optim_node.launch

结果如下

红色轨迹和最优的一条轨迹。

teb教程1的更多相关文章

  1. teb教程8

    融合动态障碍物 简介:考虑怎样把其他节点发布的动态障碍物考虑进来 1.本部分演示了动态障碍物该如何被包含到teb_local_planner中. 2.写一个简单的动态障碍物的发布器publish_dy ...

  2. teb教程3

    配置和运行机器人导航 简介:配置teb_local_planner作为navigation中local planner的插件 参考teb安装 由于局部代价地图的大小和分辨率对优化性能影响很大,因为占据 ...

  3. teb教程10 teb questions

    http://wiki.ros.org/teb_local_planner/Tutorials/Frequently%20Asked%20Questions

  4. teb教程9

    通过costmap_converter来跟踪和包含动态障碍物 简介:利用costmap_converter来很容易跟踪动态障碍物 1.costmap_converter中提供了一个插件称之为costm ...

  5. teb教程7

    融合自定义的障碍物 简介:本部分讲解怎样考虑其他节点发布的多边形的障碍物. 1.在一些应用当中,可能不想依赖于代价地图或者想添加其他的除了点状的障碍物.你可以发送你自己的障碍物列表到teb_local ...

  6. teb教程6

    代价地图的转换 简介:本部分关于怎样把代价地图转换插件应用到转换占据栅格costmap2d到几何形状来优化(测试阶段) teb_local_planner包支持costmap_converter插件, ...

  7. teb教程5

    跟随全局规划器 简介:本部分是关于如何配置局部规划器严格跟随全局规划,也包括调节在时优和路径跟随上的权衡. 1.先看一下via-points当前的优化行为:启动下面节点 roslaunch teb_l ...

  8. teb教程4

    障碍物避障以及机器人足迹模型 简介:障碍物避障的实现,以及必要参数的设置对于机器人足迹模型和其对应的影响 1.障碍物避障是怎样工作的 1.1 惩罚项 障碍物避障作为整个路径优化的一部分.显然,优化是找 ...

  9. teb教程2

    http://wiki.ros.org/teb_local_planner/Tutorials/Inspect%20optimization%20feedback 检查优化反馈 简介:怎样检查优化的轨 ...

随机推荐

  1. go语言从例子开始之Example8.数组

    在 Go 中,数组 是一个固定长度的数列. package main import "fmt" func main() { 这里我们创建了一个数组 a 来存放刚好 5 个 int. ...

  2. sigmoid 和 soft-max总结

    1)sigmoid函数(也叫逻辑斯谛函数):  引用wiki百科的定义: A logistic function or logistic curve is a common “S” shape (si ...

  3. 笔记72 高级SSM整合

    遇到的问题: 1.进行spring mvc测试的时候报错 测试代码: package com.li.test; import com.github.pagehelper.PageInfo; impor ...

  4. mysql安装与修改密码

    数据库基本概念:数据的仓库 数据库服务器-->数据库-->表-->记录-->属性(列,字段) unix下数据库服务安装: apt-get install -y mysql-se ...

  5. node 添加个人经历的接口

    1.定义experience const profileFields = {}; profileFields.experience=[]; 2.查找用户id const profile = await ...

  6. eclipse设置tomcat部署目录地址

    参考: https://blog.csdn.net/lvyuan1234/article/details/53418818 右键,open 操作前提是所有项目移除,并且右键clean掉相关数据! 修改 ...

  7. 【leetcode】421. Maximum XOR of Two Numbers in an Array

    题目如下: 解题思路:本题的难点在于O(n)的复杂度.为了减少比较的次数,我们可以采用字典树保存输入数组中所有元素的二进制的字符串.接下来就是找出每个元素的异或的最大值,把需要找最大值的元素转成二进制 ...

  8. zk不同页面之间的即时刷新

    公共刷新方法 import org.zkoss.bind.annotation.GlobalCommand; import org.zkoss.bind.annotation.NotifyChange ...

  9. 常用js校验

    身份证 function isCardNo(idCard){ //15位和18位身份证号码的正则表达式 var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0 ...

  10. BZOJ 2839: 集合计数(二项式反演)

    传送门 解题思路 设\(f(k)\)为交集元素个数为\(k\)的方案数.发现我们并不能直接求出\(f(k)\),就考虑容斥之类的东西,容斥首先要扩大限制,再设\(g(k)\)表示至少有\(k\)个交集 ...