微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 一种移动机器人遥操作接口系统的设计与实现

一种移动机器人遥操作接口系统的设计与实现

时间:11-04 来源:互联网 点击:
遥操作就是远距离操作,是在远方人的行为动作远距离作用下,使事物产生运动变化。遥操作是一种基础技术,应用领域相当广泛,如机器人领域、航空航天领域、基础科学试验、核工程、海底与远洋作业等。遥操作技术使移动机器人到达艰险的环境,通过机器人完成特定的任务,从而可以使人远离艰险的工作环境。因此,研究遥操作技术意义深远。

机器人在物理空间上,可以实现人类感知能力和行为能力的延伸;在信息层次上将远端的移动机器人与操作人员无形连接在一个闭环回路里,实时地控制远端移动机器人的运动,以最大限度地利用远近端设备、资源和遥操作者的智力、经验,从而实现资源的最佳配置,完成特定的任务。人机接口系统就是通过什么样的方式来发送控制指令和进行状态数据的反馈,是移动机器人中一项重要的技术。

基于遥操作平台,设计了一种针对“喀吗哆”机器人的人机接口系统。采用该人机接口系统进行了机器人室内行走实验。实验表明,该人机接口系统方便灵活、可靠、人机接口系统显示丰富生动,提供多种操作模式,可实现数据的存储和实时显示。

1 机器人人机接口系统

一种柔性结构的四轮式移动机器人,其信息传送示意图如图1所示。



基于遥操作平台和通信系统,远方操作员通过人机接口将指令序列发送到机器人,机器人接收并编译指令,并且把编译之后的指令发送到相应的执行机构,再由执行装置来控制机器人的移动。同时机器人通过通信系统将其各种状态和相关信息传到遥操作平台中,远方操作员可以通过人机接口看到与机器人相关的信息。该设计实现的是与遥操作平台相嵌的人机接口系统部分,即图1中椭圆表示的部分。

2 设计与实现

该系统用到相关硬件设备如下:计算机(P4 1.8 G、512 MB内存、USB端口、Windows XP操作系统、Di-reetX 9.0版本)1台、标准键盘1个、鼠标1个、SG-USB006E型赛诺方向盘一个。软件有Borland C++Builder编译环境。

人机接口系统操作过程见图2。首先,开始之后系统初始化,检测是否连接了方向盘。若检测到方向盘,下面可有方向盘、键盘和鼠标模式可供选择;若没有检测到方向盘,只可选择键盘和鼠标模式。接着,判断机器人状态是否正常。若异常,则显示异常警报,返回到开始;若正常,根据是否检测到方向盘,则可在可选的操作模式中选择一种或几种操作模式。接着,可以通过已选模式操作机器人,同时接口系统将相应速度和角度等数据写入缓冲区,根据缓冲区的数据,机器人最终可以完成各种相应的动作。同时接口系统还可以实现机器人相应信息的屏幕显示和速度角度等信息的保存等。



该遥操作平台提供的人机接口系统界面如图3所示。若检测到方向盘,并且在界面的控制菜单下选择方向盘操作,则可以通过方向盘来操作机器人的移动。如果在界面的控制菜单下选用鼠标控制,可以点击图3“键盘操作面板”中的加速、前进、减速、左转等按钮来操作机器人。如果在界面的控制菜单下选用选择键盘控制,则可以通过键盘上的快捷键来操作机器人。图4中4个圆盘形控件相应地显示4个主动轮转动的角度,圆盘形控件左边的柱状控件相应地显示了4个主动轮的速度,并将指令通过通信系统传给机器人。左上角的区域还可以显示机器人的仿真影像等。右上角的“操作设备输入数据显示”面板中可直接输入机器人的速度和角度信息,可以使机器人快速准确地进入到预定的速度和角度上。



实现此人机接口系统的全部程序代码由一个总结构和4个类组成,下面简要地介绍一下它们的代码和功能。

2.1 总结构中的主要函数

(1)_fast call TMainForm::TMainForm(TCom-ponent*Ownetr):此函数主要完成机器人部分初始化和状态选择。
(2)void_ _fastcall TMainForm::Event(TObject*Sender):此函数主要响应方向盘、键盘和鼠标操作的事件,从而可实现对机器人移动的操作。
(3)void_ _fastcall TMainForm::KeyCtrl(TOb-ject*Sender,char&Key):此函数主要完成对键盘操作的初步响应。
(4)void_ _fastcall TMainForm::Timer(TObject*Sender):此函数主要完成对机器人实时状态和方向盘、键盘和鼠标的操作的实时刷新,其刷新频率可以在一定的范围内进行选择。

2.2 四个类及其功能

(1)class CComPort。此类主要完成对数据存储缓冲区的初始化、释放和对缓冲区的读和写等。
(2)class CJoyStick。此类主要完成对方向盘数据的读取,USB端口设备连接状态,方向盘初始化,设置数据格式,清除数据,释放空间等操作。
(3)class CKamado。此类主要完成在键盘或鼠标操作模式下,机器人自主完成一系列基本动作(前进、后退、左转、右转、停止、加速、减速等)和几个自定义动作(转直角、原地自旋等)。
(4)class CWheel。此类主要实现自主模式下轮子的旋转动作,包括每个轮的旋转的具体速度和度数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top