(六)turtlebot3中slam代码位置和理论参考书籍论文

28 篇文章 44 订阅

1.建图

1.1代码

建图启动按照如下命令
roslaunch turtlebot3_slam turtlebot3_slam.launch

启动的为turtlebot3_gmapping.launch文件
发现
启动的是gmapping建图
gmapping源码为
slam_gmapping
https://github.com/ros-perception/slam_gmapping
openslam_gmapping包
https://github.com/ros-perception/openslam_gmapping

其中openslam_gmapping包才是真正的算法源码包,slam_gmapping调用openslam_gmapping中的类

1.2参考书籍及论文

gmapping论文名为Improved_Techniques_for_Grid_Mapping_With_Rao-Blac
书籍参考Probabilistic Robot的P107页 ,里程计运动模型
扫描匹配
通过匹配选取最优的粒子,如果匹配失败,则返回一个默认的似然估计
原理就参考 《Probabilistic Robot》 一书的P143 页

2.导航

2.1代码

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

发现启动的为amcl.launch和move_base.launch
amcl.launch中启动 的为amcl节点,move_base.launch启动move_base节点

导航的源码为
https://github.com/ros-planning/navigation
move_base导航采用的是局部避障的动态窗口法
在dwa_local_planner文件夹下有源码

2.2参考资料

路径规划包括全局路径规划和局部路径规划
(1)全局路径规划
turtlebot3全局路径规划采用astar或者Dijkstra算法。
首先计算潜在的路径

  bool found_legal = planner_->calculatePotentials(costmap_->getCharMap(), start_x, start_y, goal_x, goal_y,
                                                    nx * ny * 2, potential_array_);

然后根据GradientPath类中的getPath(梯度法?)或者GridPath类中的getPath从潜在的地图中提取路径。

getPlanFromPotential(start_x, start_y, goal_x, goal_y, goal, plan)
path_maker_->getPath(potential_array_, start_x, start_y, goal_x, goal_y, path)

(2)局部路径规划

turtlebot3局部路径规划采用动态窗口法dwa进行路径规划
其中a* 算法学习参考
https://www.redblobgames.com/pathfinding/a-star/introduction.html
https://blog.csdn.net/denghecsdn/article/details/78778769
其中Dijkstra算法参考
https://blog.csdn.net/qq_35644234/article/details/60870719
及算法导论书中相关章节

导航采用的是局部避障的动态窗口法(dynamic window approach),论文名字为
dynamic window based approach tomobile robot motion control in the presence of moving obstacles

3.控制

3.1代码

3.2参考书籍

参考文献
https://blog.csdn.net/roadseek_zw/article/details/53316177

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值