ROS機械臂開發_MoveIt!與機械臂控制(六)
阿新 • • 發佈:2021-06-22
以下內容參考了古月居的視訊:
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.launch10 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.023 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的結合如下圖: