当前位置:   article > 正文

linux虚拟仿真软件,基于虚拟仿真与Linux操作系统的机器人硬实时控制系统的制作方法...

浮游生物在线监测系统 软件linux仿真

043d5816bdaaa47772c36679723c0438.gif

本发明属于机器人控制技术领域,尤其是一种基于虚拟仿真与Linux操作系统的机器人硬实时控制系统。

背景技术:

目前,虚拟现实技术是仿真技术的一个重要方向,运用于生产生活等诸多领域,特别是机器人技术和虚拟仿真技术的结合,提供了建设性的指导经验。虚拟现实技术可以模拟实时动态的环境以及三维实体,通过搭建虚拟场景,模拟实际生产中工业机器人的具体位姿和运动轨迹,设计虚拟场景的交互界面,实现仿真系统的控制与监控。将机器人技术和虚拟现实技术相结合是当今科技革新的热点之一。

实时系统是能够在确定的时间内执行计算或处理事务并对外部事件做出响应的计算机系统。实时性对于机器人尤其是远程控制机器人的研究具有重要意义,目前机器人实时控制系统主要有RTOS+Linux双系统、VxWorks操作系统等。RTOS+Linux双系统需要额外设计系统间的通讯,开发及调试的难度比较高,VxWorks技术成熟,广泛运用于航空、军事等高端领域,但成本昂贵。

技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种设计合理、实时性强且准确可靠的基于虚拟仿真与Linux操作系统的机器人硬实时控制系统。

本发明解决其技术问题是采取以下技术方案实现的:

一种基于虚拟仿真与Linux操作系统的机器人硬实时控制系统,包括Unity3D虚拟仿真系统、Linux系统工控机和伺服电机驱动器,所述Unity3D虚拟仿真系统通过Socket网络与Linux系统工控机相连接进行数据通信,所述Linux系统工控机通过CAN网络与伺服电机驱动器进行数据通信,该Linux系统工控机采用Xenomai内核补丁对Linux内核实时扩展的Linux实时操作系统。

所述Unity3D虚拟仿真系统包括:通过Socket网络通信Udp协议搭建的指令发送模块与数据接收模块、控制机器人各种运动模式的指令计算模块、显示机器人当前运动状态的三维显示模块以及显示机器人各关节当前工作状态的数据显示模块。

所述Unity3D虚拟仿真系统通过无线路由器与Linux系统工控机相连接。

所述Linux系统工控机包括安装在工控机上的多个CAN卡、ADAM数据采集卡、Linux实时操作系统以及硬实时控制系统;所述多个CAN卡通过CAN网络与伺服电机驱动器相连接;所述ADAM数据采集卡通过RS485总线与外部传感器相连接。

所述外部传感器为接近开关和磁导航传感器。

所述硬实时控制系统包括通过Socket网络通信Udp协议实现的机器人与移动平台的运动指令接收模块和机器人与移动平台工作数据反馈模块、采集传感器数据模块、机器人与运动平台的伺服电机的运动参数计算模块、通过Xenomai内核调用RTDM的上层接口与实时驱动

模块rtcan创建CAN卡与伺服电机的通信连接模块。

所述伺服电机驱动器与机器人上的伺服电机相连接。

所述机器人上的伺服电机包括机器人手臂上的伺服电机以及移动平台轮胎上的伺服电机。

所述伺服电机采用支持CanOpen协议的伺服电机。

本发明的优点和积极效果是:

1、本发明以Unity虚拟仿真系统作为上位机,以Linux系统工控机作为下位机,使用UDP通讯协议进行上位机和下位机的数据传输,通过Can总线实现下位机与伺服电机的通讯,从而实现远程控制机器人的工作状态与运动功能,并根据数据反馈有效监测机器人实时运动姿态。通过仿真模拟能够进行运动功能模拟,保证了检测运动规划的正确性以及机器人运动的强实时性,具有成本低、扩展性好的优点。

2、本发明的linux系统工控机使用Xenomai对Linux系统进行内核扩展,使Linux系统能用于强实时应用,使用Xenomai的实时驱动模块控制CAN卡,保证了机器人运动的强实时性。Xenomai与Linux是开源系统,免费且可在社区获得很多支持。

3、本发明的linux系统工控机使用多个CAN卡,将各伺服电机分置于不同的CAN卡下,减少单个CAN卡下的伺服电机数量,缩短了同一CAN通道各节点之间的通信等待时间,缩短任务运行周期,使机器人运动更准确。

附图说明

图1是本发明的系统连接框图;

图2是本发明的控制流程图。

具体实施方式

以下结合附图对本发明实施例做进一步详述。

本发明的设计思想是:

