一种机器人运动控制系统的制作方法
【技术领域】
[0001] 本发明涉及一种机器人运动控制交互软件,涉及机器人运动控制技术领域。
【背景技术】
[0002] 工业机器人是集机械、电子、控制、计算机、传感器、人工智能等多学科先进技术于 一体的现代制造业重要的自动化装备。机器人控制系统及其控制终端是机器人的重要组成 部分,多年来,通用的机器人控制系统一直是学者和各厂商的研宄课题,主要是由于缺少一 种通用的运动学解算器和轨迹规划器,所以机器人运动控制系统的发展一直受到限制;对 于机器人控制系统,国外一直处于垄断地位,国外厂商的控制系统及其控制终端一般只对 自由品牌的机器人有一定的兼容性,而对于其他机器人不具有通用性,其独有的设备配件 和高昂的维修费用让国内相关产业耗费了大量的人力与财力。而近年来,PMAC、M 〇VeIt!、 ROS等多项研宄成果使得通用机器人控制系统的实现成为可能。现有技术没有给出利用 PMAC、MoveIt !、ROS这些多项研宄成果的结合的机器人运动控制系统。
【发明内容】
[0003] 本发明的目的是提供一种机器人运动控制系统,以解决现有的机器人运动控制系 统存在通用性差、可扩展性差、系统的开放性差的问题。
[0004] 本发明为解决上述技术问题采取的技术方案是:
[0005] 一种机器人运动控制系统,所述系统包括控制终端子系统和服务器端子系统,
[0006] 控制终端子系统包括人机交互界面和工作线程模块,
[0007] 服务器端子系统包括指令解释器、ROS服务器和PMAC交互模块,
[0008]用户通过人机交互界面发出操作指令,利用工作线程模块将所述操作指令转化为 指令解释器可识别的指令并通过网络传递给指令解释器,
[0009] 指令解释器通过调用MoveIt !数据库将其接收的指令转化为关节路径命令并发 布在ROS服务器的节点上,PMAC交互模块接收ROS服务器传来的关节路径命令,通过PMAC 通信协议转化为PMC可识别的运动控制指令并通过网络传递给PMAC,从而实现对机器人 的运动控制;PMAC交互模块读取PMAC上的机器人关节状态信息,并反馈给ROS服务器,并 在人机交互界面中显示。
[0010] 所述人机交互界面为控制终端子系统和用户直接交互的界面,用于接收用户的操 作指令并传递给工作线程模块,其内容包括校准、手动操作、示教、再现、程序编辑、机器人 状态显示、PLC输入/输出控制、用户坐标系建立、文件浏览及系统维护功能。
[0011] 定义工作线程模块的工作方式为有限状态机,工作线程模块描述的用户操作模式 状态如下:
[0012] a)待机状态:在没有接受任何用户操作指令时,控制终端子系统为待机状态,不 发布任何指令;
[0013] b)手动操作模式:用户通过交互界面操作进入手动操作模式,并通过三维摇杆向 控制终端子系统输入操作指令,控制终端子系统通过解释三维摇杆的操作指令向ROS服务 器节点发布手动操作运动指令;该模式包含关节坐标系和笛卡尔坐标系;
[0014] c)再现模式:控制终端子系统在再现模式下将所存储的机器人程序(一系列指 令)按顺序逐条发布在ROS服务器节点上,使机器人可以按指令顺序自动运行,该模式可实 现对程序的一次再现、多次循环再现以及逐条再现;
[0015] d)校准模式:在该模式下,机器人各关节零位可被重置,用户机器人的标定工作;
[0016] e)控制指令模式:该模式下控制终端子系统可以向ROS服务器节点发布除运动指 令以外的指令:控制指令、PLC操作指令;
[0017] f)用户坐标系发布模式:在该模式下控制终端子系统可以向ROS服务器节点发布 用户自定义的坐标系信息;
[0018] g)三维摇杆调试模式:该模式下控制终端子系统可以重置三维摇杆的零位,从而 初始化三维摇杆;
[0019] 所述工作线程模块作为所述控制终端子系统的后台模块,按以下顺序循环运行:
[0020] 1)检测通信网络是否联通;
[0021] 2)订阅ROS服务器节点消息,其中包括PMAC交互模块状态、机器人关节状态、机器 人坐标系信息、三维摇杆操作信息、薄膜按键操作信息;
[0022] 3)解释所订阅的消息,其中PMAC交互模块状态被用于判断机器人运行状态、机器 人关节状态以角度形式向用户反馈、机器人坐标系信息以笛卡尔坐标系和欧拉角的形式向 用户反馈、将三维摇杆操作信息解释为用户对所操作的三个坐标轴或三个关节的运动速度 大小、将薄膜按键操作信息解释为执行相应控制功能;
[0023] 4)更新机器人信息,包括机器人坐标系信息、机器人关节状态信息、机器人运行状 态;
[0024] 5)利用工作线程模块检测用户操作模式状态,根据相应的用户操作模式状态向 ROS服务器发布节点消息,所述节点消息是指令解释器可识别的指令,包括运动指令、控制 指令、PLC操作指令;
[0025] 6)警告:控制终端子系统在该步骤下检测机器人关节位置信息,并限制机器人工 作空间,提醒用户在手动模式下不可操作机器人超出机器人工作空间。
[0026] 所述PMAC交互模块是一种有限状机,包括初始化状态、运动状态和停止状态;
[0027] 1)当所述PMAC交互模块运行在初始化状态时,将进入循环,不断更新机器人状 态,不会有任何操作,一旦接收到进入运动状态的指令时,PMAC交互模块会清除缓存、电机 使能,并使PMC进入P-T模式,然后进入运动状态;
[0028] 2)当所述PMAC交互模块进入运动状态时,如果没有检测到停止指令,将进入循 环,会接收由指令解释器计算出的关节路径命令,并通过插补运算计算出PMC运动轨迹, 发送给PMAC,如果收到停止指令,则PMAC交互模块会进入停止指令;
[0029] 3)当PMAC交互模块进入停止状态,等待3秒后重新进入初始化状态。
[0030] 本发明的有益效果是:
[0031] 本发明的控制终端子系统和服务器端子系统各自为独立计算机系统,通过以太网 建立局域网,其软件可基于ROS实现,具有较高的模块化程度和很强的通用性,可兼容多种 多自由度串联机器人。
[0032] 本发明中的PMC运动控制卡能提供较为便利的机器人应用接口:可以直接读取 机器人各关节轴的电机参数,同时通过以太网与上位机通信;可以对耦合的运动建立坐标 系,便于描述机械耦合、并联运动等机械耦合设计;可以进行样条插补运算,便于减小通信 带宽,避免引入不可预知错误。
[0033] 本发明中的MoveIt !是一种先进的软件包,集成了最新的运动规划、三维捕捉、 运动学控制以及导航算法,它为前沿机器人应用提供了便利的开发平台。通过建立一种"通 用机器人描述文件"(URDF),可以方便的描述机器人的运动学模型,并结合MoveIt !的运动 学相关算法实现机器人的运动轨迹规划。
[0034] 本发明中的ROS (Robot Operating System)又称机器人操作系统,是基于BSD开 源协议的操作系统级的软件,主要目标是满足代码复用的需求,致力于建立机器人行业标 准,有强制的模块化要求和明确的软件接口。通过机器人操作系统搭建的系统具有较强的 通用性,利用其良好的C/S(服务器/客户端)通信架构,不仅可以通过服务器向其他客户 及发送多种数据类型的消息,还可为客户机提供服务,满足多种通信需求。
[0035] 本发明所述的机器人控制系统基于可编程多轴运动控制器(PMC)和MoveIt !实 现对串联多自由度机器人的通用性。由于PMC可对机器人各关节进行运动控制,MoveIt ! (BSD协议)可以对机器人进行路径规划,该控制系统将二者结合,从而实现对大多数串联 机器人的控制。
[0036] 所述控制系统硬件包括一台工控机和一台控制终端,二者均为独立运行的计算机 系统,通过以太网组建成局域网进行通信。该系统采用服务器/客户端结构,控制系统主程 序运行于工控机,作为控制系统服务器,控制终端则作为客户端,运行用户界面交互软件, 并通过机器人操作系统(ROS)与控制系统服务器进行实时通信。
[0037] 本发明所述的机器人控制系统分别应用于六自由度磨抛机器人本体和生物采样 履带机器人的六自由度机械臂本体,同时也在虚拟环境中对ABB IRB244机器人和FANUC M430机器人成功进行了仿真,均可以实现对机器人的手动控制、示教、再现、插补等功能。
【附图说明】
[0038] 图1是本发明的流程框图,图2是机器人控制终端的结构框图。
【具体实施方式】
[0039] 如图1所示,本实施方式所述的机器人运动控制系统,包括控制终端子系统和服 务器端子系统,
[0040] 控制终端子系统包括人机交互界面和工作线程模块,
[0041] 服务器端子系统包括指令解释器、ROS服务器和PMAC交互模块,
[0042] 用户通过人机交互界面发出操作指令,利用工作线程模块将所述操作指令转化为 指令解释器可识别的指令并通过网络传递给指令解释器,
[0043] 指令解释器通过调用MoveIt !数据库将其接收的指令转化为关节路径命令并发 布在ROS服务器的节点上,PMAC交互模块接收ROS服务器传来的关节路径命令,通过PMAC 通信协议转化为PMC可识别的运动控制指令并通过网络传递给PMAC,从而实现对机器人 的运动控制;PMAC交互模块读取PMAC上的机器人关节状态信息,并反馈给ROS服务器,并 在人机交互界面中显示。
[0044] 所述人机交互界面为控制终端子系统和用户直接交互的界面,用于接收用户的操 作指令并传递给工作线程模块,其内容包括校准、手动操作、示教、再现、程序编辑、机器人 状态显示、PLC输入/输出控制、用户坐标系建立、文件浏览及系统维护功能。
[0045] 定义工作线程模块的工作方式为有限状态机,工作线程模块描述的用户操作模式 状态如下:
[0046] a)待机状态:在没有接受任何用户操作指令时,控制终端子系统为待机状态,不 发布任何指令;
[0047] b)手动操作模式:用户通过交互界面操作进入手动操作模式,并通过三维摇杆向 控制终端子系统输入操作指令,控制终端子系统通过解释三维摇杆的操作指令向ROS服务 器节点发布手动操作运动指令;该模式包含关节坐标系和笛卡尔坐标系;
[0048] c)再现模式:控制终端子系统在再现模式下将所存储的机器人程序(一系列指 令)按顺序逐条发布在ROS服务器节点上,使机器人可以按指令顺序自动运行,该模式可实 现对程序的一次再现、多次循环再现以及逐条再现;