【Turtlebot移动机器人实验记录】实验4. Turtlebot 机器人自主导航实验


前言

实验指导书指定参考资料

[1] costmap 参考资料
[2] move_base 参考资料
A*算法参考资料:
[3] 算法原理
[4] 代码实现
ROS 接口编写自定义全局规划算法参考资料:
[5] 中文网址
[6] 英文网址
利用 action 机制实现机器人多点巡检式导航参考资料:
[7] actionlib 官方教程
[8] .actionlib 简介
[9] 多点导航实例

2020.12.31

1. costmap

参考博客:ROS基础教程–CostMap_2D包的一些理解

2021.1.1

参考博客:在ROS中实现A*路径规划
该博客提供的代码:Astar_Path_Planner

1. 实验报告中步骤命令(PDF复制麻烦,仅用作复制方便)

1 启动Turtlebot

roslaunch turtlebot_bringup minimal.launch

2 启动键盘控制程序

roslaunch turtlebot_teleop keyboard_teleop.launch

3 使用gmapping构建地图

roslaunch turtlebot_navigation gmapping_demo.launch

4 打开 rviz 界面

roslaunch turtlebot_rviz_launchers view_navigation.launch

5 保存地图

rosrun map_server map_saver -f /filepath

14 运行仿真程序

roslaunch turtlebot_stage turtlebot_in_stage.launch

15 启动键盘控制程序

roslaunch turtlebot_teleop keyboard_teleop.launch

2. 代码编写

2.1 AstarPlanner::initialize

if (cost == 0)
  OGM[iy * width + ix] = true;
else
  OGM[iy * width + ix] = false;

代码参考网址:https://zhuanlan.zhihu.com/p/113662488

2.2 AstarPlanner::makePlan

Path = AstarPlanner(startCell, goalCell);

代码参考网址:https://github.com/EESC-LabRoM/tcc_scanavini_lucas/blob/master/Astar_ros.cpp

3. 膨胀层半径大小

机器人在拐角处总是撞上障碍物,可以通过对障碍物进行膨胀来解决。

参考博客:一些关于ROS中move_base的理解,心得。
该篇博客中提到“local_costmap_params.yaml”文件中可设置膨胀层半径。

在local_costmap_params.yaml文件中写下了膨胀层半径,但这好像只是设置了inflation_radius的值,代码中还是需要在编写A*算法时考虑膨胀层半径。


根据这篇博客:https://www.corvin.cn/829.html在下面两个文件中修改了膨胀半径
在这里插入图片描述

4.

参考博客:ros机器人路径远离障碍物的方法

猜你喜欢

转载自blog.csdn.net/qq_44324181/article/details/112055662