1. 程式人生 > 其它 >ROS機械臂開發_MoveIt!與機械臂控制(六)

ROS機械臂開發_MoveIt!與機械臂控制(六)

機械臂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/huangjunsheng123/article/details/109259660

ROS-I總體架構

MoveIt整體流程圖

複製檔案到另一個目錄見下圖:

原始碼網址 https://github.com.cnpmjs.org/huchunxu/ros_exploring.git

刪除檔案如下圖:

ros_control是什麼如下圖:

MoveIt和Gazebo 結合!!(注意話題和話題 名稱空間需要一致)

MoveIt和Gazebo的結合如下圖: