ROS中階筆記(九):Movelt!機械臂控制


ROS中階筆記(九):Movelt!機械臂控制

1 Movelt!系統架構

1.1 Movelt!是什么

  • 一個易於使用的集成化開發平台
  • 由一系列移動操作的功能包組成
    · 運動規划
    · 操作控制
    · 3D感知
    · 運動學
    · 控制與導航算法
  • 提供友好的GUI
  • 可應用於工業、商業、研發和其他領域
  • ROS社區中使用度排名前三的功能包

1.2 系統架構

1.3 Movelt!使用步驟

  • 組裝:創建機器人URDF模型
  • 配置:使用Movelt!Setup Assistant工具生成配置文件
  • 驅動:添加機器人控制器插件(controller)
  • 控制:Movelt!控制機器人運動(算法仿真、物理仿真)

可參考《Mastering ROS for Robotics Programming》、《ros by example vol2》

2 創建機械臂模型與配置文件

2.1 創建機械臂模型

(~/catkin_ws/src/marm_description/urdf/arm.xacro,六軸機械臂的模型文件)

2.1.1 創建模型

(~/catkin_ws/src/marm_description/urdf/arm.xacro,六軸機械臂的模型文件,6個joint,7個link)

1、宏定義(材料定義、屬性定義、慣性矩陣定義)

2、link與joint

  • link
    ·visual
    ·collision
    ·inertial

  • joint

3、gazebo屬性(顏色設置、傳動接口、controller插件)

2.1.2 模型可視化

(~/catkin_ws/src/marm_description/launch/view_arm.launch)

模型可視化

$ roslaunch marm_description view_arm.launch

2.2 創建配置文件Movelt!Setup Assistant

啟動Movelt!Setup Assistant之前,先啟動roscore;

$ roscore
$ rosrun moveit_setup_assistant moveit_setup_assistant   # 啟動Movelt!Setup Assistant
  • Start:加載模型文件
  • Self-Collisions:采樣一系列的檢測點,檢測機械臂的各個關節在運動時候是否會發生碰撞(默認一萬采樣點)
  • 只需點擊Generate Collision Matrix,自動完成數據采樣和計算。
  • Virtual Joints:虛擬關節
  • Planning Groups:運動規划組(核心)
  • Robot Poses:自定義姿態點位
  • End Effectors:終端夾具配置
  • Passive Joints:不需要考慮的主關節;
  • Author Information:作者信息
  • Configuration Files:生成配置文件

2.3 demo

roslaunch marm_moveit_config demo.launch               # 啟動demo

1、拖動規划(鼠標拖動)

2、隨機目標點規划(random valid)

3、設置初始位姿

4、加入場景物體(Import File——選擇文件——Open)

5、碰撞檢測

3 Movelt!編程學習

3.1 編程接口

3.2 編程方法

1、關節空間規划歷程

roslaunch marm_moveit_config demo.launch
rosrun marm_planning moveit_fk_demo.py

2、工作空間規划歷程

roslaunch marm_moveit_config demo.launch
rosrun marm_planning moveit_ik_demo.py

3、笛卡爾路徑規划

roslaunch marm_moveit_config demo.launch
rosrun marm_planning moveit_cartesian_demo.py_cartesian:=True     (走直線)
rosrun marm_planning moveit_cartesian_demo.py_cartesian:=False     (走曲線)

4、避障規划

roslaunch marm_moveit_config demo.launch 
rosrun marm_planning moveit_obstacles_demo.py

4 Gazebo機械臂仿真

4.1 關節軌跡控制器

Joint Trajectory Controller

  • 線性樣條:位置連續,速度、加速度不連續。
  • 三次樣條:位置和速度連續,加速度不連續。
  • 五次樣條:位置、速度、加速度都連續。

針對gazebo的配置,編寫yaml配置文件,使用launch文件啟動控制器;

marm_gazebo/config/trajectory_control.yaml

marm_gazebo/launch/arm_trajectory_controller.launch

4.2 Movelt!控制器

針對Movelt配置

marm_moveit_config/config/controllers.yaml

marm_moveit_config/launch/arm_moveit_controller_manager.launch

4.3 仿真環境

1、仿真環境文件

marm_gazebo/launch/arm_world.launch

2、啟動仿真環境(啟動所有需要的launch文件)

$ roslaunch marm gazebo arm_bringup_moveit.launch   # 啟動仿真環境

通過Movelt!控制機械臂運動,gazebo仿真環境和rviz中的機器人狀態保持一致

5 ROS-I框架介紹

6、參考資料

《Mastering ROS for Robotics Programming》
《ros by example vol 2》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM