机器人搭建与调试1:总体框架介绍

  本ROS小车实现自主搬运功能,主要可分为以下几个大步骤:

  • 机器人搭建与底盘调试
  • 机器人建模与仿真
  • 同时定位和地图构建
  • 路径规划与自主避障
  • 自主搬运动作规划

  总体框架如下:

(图)搬运机器人总体框架

搬运机器人模块选型与搭建

  目前ROS搬运小车经历三个版本。在硬件上,下位机方面主要选择arduino mega 2560作为控制板,驱动电机和舵机,完成编码计数的上传。上位机方面基于机器人操作系统 ROS,以“ROS 主机(PC 电脑)+ROS 从机(树莓派 3B)”配合 Arduino mega 开发板作为控制系统,通过电源模块等驱动系统来驱动编码电机、舵机手爪等部件。外部传感器采用惯性测量单元 IMU、USB 摄像头、激光雷达提高机器人定位精度、识别二维码目标点位姿以及自主搬运功能的实现。其中搬运机器人底盘是关键,如果机器人底盘不满足实验要求,后续任务将无法进行。

  数据通信方面,传感器模块和arduino mega 2560开发板与ROS从机(树莓派3B)通过USB口串口通信;ROS从机(树莓派3B)与ROS主机(PC电脑)之间以局域网不同IP地址通过SSH连接相互通信。

备注

(1)底层控制可选择STM32开发板或者Arduino开发板
(2)ROS主机可选择虚拟机VMware 15.5安装Ubuntu 系统
(3)ROS从机可选择树莓派或者工控机
  推荐树莓派,因为树莓派是一款微型电脑,搭配wifi模块和4个USB口,性能基本满足ROS一般任务要求,此外计算量大的部分可以放在ROS主机上。
(4)SLAM构建地图可以选择激光SLAM或者视觉SLAM。
  激光SLAM 可选择 思岚 RPLIDAR 激光雷达传感器;
  视觉SLAM 可选择 kinect 深度相机
(5)本ROS小车电机驱动板(6WD扩展板)有些小瑕疵,非I/O直接驱动,且电机接口较小。可替换选择PIKIROBOT ROS电机驱动板,有STM32和Arduino等多种型号。
(6)底板可自己画好图纸定制亚克力板。

实现搬运功能所需步骤

机器人底盘运动控制

  • 电机、舵机驱动测试;
  • 机器人底盘PID运动控制,确保机器人走直线不偏斜;
  • 速度(线速度、角速度)校准实验,确保机器人在真实环境前进距离和航迹推算距离保持一致。
  • 里程计信息融合(功能包 /robot_pose_ekf),提高机器人定位和航迹推算精度。

机器人建模与仿真

  • TF坐标树的维护
  • 建立urdf模型、xacro模型、SolidWorks模型
  • ArbotiX + Rviz 控制机器人可视化行走
  • Gazebo 模拟仿真。(可参考 turtlebot3 功能包)

同时定位和地图构建

  • 激光SLAM算法功能包 /hector 使用与理论分析
  • 激光SLAM算法功能包 /gmapping 使用与理论分析
  • 激光SLAM算法功能包 /karto 使用与理论分析
  • 激光SLAM算法功能包 /cartographer 使用与理论分析

自主导航

  • 理解 /navigation功能包(机器人地图定位/amcl、路径规划/move_base)
  • 全局路径规划器( Dijkstra 算法、A*算法等插件使用)
  • 本地路径规划(dwa方法、teb方法等插件使用)

搬运动作规划

  • 摄像头驱动与畸变校准
  • 二维码识别
  • 搬运动作规划
+