APP下载

一种跨平台多通道人机交互控制系统设计

2017-07-01樊嘉欣丑武胜汪名飞北京航空航天大学机械工程及自动化学院机器人研究所北京100191

组合机床与自动化加工技术 2017年4期
关键词:服务器端位姿客户端

樊嘉欣,丑武胜,汪名飞(北京航空航天大学机械工程及自动化学院机器人研究所,北京100191)

一种跨平台多通道人机交互控制系统设计

樊嘉欣,丑武胜,汪名飞
(北京航空航天大学机械工程及自动化学院机器人研究所,北京100191)

针对一种核环境移动机器人控制的特殊需求,在分析了ROS系统架构后,提出了ROS机器人应用程序的基本架构,基于此架构设计了基于Linux和Windows系统跨平台多通道遥操作交互控制系统。实现了对机器人作业机械臂带力反馈的主从控制,对移动底盘的自主控制、手动控制、语音控制。详细说明了交互系统的设计实现过程。通过对客户端系统机器人交互模型的正确性和服务器端系统正确性进行了仿真验证,最后通过综合实验证明整个交互系统的正确性和友好性,结果表明操作者可通过本地渲染的虚拟场景和远端机器人反馈的多路视频信息和机器人本体的状态信息对机器人工作状态做出正确判断和新的规划,很好地完成作业任务。

移动机器人;ROS;多通道;跨平台;仿真环境;人机交互

0 引言

本文旨在设计一种适用于核环境下移动救援机器人的交互控制系统,受限于目前移动机器人的智能化水平限制,能在核环境下完全自主工作的移动救援机器人实现起来非常困难,本文采用直接控制式[1]的机器人遥操作方式来实现对救援机器人的控制。将整个救援机器人控制系统划分为客户端和服务器端,进行独立设计。服务器程序是在Windows平台使用VC6.0集成开发环境设计。客户端程序是基于Linux上的ROS开发,ROS是机器人操作系统(robot operating system)的简称,提供类似操作系统的功能,比如硬件抽象、底层IO控制、进程间通信、文件管理等功能,并提供了相当丰富的优秀算法库。ROS提供了一个机器人编程框架,目前仅支持类Unix操作系统,ROS所有的软件在Ubuntu系统上能得到非常好的支持[2-3]。为开发交互式的机器人控制系统,之前的工作大都基于基本的图形库,如OpenGL等按照计算机图形学基本规则建立可视化场景,这种工作方式效率较低。本文结合ROS系统提供的可视化功能和ROS简单易用的特性来设计客户端系统。

本文先对ROS计算图级的概念进行分析,提出基于ROS的机器人应用程序的基本框架。在这种框架下,开发移动机器人的客户端交互系统;在Windows平台开发服务器端程序。以实现一种简单和交互友好的核环境移动机器人交互控制系统。

1 ROS计算图级的概念分析

ROS计算图级应用程序是一个分布式网络,网络由主控(Master)、参数服务器(Parameter Server)、节点(nodes)、消息(messages)、服务(services)、话题(topics)等组成[4]。ROS通过这些基本单元完成计算。ROS将整个机器人控制系统划分为多个分布节点,节点在Linux操作系统中等价于多个进程。这些进程通过进程间通信的方式实现了任务间的协作[5],本文依照ROS计算图级的概念设计机器人控制系统。

ROS应用程序基本框架如图1所示。

图1 ROS应用程序基本框架

对ROS计算图级的概念进行剖析,得到如图1所示ROS应用程序基本框架。程序由许多节点(Nodes)组成,这些节点(Nodes)通过主控(Master)相互连接,通过话题(Topics)完成异步通信。

Rviz节点是ROS中的交互节点,提供了很多数据的可视化,比如机器人模型、地图信息、图像信息等。ROS利用XML格式的文件(*.URDF)来建立机器人统一描述符(Unified Robot Description Format)。本文先获取移动机器人的URDF模型,并在Rviz中做可视化,为机器人遥操作提供了一个虚拟的场景。关于如何获取机器人URDF文件,可参阅文献[6]。在ROS中,机器人描述文件是作为参数保留在参数服务器上的,Rviz节点通过访问参数服务器获取机器人描述文件来显示机器人模型[7],Rviz通过坐标变换库(tf)[8]根据机器人关节角信息实时更新机器人模型在Rviz中的状态。用户程序通过ROS接口可与虚拟机器人交互。

2 控制系统的功能划分和设计

本文所描述机器人系统包括服务器端的被控对象以及客户端的人机交互设备,如图2、图3所示。

被控对象由全向移动平台、6-DOF作业机械臂和5-DOF视觉巡检机械臂组成。

对移动平台采用速度模式来控制,通过多种方式给出沿x,y,θ三个方向的控制指令,如语音控制、控制台控制、自动导航控制等根据移动平台的运动学模型将三个方向的速度指令映射到四个独立驱动的车轮转速上,通过多轴运动控制卡IMAC协调控制可实现移动平台在平面内任意方位的移动控制。

对作业机械臂和视觉巡检机械臂的控制策略相同,通过给出末端位姿矩阵,通过运动学反解将笛卡尔空间位姿信息映射到关节空间,通过多轴运动控制卡实现联动控制。其中作业机械臂的末端位姿矩阵是通过一个7-DOF的冗余机械臂通过捕捉人体右手臂的位姿输入给出;视觉巡检机械臂的末端位置矩阵指令是通过三自由度摇杆给出。

人机交互设备由7-DOF可穿戴式机械臂、语音控制模块、主机和双屏显示的控制台组成。

图2 客户端组成

图3 服务器端组成

2.1 客户端控制系统设计

客户端系统软件完成语音模块、控制面板信息采集、指令提取以及主控制手各个关节信息的采集和运动学正解、控制指令的发送、服务器端视频信息和机器人本体状态的接收以及提供交互界面等任务。为了简化客户端主机接线的复杂性,本文采用嵌入式系统收集和协调各个交互设备的工作,整个客户端系统接线如图4所示。语音模块将采集到的语音信号转换为对应文本通过串口发给主控制板;控制面板采集多个按钮和摇杆信息通过串口发送给主控制板;主控制手7个驱动器节点和主控制板通过CAN总线相连,实现主控制手关节位置速度信息采集和反馈力输入;主控制板将采集到的信息编码后发送给主机,同时接收主机的反馈力指令,实现主控制手的力信号传输。

图4 客户端设备连接图

机器人客户端程序基于ROS应用程序基本框架设计,程序由众多功能相对独立的节点组成,整个应用程序为一种分布式状态。程序节点如图5所示。节点的功能分别为:

Serial:与UART2USB接口直接通信的节点,负责读取硬件数据流发送给Decoder,并接收Force节点的反馈力信号。

Decoder:接收Serial的数据流,解析数据或指令,如车体控制指令、车体控制模式(自动、手动、语音)、主控制手关节角度和速度等。将指令发送给Socket;将主控制手各个关节位置信息发送给Master和Force。

Master:根据收到的关节位置信息解算出主控制手正运动学解,将末端矩阵T发送给Socket。

Force:根据收到的主控制手关节位置和反馈力信号,求取主控制手雅可比矩阵J,根据J和反馈力计算各个主控制手各个关节力矩信号并发送给硬件接口节点Serial。

Socket:实现客户端和服务器的数据交换。具体为编码并发送控制指令;接收反馈信息并发布。此节点的实现与其他节点稍微不同。因为该节点是ROS系统与外接通信的接口,目前,ROS并没有实现支持Windows平台的软件集,为实现与服务器的通信,本文采用套接字系统调用来实现此种目的,套接字实现了运行在不同主机上的进程之间的数据传递[9]。此节点作为网络通信中的客户端,这与本文的人机交互系统的客户端不同。

JointState:接收反馈的机器人各个关节信息并发布到系统节点robot_state_publisher求取机器人所有相邻连杆坐标变换矩阵。

Rviz:从参数服务器读取读取机器人模型,通过从/tf话题读取机器人坐标变换矩阵,实时渲染机器人在虚拟场景中的姿态。

图5 客户端应用程序节点图

由于图像数据量大,占用网络带宽大,为了不影响机器人控制指令发送和状态反馈的实时性,图像信息回传不经过Socket节点,而是通过图传直接把服务器端的图像信息传回。在客户端我们通过图像采集卡将图像采集到主机里,然后发布在系统节点Image_view上,可以实现视频监控。

这种图像与控制指令独立传输的方法既保证了控制的实时性,也保证了遥操作信息的完备性,在工程应用中,具有非常实用的价值。

2.2 服务器端控制系统设计

服务器端控制软件基于Windows平台VC6.0开发环境用C++语言开发。服务器端主要包括移动平台、作业机械臂及末端执行器、巡检机械臂控制系统;电磁导航系统;环境信息感知与采集系统和视频信息采集传输系统,整个服务器端系统连接如图6所示。

图6 服务器端设备连接图

服务器端程序主要是接收客户端发送的控制指令,实现作业机械臂和视觉巡检机械臂运动控制、移动平台电磁导航算法,控制和协调整个系统工作并能够实时地把机器人工作环境信息和自身状态信息反馈给客户端。由于机器人系统各个模块功能相对独立,因此可根据硬件模块来划分软件模块,根据多线程编程思想,将软件划分为多个模块。软件流程如图7所示。

图7 服务器端应用程序流程图

3 客户端和服务器端程序仿真验证

3.1 客户端程序

客户端程序的正确性主要体现在机器人模型是否能正确反应机器人真实工作状态。机器人模型的正确性关乎到整个机器人系统控制能否正确工作。建立了基于ROS的移动机器人客户端程序后,本节通过ROS提供的强大的模拟功能,本文以作业机械臂为例,通过机械臂轨迹规划验证客户端程序中机器人模型建立的正确性。

通过指定机械臂末端执行器在笛卡尔空间的两个位姿,如图8所示,绿色表示起点位姿,黄色表示终点位姿。ROS中moveIt!模块会根据当前机械臂状态和环境约束规划出一条带时间戳的无碰撞轨迹,ROS将此轨迹发送给Arbotix[10]虚拟的多关节轨迹控制器,基于插值算法,计算出各个关节插值曲线yi=f(ti)(i= 1,2,3,…,6),并发送给对应关节控制器执行。观察图9可知,机械臂从初始位姿到达水平位姿时,各个关节同时开始运动,按照匀速规律历经3s到达终点,同时发现关节2的运动速度最大。

图8 机械臂轨迹规划图

图9 机械臂从零位到水平位置时关节的变化

通过仿真图可以看到机械臂动作序列按照我们预期的路径从起点走到终点,这说明机器人模型建立是正确的,能正确地在虚拟场景中反应机器人真实的工作状态。

3.2 服务器程序

服务器端程序完成对客户端推送的消息进行解析,获得控制指令来控制作业机械臂笛卡尔空间位姿及末端执行器夹角、视觉巡检机械臂笛卡尔空间位姿和移动平台的平面运动速度。作业机械臂和巡检机械臂的控制程序是类似的。以作业机械臂为例,本文通过MATLAB robotics_toolbox对作业机械臂运动学模型进行验证,根据给定关节角计算出机械臂末端位姿,和理论情况进行对比,发现两者的结论是相同的。对于电磁导航算法,通过由程序生成电磁信号传感器数据,通过可视化的方式来验证导航算法的正确性。

图10 导航算法的模拟验证

由图10所示可知,移动平台能按照设定的“凹”形电磁线运动,说明导航算法的设计是正确的。

4 系统交互友好性验证

在通过对客户端和服务器端程序功能正确性验证之后,本节在自制的演示平台上通过控制主控制手对作业机械臂遥操作来完成插拔电源的作业任务来验证人机交互功能的正确性和友好性。

图11显示完全通过在客户端观看由服务器端回传的视频和机器人状态信息,通过控制台将移动平台移动到作业位置,远程操作作业机械臂插拔电源过程。操作者通过观看回传的实时视频和虚拟场景中的机器人状态和反馈力信号综合做出判断,操纵主控制手下发控制指来控制作业机械臂移动。实验证明在操作者熟练的情况下,基本能保证在45s以内完成作业任务。在较短的时间内能够移动机器人到指定位置并完成作业任务,说明系统的正确性和友好性。

图11 遥操作插拔电源过程

5 结论

本文通过核环境移动机器人控制需求的特殊性,设计了移动机器人多通道人机交互控制系统。在Linux平台基于ROS实现了机器人客户端系统;在Window实现了机器人服务器系统。通过对客户端程序中建立的机器人模型通过机械臂轨迹规划的方法验证了模型的正确性;验证了服务器端机械臂运动学模型和导航算法的正确性。最后通过综合实验验证了整个机器人交互系统的正确性和友好性。

[1]王子健.基于虚拟现实技术的机器人遥操作系统设计[D].石家庄:河北工业大学,2010.

[2]Martinez,Aaron,Fernndez,et al.Learning ROS for Robotics Programming[M].UK:Packt Publishing,2013.

[3]R Patrick Goebel.ROS By Example Volume 1[M].United States of America:LuLu,2013.

[4]张建伟,张立伟,胡颖,等.开源机器人操作系统—ROS[M].北京:科学出版社,2012.

[5]Mark Mitchell,Jeffrey Oldham,Alex Samue.Advanced Linux Programming[M].United States of America:New Riders Publishing,2001.

[6]曹正万,平雪良,陈盛龙,等.基于ROS的机器人模型构建方法研究[J].组合机床与自动化加工技术,2015 (8):51-54.

[7]Richard Tatum,Drew Lucas,Josh Weaver,et al.Geometrically motivated inverse kinematics for an arm with 7 degrees of freedom[C].Oceans.IEEE,2015.

[8]Foote T.Tf:The transform library[C].Robotics and Automation(ICRA),2013 IEEE International Conference on.IEEE,2013.

[9]王进文.Socket通信过程原理及相关系统调用[J].中国新技术新产品,2015(7):25.

[10]Ferenc G,Dimic'Z,Lutovac M,et al.OPEN ARCHITECTURE PLATFORMS FOR THE CONTROL OF ROBOTIC SYSTEMS AND A PROPOSED REFERENCE ARCHITECTURE MODEL[J].Transactions of Famena,2013,37 (1):89-100.

(编辑李秀敏)

The Design of One Cross-platform Multimodal Interactive Control System

In consideration of the specialrequirements of controlling the mobile robotw orking in nuclear environment,after analyzed the architecture of ROS and coming up with the structure of robot application of ROS,we designed a Multimodal human-computer interaction system w hich was cross-platform for the mobile robot.We achieved the success of the master-slave control along w ith feedback force for the w orking manipulator,the success of the multimodal control,such as autonomous control、manual control、voice control,for the mobile base.First we described the development of this control system on detail,then we tested the correctness of the robot model in ROS of client and the program of server,finally w e verified the correctness and friendliness of the whole interface system.The results show ed that the operator can make w ise decision and new plan to finish the work excellently through the virtual sense and the video retrieving from the working sense of the remote robot along with the internal status information itself.

mobile robot;ROS;multimodal;cross-platform;simulation environment;HCI

TH166;TG659

A

1001-2265(2017)04-0103-04

10.13462/j.cnki.mmtamt.2017.04.026

2016-06-20;

2016-07-25

樊嘉欣(1991—),男,甘肃庆阳人,北京航空航天大学硕士研究生,研究方向为机器人交互控制技术,(E-mail)13241305893@163.com;丑武胜(1969—),男,北京航空航天大学教授,博士研究生导师,研究领域为嵌入式机电控制技术、网络控制系统以及机器人技术,(E-mail)wschou@buaa.edu.cn。

FAN Jia-xin,CHOU Wu-sheng,WANG Ming-fei

(Robotics Institute,Schoolof Mechanical Engineering and Automation,Beihang University,Beijing 100191,China)

猜你喜欢

服务器端位姿客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
无人机动平台着陆惯性/视觉位姿歧义校正算法
Linux环境下基于Socket的数据传输软件设计
船舶清理机器人定位基准位姿测量技术研究
如何看待传统媒体新闻客户端的“断舍离”?
优化ORB 特征的视觉SLAM
基于单目视觉的工件位姿六自由度测量方法研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计