你的 ROS 控制器 (robot_arm_controller
) 沒有成功加載,可能是 #1 joint_trajectory_controller.yaml
配置有問題,
或者
#2 ros-controllers
沒有安裝或加載。
我們需要逐步確認這些問題。
🚀 1️⃣ 檢查 ros-noetic-ros-controllers
是否安裝
📌 執行以下指令檢查是否已安裝
如果 沒有安裝,請執行以下指令:
📌 安裝完成後,重新啟動 Launch
📌 檢查控制器類型是否已經載入
✅ 如果 輸出包含:
代表 控制器已經安裝,請執行 步驟 2 確認 YAML 設定。
❌ 如果 沒有 JointTrajectoryController
,請確保 ros-controllers
已安裝,然後重啟機器:
🚀 2️⃣ 檢查 joint_trajectory_controller.yaml
設定
📌 打開 joint_trajectory_controller.yaml
📌 確認內容是否正確
📌 然後手動加載 YAML
📌 檢查是否已經加載
如果 沒有輸出任何內容,表示 joint_trajectory_controller.yaml
沒有正確載入,請執行 步驟 3 確保 robot_arm_control.launch
正確載入 YAML。
🚀 3️⃣ 確保 robot_arm_control.launch
內有載入 YAML
📌 打開 robot_arm_control.launch
📌 確保這一行存在
📌 重新啟動 Launch
📌 再次檢查
如果 仍然報錯,請執行 步驟 4。
🚀 4️⃣ 手動啟動控制器
📌 嘗試手動加載 robot_arm_controller
📌 如果 robot_arm_controller
能成功啟動,則問題可能是 launch
檔案沒有正確啟動控制器,請確認以下設定
📌 然後重新啟動
🚀 5️⃣ 確保 gazebo_ros_control
插件已載入
📌 打開 robot_arm_urdf.urdf
📌 確保 gazebo_ros_control
插件存在
📌 然後重新啟動
🚀 6️⃣ 確保機械手臂 URDF 內有 transmission
📌 打開 robot_arm_urdf.urdf
📌 確保 transmission
配置正確
📌 重新載入 URDF
🚀 總結
步驟 | 指令 | 預期結果 |
---|---|---|
1. 安裝 ros-controllers | sudo apt install ros-noetic-ros-control ros-noetic-ros-controllers | 確保 JointTrajectoryController 存在 |
2. 確保 YAML 設定正確 | nano config/joint_trajectory_controller.yaml | 應該包含 robot_arm_controller |
3. 確保 robot_arm_control.launch 正確載入 YAML | nano launch/robot_arm_control.launch | 應該包含 <rosparam> |
4. 嘗試手動啟動控制器 | rosrun controller_manager spawner robot_arm_controller | 應該能成功加載控制器 |
5. 確保 gazebo_ros_control 插件已載入 | nano urdf/robot_arm_urdf.urdf | 應該包含 <plugin> |
6. 確保 URDF transmission 設定正確 | nano urdf/robot_arm_urdf.urdf | 應該包含 SimpleTransmission |
沒有留言:
張貼留言