APP下载

基于ROS的远程呈现移动机器人系统设计

2019-09-27张华健

制造业自动化 2019年9期
关键词:PC机工控机移动机器人

张华健,钱 钧

ZHANG Hua-jian,QIAN Jun

(合肥工业大学,合肥 230009)

0 引言

在机器人和互联网的高速发展中,远程呈现技术[1]正在不断改变我们的生活方式,广泛应用于安防、医疗、教育、实时监控、远程会议等领域。远程呈现移动机器人[2]是一个集成了视频通信和遥控功能的移动的机器人,用户可以通过视频通信功能与他人通信,并通过遥控功能控制机器人的行走和其他动作,来达到替代人物虚拟出场的目的。在众多的移动机器人的研究中,如Cambridge公司推出的VGO机器人[3]、上海交大医学院的艾菲仕医疗服务机器人[4]等,虽然这些机器人功能强大,但价格昂贵,在代码的复用性和移植性方面表现得比较差,不利于二次开发和维护。

针对这些不足,本研究以机器人操作系统(ROS)[5]为软件平台,搭建一款低成本、高性能、开源的远程呈现移动机器人平台,并实现其软、硬件系统设计。

1 移动机器人硬件系统设计

1.1 本体设计

为了便于设计、安装和维护,结合模块化设计思想,移动机器人采用三轮机构,其中,前轮为主动轮,采用独立驱动和转向机构于一体的结构方式,后轮使用两个固定从动轮。主动轮集成了独立驱动、转向和减震的功能。同时,通过2个增量式编码器可实时测得驱动轮的驱动速度和转向角度。下位机为Beaglebone Black开源控制器;上位机包括装有ROS和Ubuntu系统的工控机和作为远程控制平台的可联网PC机和遥杆,可实现远程呈现和控制。机器人系统组成如图1所示。

图1 移动机器人系统组成

1.2 运动学模型

本研究的移动机器人运动学模型如图2所示。

图2 运动学模型

以移动机器人的两后轮中心连线的中点O1作为参考点,结合文献[6]和文献[7]可将运动学模型描述为:

由此可知,只要知道移动机器人的初始位姿,就可通过递推求得任意时刻移动机器人的位姿。

1.3 硬件系统

移动机器人的硬件系统主要由上位机和下位机两部分组成,其硬件系统框图如图3所示。

图3 硬件系统框图

上位机使用工控机和PC机,工控机装有Ubuntu操作系统和机器人操作系统(ROS),负责人机交互,便于进行传感器数据采集与处理、机器人控制和软件集成,同时,通过Kinect[8]视觉传感器和单目摄像头实现环境感知能力;PC机主要实现远程控制和获取机器人的临场环境,采用任意可联网的笔记本电脑即可。下位机主要由主控制器、驱动模块、传感器模块和电源模块组成。主控制器采用基于ARM-Cortex A8内核的嵌入式处理器BeagleBone Black[9],主要负责控制指令的执行和部分传感器数据的采集;驱动模块由MAXON RE40直流伺服电机和ELMO的SimplIQ系列的驱动器组成;传感器模块由安装在同步带轮的增量式旋转编码器和倍加福的 UB4000-F42-U-V15系列的超声波传感器组成。

2 移动机器人软件系统设计

移动机器人平台软件系统设计的好坏关系到移动机器人能否正常实现其功能,以及运行的稳定性、实时性和鲁棒性等[10]。如图4所示,整个软件系统可分为上位机和下位机。上位机软件系统包括PC和工控机,其中工控机软件系统是在Ubuntu环境下,基于ROS框架搭建,具有运动决策、图像处理、数据处理等功能,PC作远程呈现和控制;下位机通过SOCKET与上位机通信,主要接收运动指令和发送相关传感器数据,包括电机驱动、超声波和编码器数据获取和传输。

图4 软件系统框图

2.1 上位机软件设计

上位机中主要由PC机和工控机组成。工控机主要用于运动决策、图像处理、数据处理;PC机与工控机通信后获取图像信息,用于远程呈现和控制。软件设计框架如图5所示。

在运动决策中,考虑到移动机器人安全问题,初步采用2个超声波传感器进行避障,由于超声波的采样频率比较低,当速度超过0.4m/s时,就无法进行实时的避障,结合Kinect摄像头的深度信息和超声波数据,进行分级减速,即可达到避障目的。其设计流程如图6所示。

图5 上位机软件框架

图6 避障流程图

2.2 下位机软件设计

下位机主要用来接收运动指令和传递编码器、超声波数据。BeagleBone Black(BBB)控制器具有ADC、UART、I2C、SPI、PWM、GPIO等接口,这得BBB在机器人控制方面有很大优势,拟采用BBB作为下位机控制电机和传感器数据采集的设备。由于BBB内部装有Debian系统,为了合理利用资源、程序的可扩展性和减少数据传输的延时误差,采用线程的方式进行软件设计。主线程主要运行套接字通讯程序,发送和接收相关数据、指令;4个子线程主要用作超声波数据的采集和发送、编码器数据的采集和发送、转向电机控制和驱动电机控制。

由于本文设计的模块化车轮结构上具有耦合,当存在转向时,需要进行速度补偿来消除这种耦合现象,其公式如式(3)所示。本研究采用脉冲控制方式,占空比始终为50%,其中b为转向指令,DP为驱动脉冲周期,TP为转向脉冲周期,DP'为速度补偿后的驱动脉冲周期。

3 远程呈现与控制

远程图像传输与控制是远程呈现移动机器人的一项基本功能[11]。简单的方法是采用双ROS之间的通信机制来实现PC与工控机之间通信,该方法只需简单的配置即可实现通信,但该方法局限于两台电脑都要装有ROS和Linux系统,且需在同一局域网内才能实现通信。针对这类局限性,本文采用蒲公英VPN第三方软件构建异地虚拟局域网,实现不同局域网内移动机器人的远程呈现和控制。

在图像传输和运动指令收发中,采用C/S通信模式。服务器端和远程客户端均采用线程方式发送和接收数据。在图像传输中,自定义传输类型,包括校验码、每秒帧数、图像分辨率、图像质量等,这样可避免图像接收过程中的数据发生紊乱。

服务器端程序设计如图7所示,其中,图像传输线程主要通过OpenCV模块进行摄像头数据采集,以每秒24帧、分辨率调到640×480,则摄像头传输视频所需要的速率为1.2Mbps,为减小数据传输量,将压缩成JPEG格式[12],然后按照自定义的传输类型进行打包编码传输;指令收发线程接收运动指令,在ROS中转化为自定义消息类型,然后利用“话题”的方式发布出去。远程客户端程序和服务器端类似,图像传输线程主要接收图像信息,解包、解码后利用OpenCV播放;指令发送线程利用Pygame模块获取摇杆数据,经处理后发送给服务器端。

图7 服务器端程序设计流程图

4 移动机器人实验

本文设计的移动机器人主要实现其远程呈现和控制。将工控机和Beaglebone Black控制器连接同一个局域网,PC机连接4G网(保证PC与工控机在不同局域网内),工控机和PC机上分别运行同一账号的蒲公英VPN软件后,在Beaglebone Black控制器运行下位机程序,工控机中通过ROS启动所有节点和服务器端程序,PC机中运行远程客户端程序,即可实现远程呈现和控制。

4.1 避障测试实验

在进行移动机器人避障实验中,采用Kinect的深度摄像头,如图8所示,对深度信息进行图像处理后,当检测到1m范围内有障碍物信息并且障碍物面积达到给定值后,通过ROS生成一个指令消息并发送出去,在基于ROS的运动决策程序中,结合Kinect深度信息和超声波数据实现相应的避障决策。实验测得,结合Kinect和超声波基本可实现实时避障。

图8 深度摄像头测得障碍物轮廓

4.2 指令延时测试实验

本研究中的一个运动指令包括转向、驱动和运动触发3个参数,这3个参数由遥杆的两个轴和一个按钮组成。当一个运动指令从遥杆发送出去时,各参数从发布到底层控制器接收所需要的时间主要包括远程PC机与工控机以及工控机与底层控制器(BBB)之间指令传输时间。利用时间戳的方式,编写一段测试程序,测出20次这两段时间内一个指令发布的延时时间,结果如图9所示。由于在数据传输过程中网络具有较大的波动,图中显示数据传输延时时高时低,可知一个指令发布最多需要53ms时间,基本满足要求。

图9 指令发布延时

4.3 图像传输实时性测试实验

本研究的图像传输产生延时的环节包括:视频采集与编码、发送给远程客户端的传输、远程客户端的播放。其中,延时消耗最大的是视频采集与编码和远程客户端播放2个环节,它们都涉及到编码、解码部分;至于发送给给远程客户端的传输过程属于网络数据转发与传输部分,耗时比较小,主要与网络质量和程序有关,可采用TCP丢帧的方式减少长期的延时。采用精确到毫秒的计时器,测量在局域网内图像传输过程中的延时问题。结果如图10所示。由于网络波动影响,图像传输延时在100ms~600ms之间,满足视频传输要求,能进行基本的双向互动。不同局域网内,由于网络带宽和波动影响,测得图像传输延时约为2s,仅适合单向观看。

图10 图像传输延时

5 结语

本研究结合Linux系统和开源机器人操作系统ROS,设计了一个低成本、可扩展、高性能的开源移动机器人。该移动机器人在同一局域网内可实现低延时的远程图像传输和控制,同时结合超声波传感器和Kinect深度信息实现实时的避障。后续将在不同局域网内,针对降低图像传输延时问题进行深一步的研究。

猜你喜欢

PC机工控机移动机器人
移动机器人自主动态避障方法
定制工控机在老旧线路计算机联锁设备中的应用
基于改进强化学习的移动机器人路径规划方法
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
基于Twincat的移动机器人制孔系统
基于双工控机模式的混合车道系统设备控制的设计与实现
用VC++实现PC机与单片机的串行通信
VC.NET下实现dsPIC单片机与PC机的通信
基于单片机与PC机的电气量采集系统设计
印刷网络化解决方案中工控机系统的设计与实现