(1)本系统在Unity虚拟仿真系统中使用Unity3D软件搭建机器人的虚拟仿真场景,设计机器人运动的不同模式以及虚拟仿真场景中相应的控制功能。将虚拟仿真场景连接无线路由器,通过Udp网络通信远程发送控制指令,并接收机器人的反馈数据,使场景中的模型同步反映机器人的运动状态,实现机器人控制系统对机器人的远程控制与监测。

(2)实时操作系统是指系统在执行任务时具有可预测的响应时间。由于Linux操作系统为非实时操作系统,因此,本发明使用Xenomai内核补丁对Linux操作系统进行实时内核扩展。Xenomai内核本身提供的一系列多任务调度机制,通过Xenomai内核调用RTDM的上层接口与实时驱动模块rtcan创建CAN卡与伺服电机的通信连接。计算Udp网络通信、传感器数据采集、机器人运动学与伺服电机当前运动角度插值计算等任务运行周期,使用Xenomai任务管理服务创建并设置任务运行周期。

基于上述设计思想,本发明基于虚拟仿真与Linux操作系统的机器人硬实时控制系统,如图1及图2所示,包括Unity3D虚拟仿真系统、Linux系统工控机和伺服电机驱动器,Unity3D虚拟仿真系统与Linux系统工控机通过Socket网络进行数据通信,Linux系统工控机与伺服电机驱动器进行数据通信。下面对系统的各个部分分别进行说明:

(1)所述Unity3D虚拟仿真系统包括:通过Socket网络通信Udp协议搭建的指令发送模块与数据接收模块,控制机器人各种运96式的指令计算模块,显示机器人当前运动状态的三维显示模块,显示机器人各关节当前工作状态的数据显示模块。

Unity3D虚拟仿真平台中设计出控制机器人的运动的各种模式,通过Socket网络通信Udp协议,使用指令发送模块将机器人与移动平台的运动指令发送至Linux系统工控机。

Unity3D虚拟仿真平台通过Socket网络通信数据接收模块接收当前伺服电机运动信息,将状态、电流等各关节信息在数据显示模块上显示,并通过三维显示模块显示当前机器人的运动姿态,实现虚拟仿真对机器人的远程控制与监测。

(2)Linux系统工控机包括安装在工控机上的多个CAN卡、ADAM数据采集卡以及安装在工控机上的Linux实时操作系统以及硬实时控制系统。下面分别进行说明:

本发明使用了多个CAN卡并与伺服电机驱动器相连接。一个CAN卡最多可接127个节点,但是,由于节点与节点之间响应时间较长,因此将机器人的伺服电机与移动平台的伺服电机分置于不同的CAN通道下,使同一CAN卡下的节点数不多于4个,缩短整个系统的任务运行周期。本发明将CAN卡与伺服电机驱动器相连,同一个CAN卡下驱动器之间串联。机器人手臂与移动平台轮胎的伺服电机模式不同,将轮胎伺服电机设置为速度模式,机械臂伺服电机设置为目标位置模式,使用SDO进行各电机工作状态的控制,在驱动器为其配置相应的RPDO与TPDO传输运动数据,控制伺服电机完成目标任务。CAN卡通过RPDO发送伺服电机状态与位置的期望值,通过TPDO接收伺服电机当前状态、位置或速度、电流等信息。ADAM数据采集模块通过RS-485总线接收外部传感器数据,外部传感器数据包括安装在机器人的接近开关、磁导航传感器等。

Linux实时操作系统为使用Xenomai内核补丁对Linux内核实时扩展的Linux操作系统。Xenomai内核补丁采用双内核机制,Xenomai内核处理实时任务,Linux内核处理非实时任务,实现Linux系统的硬实时功能。

硬实时控制系统包括通过Socket网络通信Udp协议实现的机器人与移动平台的运动指令接收模块和机器人与移动平台工作数据反馈模块、采集传感器数据模块、机器人与运动平台的伺服电机的运动参数计算模块、通过Xenomai内核调用RTDM的上层接口与实时驱动模块rtcan创建CAN卡与伺服电机的通信连接模块。

Linux系统工控机将运动参数计算模块计算的伺服电机的运动参数通过通信连接模块传至伺服电机驱动器。Linux系统工控机通过通信连接模块接收伺服电机信息,并将伺服电机信息应用于下一周期计算过程。Linux系统工控机通过机器人与移动平台工作数据反馈模块发送至Unity3D虚拟仿真平台。

(3)所述伺服电机驱动器用于驱动伺服电机运动,并将伺服电机当前状态、位置或速度、电流等信息通过CAN总线反馈至Linux工控机。

伺服电机驱动器与机器人上的伺服电机相连接,由Linux系统工控机监控机器人的工作状态与运动功能。机器人上的伺服电机采用支持CanOpen协议的伺服电机。

本发明未述及之处适用于现有技术。

要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/997966
推荐阅读
相关标签
  

闽ICP备14008679号