以下內容參考了古月居的視頻:
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/huangjunsheng123/article/details/109259660
ROS-I總體架構
MoveIt整體流程圖
復制文件到另一個目錄見下圖:
源代碼網址 https://github.com.cnpmjs.org/huchunxu/ros_exploring.git
刪除文件如下圖:
ros_control是什么如下圖:
MoveIt和Gazebo 結合!!(注意話題和話題 命名空間需要一致)
MoveIt和Gazebo的結合如下圖: