首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实际TurtleBot中测试基于里程法的slam算法生成的质量较差的地图

在实际TurtleBot中测试基于里程法的slam算法生成的质量较差的地图
EN

Stack Overflow用户
提问于 2019-01-25 11:54:05
回答 1查看 1.3K关注 0票数 4

我目前正在一个真正的TurtleBot(ROS Kinetic)中测试几个slam算法。尽管在TurtleBot上一切看起来都很好,但我在地图上遇到了一个问题,这个问题来自基于里程法的slam算法。虽然我更改了TurtleBot基础,以确定该基座是否有硬件或计量学问题,但地图保持不变。我使用的激光雷达的最大射程可达17米。

with (使用计量学)--我用以下参数测试了with:

代码语言:javascript
复制
<launch>
<arg name="scan_topic"  default="scan" />
<arg name="base_frame"  default="base_footprint"/>
<arg name="odom_frame"  default="odom"/>
<node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
<param name="base_frame" value="$(arg base_frame)"/>
<param name="odom_frame" value="$(arg odom_frame)"/>
<param name="map_update_interval" value="5.0"/>
<param name="maxUrange" value="12.0"/>
<param name="maxRange" value="17.0"/>
<param name="sigma" value="0.05"/>
<param name="kernelSize" value="1"/>
<param name="lstep" value="0.05"/>
<param name="astep" value="0.05"/>
<param name="iterations" value="5"/>
<param name="lsigma" value="0.075"/>
<param name="ogain" value="3.0"/>
<param name="lskip" value="0"/>
<param name="minimumScore" value="500"/>
<param name="srr" value="0.01"/>
<param name="srt" value="0.02"/>
<param name="str" value="0.01"/>
<param name="stt" value="0.02"/>
<param name="linearUpdate" value="0.5"/>
<param name="angularUpdate" value="0.436"/>
<param name="temporalUpdate" value="-1.0"/>
<param name="resampleThreshold" value="0.5"/>
<param name="particles" value="200"/>
<param name="xmin" value="-1.0"/>
<param name="ymin" value="-1.0"/>
<param name="xmax" value="1.0"/>
<param name="ymax" value="1.0"/>
<param name="delta" value="0.05"/>
<param name="llsamplerange" value="0.01"/>
<param name="llsamplestep" value="0.01"/>
<param name="lasamplerange" value="0.005"/>
<param name="lasamplestep" value="0.005"/>
<remap from="scan" to="$(arg scan_topic)"/>
</node>
</launch>

在整个实验室中测试的here的地图如下:

KartoSlam(using计量学) KartoSlam在实验室的房间里测试出的默认参数的地图是这样的。

CRSM Slam (不使用测定仪)由CRSM Slam制作的地图在实验室的房间里测试过,不使用测定仪。如您所见,CRSM映射要比前两张要好得多。

问题如下:

既然我已经在两个不同的TurtleBots上尝试过算法,那么我应该在哪里寻找修复呢?我怎样才能提高地图的质量,因为到目前为止,我得到的是真的很差?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 02:39:09

我发现一个测试基本节理的好方法是:

  1. 启动turtlebots时,只需最小限度的无slam或任何其他slam。
  2. 启动rviz并确保将固定帧设置为世界框架,如odom或map (验证TF树中的名称)。
  3. 再加上激光,设定约100秒的衰减时间。
  4. 保持机器人在墙前,并命令它向墙移动。当机器人向前移动时,你的世界帧中的激光数据中的“墙的位置”应该看上去或多或少是文具。这给了你一个保证,你的前向测定仪是好的。
  5. 然后把机器人放置在一个角落或某个地方,其中有大的三维物体在激光的视野。然后命令机器人旋转。再一次,所有的角和三维物体应该保持静止。

如果您能够成功地完成上述操作,那么在使用SLAM算法之前,您应该能够做出合理的“原始”映射。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54364850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档