mick 是一个开源的自主导航小车项目,使用四轮差速小车模型和16线的3D激光雷达作为传感器,导航框架是基于move_base进行修改的。目前支持麦克纳姆轮和四轮差速底盘,该开源项目从搭建机械部分开始,分享底层的嵌入式控制,上层的建图和导航部分,最终实现A点到B的自主导航。 当前地址的代码为麦克纳姆轮和四轮差速ROS底盘的ROS导航节点包,与 mick_robot_chasiss 代码(底层控制代码)配合使用,更多的信息可以参考博客-熊猫飞天
该开源项目项应的中文教程:
开源自主导航小车MickX4(六)cartography 2D 建图
开源自主导航小车MickX4(七)cartography 3D 建图
开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图
开源自主导航小车MickX4(九)基于move_base 的自主导航框架
该开源框架支持两种类型的底盘,4轮差速底盘和麦克纳姆轮底盘,如下图所示,底盘上运行的STM32程序可以在这个地址下载。
1.在底盘节点中增加使用外部的IMU来矫正里程计的偏航角
2.cartographer建图配置参数
3.增加了LeGO-LOAM节点(从官方节点fork)
1.修改了ROS serial库参数,使得串口读取数据帧更加稳定
2.增加节点启动时候清零里程计的指令
3.修复了里程计掉头以后由于方向原因使得位置估算错误的BUG
4.增加了参数传递功能,可通过launch文件传递参数
第一次提交
mick_bringup : 为麦克纳姆轮和四轮差速ROS底盘的ROS节点
mick_description :存放模型文件和URDF文件
mick_navigation: move—base导航配置文件
1.1 下载
cd catkin_ws/src
git clone https://github.com/RuPingCen/mick_robot.git
1.2 安装依赖项 & 编译
cd mick_robot
./config.sh
cd ~/catkin_ws
catkin_make
使用 I J K L 按键控制小车移动,shift按键加速。注意要把遥控器拨到自动档位,使能上位机控制。
roslaunch mick_bringup keyboard.launch
roslaunch mick_navigation mickx4_gmapping.launch
step1: 启动建图节点(传感器的启动都放在了这个launch文件中)
roslaunch mick_navigation mickx4_carto_2D.launch
step2: 保存地图
rosservice call /write_state ~/cartograph_test.pbstream
step3: 用 cartographer 自带的转换节点将.pbstream 文件转化为pgm和yaml文件
source devel_isolated/setup.bash
rosrun cartographer_ros cartographer_pbstream_to_ros_map -pbstream_filename /home/administrator/cartograph_test.pbstream -map_filestem /home/administrator/cartograph_test
roslaunch mick_bringup mickx4_bringup.launch