teb教程6
代价地图的转换
简介:本部分关于怎样把代价地图转换插件应用到转换占据栅格costmap2d到几何形状来优化(测试阶段)
teb_local_planner包支持costmap_converter插件,这些插件将占据栅格costmap_2d转换为几何形状的障碍物。
默认情况下,占据栅格为点装的障碍物。如果地图分辨率很高,则就需要大量的计算,这可能会在计算拓扑结构中系统不稳定性(取决于障碍物的数量)。另一方面,障碍的转换也需要花费时间。然而,转换时间非常依赖于选择的算法,可以在分开的线程执行。就目前而言,代价地图的转换是实验阶段,就有效性和导航质量的最好配置而言在将来决定。
通过设置参数costmap_converter_plugin插件来激活,可以通过下面代码查看可用的插件:
rospack plugins --attrib=plugin costmap_converter
也可以指定参数costmap_converter_spin_thread以及costmap_converter_rate。
必须在启动代码之前加载插件。障碍物的可视化使用teb_markers。
1.例子参数文件
以下文件costmap_converter_params.yaml描述了怎样设置参数根据机器人导航配置里面;
TebLocalPlannerROS: ## Costmap converter plugin
costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSMCCH"
#costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSRANSAC"
#costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSMCCH"
#costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSConcaveHull"
#costmap_converter_plugin: "" # deactivate plugin
costmap_converter_spin_thread: True
costmap_converter_rate: ## Configure plugins (namespace move_base/TebLocalPlannerROS/PLUGINNAME)
## The parameters must be added for each plugin separately
costmap_converter/CostmapToLinesDBSRANSAC:
cluster_max_distance: 0.4
cluster_min_pts:
ransac_inlier_distance: 0.15
ransac_min_inliers:
ransac_no_iterations:
ransac_remainig_outliers:
ransac_convert_outlier_pts: True
ransac_filter_remaining_outlier_pts: False
convex_hull_min_pt_separation: 0.1
现在可以把参数加载到move base空间。将上面文件加载到导航launch文件里面
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<!-- Load all costmap_2d and planner parameters here -->
<param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
<!-- LOAD COSTMAP_CONVERTER PARAMETERS HERE -->
<rosparam file="$(find my_robot_name_2dnav)/costmap_converter_params.yaml" command="load" />
</node>
2.完整例子
You can find an example setup with the stage simulator in the teb_local_planner_tutorials package.
Install the teb_local_planner_tutorials package
Inspect the parameter/config files
Launch the diff_drive setup: roslaunch teb_local_planner_tutorials robot_diff_drive_in_stage_costmap_conversion.launch
Modify parameters using rosrun rqt_reconfigure rqt_reconfigure or by adapting the files.
Switch different costmap conversion algorithms in costmap_converter_params.yaml
teb教程6的更多相关文章
- teb教程1
http://wiki.ros.org/teb_local_planner/Tutorials/Setup%20and%20test%20Optimization 简介:本部分关于teb怎样优化轨迹以 ...
- teb教程8
融合动态障碍物 简介:考虑怎样把其他节点发布的动态障碍物考虑进来 1.本部分演示了动态障碍物该如何被包含到teb_local_planner中. 2.写一个简单的动态障碍物的发布器publish_dy ...
- teb教程3
配置和运行机器人导航 简介:配置teb_local_planner作为navigation中local planner的插件 参考teb安装 由于局部代价地图的大小和分辨率对优化性能影响很大,因为占据 ...
- teb教程10 teb questions
http://wiki.ros.org/teb_local_planner/Tutorials/Frequently%20Asked%20Questions
- teb教程9
通过costmap_converter来跟踪和包含动态障碍物 简介:利用costmap_converter来很容易跟踪动态障碍物 1.costmap_converter中提供了一个插件称之为costm ...
- teb教程7
融合自定义的障碍物 简介:本部分讲解怎样考虑其他节点发布的多边形的障碍物. 1.在一些应用当中,可能不想依赖于代价地图或者想添加其他的除了点状的障碍物.你可以发送你自己的障碍物列表到teb_local ...
- teb教程5
跟随全局规划器 简介:本部分是关于如何配置局部规划器严格跟随全局规划,也包括调节在时优和路径跟随上的权衡. 1.先看一下via-points当前的优化行为:启动下面节点 roslaunch teb_l ...
- teb教程4
障碍物避障以及机器人足迹模型 简介:障碍物避障的实现,以及必要参数的设置对于机器人足迹模型和其对应的影响 1.障碍物避障是怎样工作的 1.1 惩罚项 障碍物避障作为整个路径优化的一部分.显然,优化是找 ...
- teb教程2
http://wiki.ros.org/teb_local_planner/Tutorials/Inspect%20optimization%20feedback 检查优化反馈 简介:怎样检查优化的轨 ...
随机推荐
- 浏览器中的JavaScript事件循环机制
浏览器的事件循环机制是HTML中定义的规范. JavaScript有一个主线程和调用栈,所有的任务都会被放到调用栈等待主线程执行. JS调用栈 是一种先进后出的数据结构.当函数被调用时,会被添加到栈中 ...
- Js event对象offsetX,pageX,screenX,clientX详解
平时在测量元素位置时难以确定,下面给出具体的event对象中的各种属性,以便日后使用. 检测相对于浏览器的位置:clientX和clientY 当鼠标事件发生时,鼠标相对于浏览器左上 ...
- Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新
为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...
- 第五组postmortem报告
为期近半年的软工课程顺利收工了.这一个学期的网站制作中, 憧憬过.懊恼过.兴奋过,回顾整个制作过程,我们按老师的要求来一份验尸报告. 1. 每个成员在beta 阶段的实践和alpha 阶段有何改进? ...
- 关于C++中的非静态类成员函数指针
昨天发现了一个问题,就是使用对类中的非静态成员函数使用std::bind时,不能像普通函数一样直接传递函数名,而是必须显式地调用&(取地址),于是引申出我们今天的问题:非静态类成员函数指针和普 ...
- jackson 问题定位
问题背景: 云计算Pass平台版本升级,导致引用的jackson的包直接由1.*升级为2.* .在版本1.*中对于字段名与实际json不符的直接忽略了,而在2.*中则会报错.诸如此类,有较大差异,需要 ...
- Nginx的应用之虚拟主机
开始前请确保selinux关闭,否则当配置完虚拟主机后,尽管权限或者网站目录都正确,访问的结果也是403 nginx的虚拟主机有三种方式: 一.基于域名的虚拟主机 (1)创建对应的web站点目录以及程 ...
- Tomcat8.0源码编译
最近打算开始研究一下Tomcat的工作原理,拜读一下源码.所以先从编译源码开始了.尽管网上有那么多的资料,但是总是觉得,自己研究一遍,写一遍,在动手做一遍能够让我们更加深入的了解.现在整个社会都流行着 ...
- 第12篇Kubernetes 监控
一.Weave Scope: Weave Scope 容器地图 创建 Kubernetes 集群并部署容器化应用只是第一步.一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其 ...
- React 组件嵌套 父子关系
代码实例; <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" ...