Mobile Manipulator Intro & Resource
关于Mobile Manipulator的一些偏向于survey的介绍和一些资源汇总。
Papers
主要是survey相关的paper
- Mobile Manipulation Tutorial 2020
- Ros navigation tuning guide 2017123
Mobile Manipulator Intro
组成:robotics arm + mobile robotic platform
最简单、最常见的具体形式:
- wheeled base 底盘
- 6 自由度(DoF)机械臂
- 平行二指夹爪
典型例子:Fetch:7DoF机械臂,躯干可提升,pitch, yaw head with an RGB-D camera & 2D Laser Scanner.
其他常见传感器
- 激光雷达:用于mapping
- RGB-D Camera:用于object recognition and localization
因为目前短期内的任务是尽快的实现一个在虚拟环境的task,所以这里重点关注一些现有的、已经发行的公开的软件工具包和仿真器。
Task
最简单也最经典的任务:Fetch & Place
为做简单处理,将path planning, arm planning和task planning分开进行,现在一些更新的方法是将它们结合进行规划,也是我们最终的目标。
因此,我们可以将问题分为移动机器人部分(负责将机器人驱动到某个位置),操纵部分(寻找要拾取的对象和相应的手臂动作)。当然也要包括简单的人机交互部分。
对于一个最简单的Fetch & Place的task,常见的流程如下:
- drive to a given location
- identify and grasp a specified object
- drive to a different location
- place the object on a specific QR code(目前使用QR code来定位是最最常见的方案)
这些流程可能要使用下图中所使用的技术
常见仿真器
- Gazebo–> Most common used, popularity, tight integration of ROS !
- CoppeliaSim
- Webots
- SAPIEN
软件包
功能 | Package |
---|---|
Localization | AMCL等 |
Local Costmap + Path Planning +Path Flow | ROS Navigation |
Arm Control(驱动层面的控制) | kinova_ros, fetch_ros等 |
object Detection | AprilTags,NOCS |
object Place Pose | AprilTags |
Arm Planning & Inverse Kinematics | MoveIt |
Grasp Planning(假设使用两指夹爪,相对简单) | —- |
Decision Making (State machine) | FlexBE, SMACH |
Simulator | Gazebo |
SLAM 2D(激光雷达) | Cartographer,gmapping |
Camera Calibration | TODO |
Hand eye Calibration | TODO |
整体的设计逻辑使用有限状态自动机。具体行为的设计可以使用FlexBE或SMACH。
假设:环境是已知的。
对于环境的建模,就可以使用SLAM(这里给定的task环境是建好的),常见的包如:gmapping和Cartograhper。
整个路径规划的部分可以市容ROS Navigation。其中包含以下部分:Local Costmap: 为了驱动到地图中指定的2D坐标,ROS导航正在构建成costmap(global和local),将提供的地图与当前扫描得到数据结合在一起。 然后,global path planner规划到坐标的路径,同时考虑机器人的运动学约束(机器人底盘的差动方式和机器人尺寸)。local path planner则主要负责避开在global planner规划的路径上的障碍。
当机器人达到目标地点,开始执行pick的任务时,这时候一般就需要适用到RGB-D相机了。一般来讲:彩色图像用于识别物体,而深度数据对于计算物体的6D位姿非常重要。
对于object detection可以使用:AprilTags(有ROS的包),NOCS(2019年新方法,也有ROS的包)算法细节TODO
下图为AprilTags
下图为:NOCS
一旦检测到物体的方位,就要进行grasp planning了,即找到一个最优的方法来抓取目标物体。因为这里使用的是两指夹爪,最简单方案就是对齐中心,然后抓就可以了。更advanced的算法和包:TODO。
arm planning & control:ROS MoveIt。最主流的实现方法,需要知道机械臂的参数、碰撞信息等。其本质功能就是进行运动学反解(Inverse Kinematics)。细节:TODO
一些待调研的问题:
- 相机校准
- 手眼协调
- …