ros创建工作空间_ROS入门学习之七Moveit机械臂控制
生活随笔
收集整理的這篇文章主要介紹了
ros创建工作空间_ROS入门学习之七Moveit机械臂控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.MoveIt!系統架構
MoveIt是什么:
- 一個易于使用的集成化開發平臺
- 由一系列移動操作的功能包組成:運動規劃、操作控制、3D感知、運動學、控制與導航算法
- 提供友好的GUI
- 可應用于工業、商業、研發和其他領域
- ROS社區中使用度排名前三的功能包
系統架構
用戶接口(User Interface)
- C++:使用move_group_interface包提供的API
- Python:使用moveit_commander包提供的API
- GUI:使用Moveit!的rviz插件
ROS參數服務器
- URDF:robot_description參數,獲取機器人URDF模型的描述信息
- SRDF:robot_description_semantic參數,獲取機器人模型的配置信息
- config:機器人的其他配置信息,例如關節限位、運動學插件、運動規劃插件
機器人
Topic和Action通信
系統架構
約束條件
- 位置約束:限制link的運動區域
- 方向約束:限制link的運動方向(roll、pitch和yaw)
- 可見性約束:限制link上的某點在某區域內的可見性(通過視覺傳感器)
- joint約束:限制joint的運動范圍
- 用戶定義約束:用戶通過回調函數自定義所需的約束條件
適配器
- FixStartStateBounds:修復joint的初始極限
- FixWorkspaceBounds:設置一個默認尺寸的工作空間
- FixStateCollision:修復碰撞配置文件
- FixStatePathConstraints:找到滿足約束的姿態作為機器人的初始姿態
- AddTimeParameterization:為空間軌跡進行速度、加速度約束,為每個軌跡點加入速度、加速度、時間等參數
監聽信息
- 狀態信息(State Information)機器人的關節話題joint_states
- 傳感器信息(Sensor Information)機器人的傳感器信息
- 外界環境信息(World geometry Information)通過傳感器建立的周圍環境信息
MoveIt!使用步驟
- 1)組裝:創建機器人URDF模型
- 2)配置:使用MoveIt!Setup Assistant工具生成配置文件
- 3)驅動:添加機器人控制器插件(controller)
- 4)控制:MoveIt!控制機器人運動(算法仿真、物理仿真)
2.創建機械臂模型與配置文件
宏定義
link與joint
gazebo屬性
可視化
模型可視化
roslaunch marm_description view_arm.launch
啟動MoveIt!Setup Assistant
rosrun moveit_setup_assistant moveit_setup_assistant
啟動demo
roslaunch marm_moveit_config demo.launch
拖動規劃
隨機目標點規劃
設置初始位姿
加入場景物體
碰撞檢測
3.MoveIt!編程練習
編程接口
關節空間規劃
關節空間規劃例程
roslaunch marm_moveit_config demo.launch rosrun marm_planning moveit_fk_demo.py工作空間規劃
工作空間規劃例程
roslaunch marm_moveit_config demo.launch rosrun marm_planning moveit_ik_demo.py笛卡爾路徑規劃
工作空間規劃例程
roslaunch marm_moveit_config demo.launch rosrun marm_planning moveit_cartesian_demo.py _cartesian:=True(走直線) rosrun marm_planning moveit_cartesian_demo.py _cartesian:=False(走曲線)避障規劃
自主避障規劃例程
roslaunch marm_moveit_config demo.launch rosrun marm_planning moveit_obstacles_demo.py4.Gazebo機械臂仿真
關節軌跡控制器
Joint Trajectory Controller
- 線性樣條:位置連續,速度、加速度不連續
- 三次樣條:位置和速度連續,加速度不連續
- 五次樣條:位置、速度、加速度都連續
MoveIt!控制器
啟動仿真環境
roslaunch marm_gazebo arm_bringup_moveit.launch5.ROS-I框架介紹
將ROS強大的功能應用到工業生產的過程中 為工業機器人的研究與應用提供快捷有效的開發途徑 為工業機器人創建一個強大的社區支持 為工業機器人提供一站式的工業級ROS應用開發支持總體架構
- GUI:ROS中現在已有的UI工具和專門針對工業機器人通用的UI工具
- ROS Layer:ROS基礎框架,提供核心通信機制
- MoveIt!Layer:為工業機器人提供規劃、運動學等核心功能的解決方案
- ROS-I Application Layer:處理工業生產的具體應用,目前也是針對未來的規劃
- ROS-I Interface Layer:接口層,工業機器人的客戶端,通過simple message協議與機器人的控制器通信
- ROS-I Simple Message Layer:通信層,定義了通信的協議,打包和解析通信數據
- ROS-I Controller Layer:機器人廠商開發的工業機器人控制器
基于ROS-I框架的應用(Kungfu Arm)
總結
以上是生活随笔為你收集整理的ros创建工作空间_ROS入门学习之七Moveit机械臂控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保护眼睛之FadeTop篇
- 下一篇: 正义执行!“合同的神”RNG因合同纠纷被