zoukankan      html  css  js  c++  java
  • 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》

    微信公众号:喵哥解说
    公众号介绍:主要研究机器学习、计算机视觉、深度学习、ROS等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!同时还有1200G的Python视频和书籍资料等你领取!!!

  • 相关阅读:
    codeforces C. Cows and Sequence 解题报告
    codeforces A. Point on Spiral 解题报告
    codeforces C. New Year Ratings Change 解题报告
    codeforces A. Fox and Box Accumulation 解题报告
    codeforces B. Multitasking 解题报告
    git命令使用
    shell简单使用
    知识束缚
    php 调用系统命令
    数据传输方式(前端与后台 ,后台与后台)
  • 原文地址:https://www.cnblogs.com/IT-cute/p/12990391.html
Copyright © 2011-2022 走看看