ROS编程应用二
一、机械臂
1、Movelt系统架构
参考资料:http://moveit.ros.org
安装:sudo apt-get install ros-kinetic-moveit
1、简介
-
是一个易于使用的集成开发平台
-
功能组成
-
运动规划
-
操作控制
-
3D感知
-
运动学
-
控制与导航算法
-
-
2、系统架构
- 用户接口
- 提供C++/Python接口(C++使用move_group_interface包提供的API,Python使用moveit_commander提供的API)
- GUI:使用Movelt的rviz插件
- ROS参数服务器
- URDF:robot_description参数,获取机器人URDF模型的描述信息
- SRDF:robot_description_semantic参数,获取机器人模型的配置信息
- config:机器人的其他配置信息,如:关节限位,运动学插件、运动学规划插件
- 机器人:
- Topic和Action通信
- 运动规划器结构
- 约束条件
- 位置约束:限制link的运动区域
- 方向约束:限制link的运动方向(roll、pitch、yaw)
- 可见约束:限制link上的某点在某区域的可见性(通过视觉传感器)
- joint:限制joint的运动范围
- 用户定义约束:用户通过回调函数自定义所需的约束条件
- 适配器
- FixStartStateBounds:修复joint的初始极限
- FixWorkspaceBounds:设置一个默认尺寸的工作空间
- FixStartStateCollision:修复碰撞配置文件
- FixStartStatePathConstraints:找到满足约束的姿态作为机器人的初始姿态
- AddTimeParameterization:为空间轨迹进行加速、加速度约束、为每个轨迹点加入速度、加速度、时间等参数
- 约束条件
-
规划场景模块的结构
-
监听信息
- 状态信息(State Information):机器人的关节话题joint_states
- 传感器信息(Sensor Information):机器人的传感器数据
- 外界环境信息(World geometry information):通过传感器建立的周围环境信息
-
-
Movelt使用步骤
- 组装:创建机器人URDF模型
- 配置:使用Movelt!Setup Assistant工具生成配置文件
- 驱动:添加机器人控制插件
- 控制:Movelt!控制机器人的运动(算法仿真、物理仿真)
- 参考书 <ros by example vol 2>
2、创建机械臂模型与配置文件
1、创建机械臂模型
- 宏定义
*
* - 运行 roslaunch marm_description view_arm.launch
2、创建配置文件–Movelt!Setup Assistant
- 启动Movelt!Setup Assistant
-
rosrun moveit_setup_assistant moveit_setup_assistant
-
加载arm.xacro文件
-
设置碰撞检测采样点
-
- 机械臂规划组Planning Groups
-
自定义点位
-
配置终端夹臂
3、Movelt编程基础
- 编程接口
- 关节空间规划
- 避障规划