机械臂MOVEIT的学习很好的博客:https://blog.csdn.net/brawly/article/details/106435767
以下内容参考了古月居的视频:
1 #启动Moveit Setup Assistant 2 roscore 3 rosrun moveit_setup_assistant moveit_setup_assistant 4 5 这一步没有做 6 模型可视化 roslaunch marm_description view_marm_simple.launch 7 8 #启动demo 9 roslaunch marm_moveit_config demo.launch 10 11 #启动仿真环境 12 roslaunch marm_gazebo arm_world.launch #注意没有marm_world.launch 13 14 #查看当前话题列表 15 rostopic list 16 17 #启动仿真系统,或者说成 加载控制器 18 roslaunch marm_gazebo marm_gazebo_control.launch 19 20 #控制单轴运动 21 rostopic pub /arm/joint2_position_controller/command std_msgs/Float64 1.0 22 rostopic pub /arm/joint1_position_controller/command std_msgs/Float64 1.0 23 24 #监控机器人状态 或者说成 输出关节状态信息 25 rostopic echo /arm/joint_states 26 27 #启动仿真系统,注意:命名空间或者数据类型不匹配,会出现报错信息 28 roslaunch marm_gazebo arm_bringup_moveit.launch 29 30 31 32 33 Fixed Frame [map] does not exist 34 35 36 37
问题一:
1 ROS was unable to find the package name '' within the ROS workspace. This may cause issues later.
解决办法:需要把文件放在ROS的工作空间。
问题二:
1 命名空间和参数需要对应的地方,.yaml和.launch文件之间命名空间和参数的对应。
解决办法:moveit的gazebo_controller.yaml 与gazebo的trajectory_control.yaml和trajectory_control.launch三个文件的命名空间和参数 必须相同。
参考博客:https://blog.csdn.net/ha010/article/details/109274459
问题三:
1 [ERROR] [1603521846.052994053, 17.001000000]: Action client not connected: arm_controller/follow_joint_trajectory
解决:
1 使MoveIt控制器的命名空间与机械臂控制器插件的命名空间相同,在 /husky_kinova_moveit_config/config/ros_controllers.yaml 文件中,控制器arm_controller与命名空间arm_controller对应,控制器hand_controller与命名空间hand_controller对应。 2 3 另外,在 /husky_kinova_moveit_config/launch/ros_controllers.launch 中启动joint_state_controller、arm_controller、hand_controller
参考博客:https://blog.csdn.net/*nsheng123/article/details/109259660
ROS-I总体架构
MoveIt整体流程图
复制文件到另一个目录见下图:
源代码网址 https://github.com.cnpmjs.org/huchunxu/ros_exploring.git
删除文件如下图:
ros_control是什么如下图:
MoveIt和Gazebo 结合!!(注意话题和话题 命名空间需要一致)
MoveIt和Gazebo的结合如下图: