APP下载

基于ROS 的基座机械臂建模与仿真

2021-08-23黄子豪牛启光李广栋

科学技术创新 2021年23期
关键词:配置文件基座建模

黄子豪 牛启光 李广栋

(山东科技大学,山东 济南 250031)

随着人工智能时代的到来,人们越来越看重机器人的工作效率和服务体验,由于当代工业的自动化程度不断提高,工程对机器人的需求和设计要求也越来越高,原有的开发系统已无法满足迅速发展的工业化需求,于是ROS 应运而生,ROS 机器人操作系统的出现大大加快了机器人技术的发展进程,提高了工业生产效率,促进了未来工业的自动化和智能化趋势。本文将研究基于ROS 的基座机械臂模型的建模与仿真,详细介绍了如何通过软件对机械臂的模型进行仿真和优化以及对其运动规划的研究。

1 ROS 操作系统

ROS(Robot Operating System)源自斯坦福大学的机器人项目,目前作为一个开源的机器人开发项目由OSRF 公司维护。ROS 可以被称为一个操作系统,用来管理和开发机器人项目的硬件和软件资源,并被用来提供一些常用或个性化的服务,支持使用URDF 模型+机器人驱动的方式来封装机器人。

ROS 使用Node 节点的方法实现程序间的通讯,项目中的各个Node 通过预先准备发布的Message 消息、Topic 主题、Action 动作建立通讯,是以一种发布/订阅的方式进行消息的传递,节点可以在预设的主题中发布消息, 同时其他节点可以订阅该主题的消息,实现消息的传递,但双方节点互不相通,这种模块化的通讯模式较为简洁灵活,便于信息的发布和接收,图1。

图1 ROS 通讯机制

2 基座机械臂三维建模

部分开发者不具备对机械臂的实体模型进行研究的条件,受制于实体机械臂的开发成本等原因,而且初期在对基座机械臂的研究和开发的过程中,会遇到大量的问题以及参数上的修改变化,调试起来较为复杂, 所以本文选择使用软件进行机械臂的仿真操作,利用SolidWorks 三维建模软件根据机械臂的设计图建立机械臂的三维模型,最后生成URDF 文件进行软件的仿真。

本文采用自顶向下的建模方法,首先根据基座机械臂的设计工程草图,确定各零件关节之间的几何关系和参考坐标,实现各相关零件的结构组合,当对某个零件进行改动时,与其相关的其他部位也随之更新,便于后续的整体设计。

模型设计并生成后,利用solidworks2urdf 插件进行三维模型的解析,此时可观察到机械臂的3D 模型的装配图(图2),也可根据关节的几何关系,设置关节自由度和父子关节的位置参数等,为使其更加直观的显示,还可为模型添加坐标系和基准轴,最后生成相应的URDF 文件,用于后续的Gazebo 软件仿真。

图2 基座机械臂的3D 模型图

3 基座机械臂的软件仿真

Gazebo 是作为一款成熟且开源的三维物理仿真平台, 具备丰富的编程和图形处理模块、高效强大的物理引擎、高性能的三维图形渲染功能。Gazebo 可创建一个虚拟的可视化仿真环境,开发者可自主创建一个机械臂的模型(图3),并在模型中设置机械臂的质量、摩擦系数等物理属性,在这个仿真环境中可以模拟真实机器人的运动功能和传感数据,将参数数据收集后与Rviz 配合使用,效果更好。

图3 机械臂的Gazebo 仿真模型

使用Gazebo 软件进行仿真相比直接对硬件操作较为灵活,参数调整方便,运行速度快且耗费成本较低,缺点是与实际数据可能存在一定误差,准确性相比硬件操作低。

4 基座机械臂模型的优化

URDF 建模生成的文件较为繁杂冗余,代码可读性不高,我们可在URDF 模型的基础上进行优化,通过xacro 中的宏定义、文件包含的精简,编写可供重复使用的接口,降低文件的复杂度,提高代码的简洁性和复用性,实现对URDF 文件的优化。

所做优化如下:

5 机械臂的运动规划

在Gazebo 中进行仿真的过程中, 如果需要对机械臂模型进行运动规划和控制,可选择使用MoveIt 来实现。

MoveIt! 是一个机器人相关的工具集软件, 其中包含了运动规划、3D 感知、运动学控制、碰撞检测、机器人导航等多种集成库,以move_group 为核心节点控制ROS 机器人的动作,move_group 拥有着多个编程接口,如C++、Python、GUI。MoveIt 为开发者提供了一个接口丰富便于上手的平台, 用于机器人的运动控制部分设计和开发,可打包生成Gazebo 仿真中所需的相关配置文件,后期只需开发者修改相关参数来对机器人的运动进行控制,具有便利性和代码复用性,同时装配有多种运动辅助插件,提高了程序的可扩展性。

首先通过MoveIt Setup Assistant 生成配置文件,它为机器人生成SRDF 文件和MoveIt 管道的配置文件, 用户可在其中配置碰撞免检矩阵(ACM)、增加虚拟关节节点、添加规划群组、固定机器人姿态、末端标签执行器、增加被动关节节点,最后导出配置文件。

接下来通过move_group 提供的编程接口,根据开发的需要,编写运动规划部分的代码, 本文主要实现点到点的简单直线运动,故可选择使用笛卡尔路径规划,使用C++编写API 接口,部分代码如下:

笛卡尔路径规划:

6 结论

本文研究并实现了基于ROS 的基座机械臂的建模与软件仿真,并对模型进行了优化,提高了代码的简洁性和复用性,便于后续使用MoveIt 工具进行机械臂的运动规划, 并实现了对机械臂运动的笛卡尔路径规划, 通过较为简单的例子介绍了如何使用ROS 进行机器人的开发,适用于初学者对ROS 开发的探索与研究,同时希望ROS 系统继续完善和优化,持续不断地为机器人事业做出贡献。

猜你喜欢

配置文件基座建模
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
基于FLUENT的下击暴流三维风场建模
猴子优先
基于NXnastran的异步电动机基座有限元强度分析
从Windows 10中删除所有网络配置文件
猴子优先
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
用软件处理Windows沙盒配置文件
求距求值方程建模
互不干涉混用Chromium Edge