视频讲解:
Package仓库地址:LitchiCheng/ros2_package
启动moveit_setup_assistant
ros2 launch moveit_setup_assistant setup_assistant.launch.py
选择导入urdf文件,如果urdf中引用的package搜索不到,会直接崩溃,需要先source install/setup.bash,具体参考《ROS2导入机械臂URDF竟有这些坑?SO-ARM100 Rivz可视化避坑指南》
[moveit_setup_assistant-1] Qt: Session management error: networkIdsList argument is NULL[moveit_setup_assistant-1] terminate called after throwing an instance of 'ament_index_cpp::PackageNotFoundError'
[moveit_setup_assistant-1] what(): package 'display_urdf_launch' not found, searching: [/opt/ros/humble]
[moveit_setup_assistant-1] Stack trace (most recent call last):
[moveit_setup_assistant-1] #31 Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.3", at 0x7e3740172e46, in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
[moveit_setup_assistant-1] #30 Object "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.3", at 0x7e373f4b9e39, in QCoreApplication::notifyInternal2(QObject*, QEvent*)
点击Load Files,加载完成后,右侧会出现模型,和Rviz中一样,可以拖动显示
下一步点击左侧的Self-Collsions配置关节碰撞相关的参数,如果没有出现link,勾上右下角的show enabled pairs
然后可以点击Generate Collision Matrix生成碰撞矩阵
点击左侧Virtual Joint,配置虚关节,用来将基座放置在哪儿
配置Planning Groups,这个作用在Moveit规划的文章里面我们用过,就是要指定规划的组名,比如so-arm100-groups,就是这里了,运动学求解器选择一个即可,OMPL的planning我们选常用的RTTConnect
add joints,需要把这个组里面规划的关节都选中,最后配好的效果如下
创建机器人位姿,如home位置
没有末端夹爪或其他执行器,End Effectors不用管
增加ros2_control到urdf文件中
自动添加关节轨迹控制器到Planning Group中
Moveit Controllers也是同样,电机auto
没有感知器件,如3d传感器,点云之类的也不用配置
检查下等下要生成的文件,默认都是勾上的
添加作者信息
选择工作空间下src中新建一个package,比如so_arm100_moveit,然后生成的包就会到里面
编译运行
colcon build --packages-select so_arm100_moveit
source install/setup.bash
ros2 launch so_arm100_moveit demo.launch.py