参考资料
[1] Mastering ROS for Robotics Programming [是一本书]
[2] 这篇博客 [3] Mastering ROS for Robotics Programming的代码链接失效了,,,不知道跑哪里去了
实验开始
安装MoveIt!
sudo apt install ros-melodic-moveit
新建工作空间
mkdir -p ~/catkin_moveit_ws/src
把书配套源码的mastering_ros_robot_description_pkg包,放入/catkin_moveit_ws/src里面,然后进入工作空间编译:
cd catkin_moveit_ws/
catkin_make
首先
source ./devel/setup.bash
启动MoveIt!
roslaunch moveit_setup_assistant setup_assistant.launch
选择加载现成的文件
/home/gwz/catkin_moveit_ws/src/mastering_ros_robot_description_pkg/urdf/seven_dof_arm.urdf
- 导入机械臂urdf文件
换个机械臂,安装
# 不了:sudo apt-get install ros-melodic-franka-description
- 配置自碰撞矩阵(Self-Collisions)
选择默认的采样点数量10000,生成碰撞矩阵。 点击Generate Collision Matrix即可。
- 定义虚拟关节(Virtual Joints)
若一个机械手固定在移动机器人上,要定义一个虚拟关节,虚拟关节能够与移动基座关联.这里的机械手是固定不动的,因此不要虚拟关节。 - 创建规划组(Planning Groups)
为达到目标位姿,要创建两个规划组,一个是机械臂(arm)部分,一个是夹具(gripper)部分。
添加第一个Group:点击Add Group,设置规划组名称(Group Name)为arm,运动学求解器(Kinematic Solver)为kdl_kinematic_plugin/KDLKinematicsPlugin,其他默认;然后点击下面的Add Link,选中base_link并点击Choose Selected作为Base Link
添加第二个Group:点击Add Group,设置规划组名称(Group Name)为gripper,不设置运动学求解器(Kinematic Solver),其他默认;然后点击下面的Add Joints,添加finger_joint1和finger_joint2,保存退出;双击Links,添加gripper_finger_link1和gripper_finger_link2
最后设置得到的效果如下
- 设置机器人的位姿
就是自己定义一些位姿,需要的时候机械臂可以立即到达这个位置。也可以不设置 - 设置末端执行器
点击Add End Effector,按照下图设置即可
后面几个看着填就行啦(作者名、邮件啥的)
- 配置文件(Configuration Files)
设置配置文件的保存位置,点击Generate Package即可
启动节点
roslaunch seven_dof_arm_config demo.launch
可以实现简单的鼠标拖动,用鼠标拖动爪子抓的球,沿着三个方向运动
左下角的Motion Planning插件,可以实现机械臂的轨迹规划,博客里面不方便演示。