ROS中阶笔记(九):Movelt!机械臂控制

本文涉及的产品
资源编排,不限时长
简介: ROS中阶笔记(九):Movelt!机械臂控制

1 Movelt!系统架构


1.1 Movelt!是什么


一个易于使用的集成化开发平台

由一系列移动操作的功能包组成


· 运动规划

· 操作控制

· 3D感知

· 运动学

· 控制与导航算法


提供友好的GUI

可应用于工业、商业、研发和其他领域

ROS社区中使用度排名前三的功能包


1.2 系统架构


aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MjMxMTM5MTc1OTAucG5n.png


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


aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MjMyMDA4MTU0MTQucG5n.png


1、拖动规划(鼠标拖动)

2、随机目标点规划(random valid)

3、设置初始位姿

4、加入场景物体(Import File——选择文件——Open)

5、碰撞检测


3 Movelt!编程学习


3.1 编程接口

aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MjMyMTE4MjU2NzEucG5n.png

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框架介绍


aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MjMyMzIzNDQyNzUucG5n.png

aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MjMyMzI0MTI1MDUucG5n.png


6、参考资料


《Mastering ROS for Robotics Programming》

《ros by example vol 2》

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
5天前
|
传感器 XML 网络协议
ros2_control 6 自由度机械臂(上)
ros2_control 6 自由度机械臂(上)
37 7
|
算法 机器人 定位技术
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
1018 0
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
|
2月前
|
机器人 定位技术 C++
技术笔记:ROS中测试机器人里程计信息
技术笔记:ROS中测试机器人里程计信息
|
机器学习/深度学习 算法 Ubuntu
【ROS_Driver驱动真实UR机械臂】
【ROS_Driver驱动真实UR机械臂】
938 0
|
XML 人工智能 搜索推荐
ROS中阶笔记(六):机器人感知—机器语音
ROS中阶笔记(六):机器人感知—机器语音
524 0
ROS中阶笔记(六):机器人感知—机器语音
|
传感器 算法 机器人
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用(下)
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
595 0
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用(下)
|
算法 机器人 定位技术
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用(上)
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
575 0
ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用(上)
|
算法 机器人 Unix
ROS中阶笔记(五):机器人感知—机器视觉(下)
ROS中阶笔记(五):机器人感知—机器视觉
670 0
ROS中阶笔记(五):机器人感知—机器视觉(下)
|
存储 数据采集 传感器
ROS中阶笔记(五):机器人感知—机器视觉(上)
ROS中阶笔记(五):机器人感知—机器视觉
620 0
ROS中阶笔记(五):机器人感知—机器视觉(上)
|
传感器 安全 Ubuntu
ROS中阶笔记(十):ROS机器人综合应用
ROS中阶笔记(十):ROS机器人综合应用
392 0

推荐镜像

更多