自主清洁机器人。全覆盖路径规划和探索。
全覆盖路径规划 自主探索建图
sudo apt install ros-${ROS_DISTRO}-turtlebot3 ros-${ROS_DISTRO}-navigation ros-${ROS_DISTRO}-dwa-local-planner ros-${ROS_DISTRO}-slam-karto
Ubuntu 18.04+melodic 上测试通过。
Ubuntu 20.04+Noetic 上测试通过.
Ubuntu 16.04请参看master分支
mkdir -p clean_robot_ws/src && cd clean_robot_ws/src
git clone https://github.com/mywisdomfly/Clean-robot-turtlebot3.git
cd ..
catkin_make
清扫启动方法
cd clean_robot_ws #确保目录切换到clean_robot_ws 目录下,并执行过编译
source devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch clean_robot clean_work.launch
# 如果想要加载自己的地图,用下面这个。 map_file:="你的地图的绝对路径,加载yaml文件。"
roslaunch clean_robot clean_work.launch map_file:="/home/xxx/clean_robot_ws/homemap.yaml"
explore中为自动探索的包,这里用的karto slam,可以搭配其他的slam算法
自主探索建图示例启动方法
cd clean_robot_ws #确保目录切换到clean_robot_ws 目录下,并执行过编译
source devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch clean_robot auto_slam.launch
保存地图, 打开一个新的终端,原来运行的不要关闭。
rosrun map_server map_saver -f ~/clean_robot_ws/homemap #-f 后的参数表示存放路径以及名称
cd clean_robot_ws #确保目录切换到clean_robot_ws 目录下,并执行过编译
source devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch clean_robot nav_slam.launch
保存地图, 打开一个新的终端,原来运行的不要关闭。
rosrun map_server map_saver -f ~/clean_robot_ws/homemap #-f 后的参数表示存放路径以及名称
clean_robot包中
CleaningPathPlanner.cpp/h为路径规划核心程序,next_goal.cpp为发布下一个目标点的源程序,PathPlanningNode.cpp为对路径规划的封装。
整个包会形成两个节点path_planning_node与next_goal分表示全覆盖路径规划器与目标点发送程序。
Launch文件中
clean_work.launch表示启动清洁工作,auto_slam.launch 表示全自主探索建图(全自动不需要人干预)nav_slam.launch表示导航建图(也可以使用键盘控制建图),
gazebo.launch表示启动仿真环境,move_base.launch表示机器人的导航栈配置,amcl.launch表示粒子滤波定位系统,turtlebot3_navigation.launch,表示机器人导航系统Config 为路径规划所使用参数的yaml文件,param为move_base所采用的参数文件,maps表示地图文件,worlds为仿真环境。
将原有的栅格地图无障碍物区域按照机器人大小进行分割,分割后直接对所有分割区域进行遍历即可。(按照一定规则直接进行遍历,不能保证路径最优,可以实现相对较优,完成基本功能)。
考虑到真正的清洁机器人不可能让用户操作建图,因此尝试使用自主探索建图。采用开源的explore_lite包实现自主探索建图,其思路为找到可以达到的地图中的位置区域的边界中点作为导航的目标点。该方法在封闭环境中十分迅速!
暂无开放 Issues,或尚未同步最近议题。