【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包
文章目录
- 【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包
- 1.确保你已经安装了moveit2环境
- 2.配置机械臂功能包
- Reference
环境信息:
- ubuntu 22.04
- ros2 humble
- moveit2
1.确保你已经安装了moveit2环境
如果没有配置moveit2
环境的,可以参考这篇博客:Ubuntu22.04 + ROS2 Humble配置Moveit2环境
可以使用以下的命令来再次安装,确保自己的环境是正确的
sudo apt install ros-humble-moveit ros-humble-moveit-setup-assistant -y
2.配置机械臂功能包
首先,我们可以新建一个功能空间命名为arms_ws
,创建一个panda_robot
作为功能包
mkdir -p arms_ws/src
cd arms_ws/src
mkdir panda_robot
cd ..
cd ..
如果你安装过moveit2_tutorials
,你可以在你的功能包中找到这个文件夹.../your_workspace/src/moveit_resources/panda_description
,拷贝这个文件夹panda_description
到arms_ws/src/panda_robot
中。如果你没有使用过moveit2_tutorials
,你可以在这里找到这个文件夹:https://github.com/ros-planning/moveit_resources/tree/ros2/panda_description,下载这个文件夹然后放置在arms_ws/src/panda_robot
中。放置完毕后记得进行构建,然后source
colcon build
source install/setup.bash
这里一定要记得source
,不然后面会导致找不到.urdf
文件。
然后我们就可以启动moveit_setup_assistant
来进行配置了,这里有两种启动方式,任选一种即可:
ros2 launch moveit_setup_assistant setup_assistant.launch.py
ros2 run moveit_setup_assistant moveit_setup_assistant
启动后的界面如下:
选择Create New Moveit Configuration Package
,创建一个新的moveit配置功能包。
然后选中机械臂的描述文件,这里应该选择panda_description/urdf/panda.urdf
这个文件,然后选择Load Files
,就可以看到右边加载出来了机械臂的模型。
然后我们配置Self-Collisions
,这个是配置机械臂关节碰撞矩阵的,我们点击Generate Collision Matrix
既可自动生成。
然后我们配置Virtual Joints
,这是用于配置虚拟的关节,用于指定我们将机械臂放置在哪里,我们这里直接将机械臂放置在world
坐标系中,取名为virtual_joints
然后我们需要添加机械臂的Planning Groups
,规划组是用来规划机械臂运动的,这里我们主要分为两个组,一个是我们的机械臂的各个关节部分panda_arm
,另一个是我们的夹具部分hand
,首先添加panda_arm
组,动力学求解器Kinematic Solver
选择kdl_kinematics_plugin/KDLKinematicsPlugin
,然后默认的规划器Group Default Planner
随便选就行。然后点击Add Joints
为这个规划组添加关节。
panda_arm
的关节: 按住shift
可以进行多选,然后点击>
进行添加
再添加另一个hand
规划组,hand
规划组不需要选择动力学求解器和默认规划器,直接选择Add Joints
即可
hand
规划组:
定义好的规划组如下所示:
然后我们定义Robot Poses
,为每个规划组定义一些预设的姿态,首先我们为panda_arm
定义一个home
位姿态,这个姿态可以随意选择,我的设置如下:
然后我们定义hand
规划组的预设位姿,首先需要选中已经给panda_arm
预设好的位姿,然后点击Add Pose
然后按照类似的方式,我们给hand
规划组设定两个位姿,分别为open
和close
,如下所示:
最终我们预设了三个位姿,如下所示:
然后我们定义我们的End Effectors
,末端执行机构,如果没有末端执行机构这一步可以跳过,末端执行机构的规划组为hand
,然后默认连接的parent_link
是panda_link8
然后配置ros2_control URDF Modifications
,这里使用默认,然后直接Add interfaces
即可。
然后我们配置ROS 2 Controllers
,为每个规划组配置控制器,我们点击Auto Add JointTrajectoryController Controllers For Each Planning Group
即可,然后修改hand
组的控制器如下:
同理,配置Moveit Controllers
然后配置Launch Files
,这个使用默认配置即可
然后配置一下作者的信息
最后我们就可以生成package了,我们需要选择一个生成的位置,建议在src/panda_robot
文件路径下放置一个文件夹panda_configure
用于存放我们的配置文件,然后选择生成
生成完毕后的文件目录应该为:
.
├── build
├── install
├── log
└── src
└── panda_robot
├── panda_configure
│ ├── CMakeLists.txt
│ ├── config
│ │ ├── initial_positions.yaml
│ │ ├── joint_limits.yaml
│ │ ├── kinematics.yaml
│ │ ├── moveit_controllers.yaml
│ │ ├── moveit.rviz
│ │ ├── panda.ros2_control.xacro
│ │ ├── panda.srdf
│ │ ├── panda.urdf.xacro
│ │ ├── pilz_cartesian_limits.yaml
│ │ ├── ros2_controllers.yaml
│ │ └── sensors_3d.yaml
│ ├── launch
│ │ ├── demo.launch.py
│ │ ├── move_group.launch.py
│ │ ├── moveit_rviz.launch.py
│ │ ├── rsp.launch.py
│ │ ├── setup_assistant.launch.py
│ │ ├── spawn_controllers.launch.py
│ │ ├── static_virtual_joint_tfs.launch.py
│ │ └── warehouse_db.launch.py
│ └── package.xml
└── panda_description
97 directories, 291 files
其中其他文件夹的内容就省略了。然后我们就能对这个功能包进行构建
colcon build --packages-select panda_configure
source install/setup.bash
然后直接运行我们刚才配置好的包
ros2 launch panda_configure demo.launch.py
可以实现一些运到到预设位姿的功能
Reference
[1]MoveIt Setup Assistant
[2]动手学Moveit2|使用配置助手创建自己机械臂的功能包
[3]【学习笔记】ROS2纯小白 - MoveIt! (humble) 引入新的机器人模型