2023年11月30日发(作者:)
第8期金飞虎等:自由飞行空间机器人地面实验平台网络系统·119 ·
自由飞行空间机器人地面实验平台网络系统
金飞虎,洪炳熔,柳长安,高庆吉
(哈尔滨工业大学计算机学院,黑龙江哈尔滨150001)
*
摘 要:为了实现自由飞行空间机器人地面实验平台系统中各工作站之间的实时通讯,模拟自由飞行空间
机器人操作目标卫星的过程,开发了基于TCP/IP协议的网络实时监控系统。该系统能满足应用程序在多
机、跨平台之间实时的数据传送与接收的要求,应用接口简单并具有网络故障自动检测及恢复等功能。
关键词:自由飞行空间机器人;网络通讯;客户/服务器;地面实验平台
中图法分类号:TP39;TP242.3 文献标识码:A 文章编号:1001-3695(2002)08-0119-03
NetworkSystemofGroundTestSystemforDual-armFreeFlyingSpaceRobot
JINFei-hu,HONGBing-rong,LIUChang-an,GAOQing-ji
(CollegeofComputerScience,HarbinInstituteofTechnology,HarbinHelongjiang150001,China)
Abstract:Toachievereal-timecommunicationbetweenworkstationsofthegroundtestsystemfordual-armfreeflyingspacerobot,sim-
ulatingadual-armfreeflyingspacerobotcapturesatargetsatellite,real-timenetworksupervisesystembasedonTCP/IPprotocolhas
beendeveloped.Thissystemcanmeettherequirementofdatatransferringbetweenthetasksrunningondifferentkindofdeveloping
platforms.Alsoithassimpleuserinterfaceandcandetectnetworkfaultandrecoveritautomatically.
Keywords:FreeFlyingSpaceRobot(FFSR);NetworkCommunication;Client/Server;GroundTestSystem
1 引言
自由飞行空间机器人由机器人本体和搭接在本体
上的机械臂组成,可以在宇宙空间自由飞行或浮游,代
替宇航员完成舱外作业。FFSR的基座不固定,机械臂运
动的反作用力影响机器人本体的位置和姿态,从而使机
械臂的位置和姿态也会随着相应变化,因此其控制问题
要比地面机器人复杂得多。为了研究FFSR在空间微重
力环境下的特性,我们在“八五”研制的单臂FFSR地面
实验平台和“九五”初研制的双臂FFSR自主控制计算机
仿真系统基础上,开发了双臂FFSR地面实验平台。
双臂FFSR地面实验平台系统由机器人模型、视觉
系统、通讯系统、规划器、控制台、气浮平台等六个子系
统组成。它通过空气浮力使机器人模型浮游在铸铝平
台上面,在地面上模拟二维的空间微重力环境。整个系
统的组成结构如图1所示。
站上。由于各模块间必须进行实时的数据传送,并由控
制台监视并控制其它模块的运行,本文开发了基于TCP/
IP网络协议的实时监控系统。
2 实时监控网络系统功能分析
实时监控网络系统应具有实时的连接、监控和控制
功能。由于各模块之间相互连接及进行实时的数据传
送,各模块必须能够即时响应其它模块的连接呼叫,与之
建立对话,并通过对话方式传送数据,以免发生数据丢失
现象。控制台可以监控其它模块,并可以实时控制其它
模块的运行。因此实时监控网络系统应具备如下功能:
①实时监听功能。保证在需要发送/接收数据时,
各模块能够建立实时的对话连接。②实时通讯功能。
实现各模块之间实时的数据接收与发送。③友好的应
用界面。各模块可以方便地调用各种通讯功能。④故
障检测功能。通讯出现故障时,能自动恢复或提示故障
信息及原因。
考虑到整个系统的易用性和客户端开发平台无关
性,实验平台的网络系统采用了基于网络通讯的客户/
服务器模式。整个系统由两部分组成:第一部分为FFSR
地面实验平台的网络服务器。它负责控制整个任务的
进行,具有向客户端发送机器人和目标的视觉信息以及
操作台的命令信息等功能。第二部分是客户端,客户端
由控制台、规划器和视觉系统组成。因为整个空间机器
人地面实验平台系统是基于网络连接的,所以服务器和
客户程序可以分别运行在因特网上的多台计算机上。
图1 系统组成简图
其中视觉系统,规划器和控制台分布在不同的工作
收稿日期:2001-11-01;修返日期:2002-01-21
基金项目:国家“863”计划空间机器人主题资助项目(863-2-4-1-2)
·120·计算机应用研究2002年
为了能让地面指挥系统及时了解并控制现场的情况,我一个套接字。服务器创建一个Socket对象,然后利用
们设计了用于显示现场情况的控制台。对于客户端程Create函数创建一个基本的套接字句柄。
序的开发,并不一定要限制在统一的平台下。客户端程
序不仅可以在Windows下,也可以基于Linux,Unix等操
作系统进行开发,只要遵循基本的Socket网络协议,就
可以顺利进行网络通讯。由于规划器程序主要负责向机
器人发送命令,这里我们就不作过多的介绍,我们把重
点放在服务器和控制台的开发上。
用Create()函数创建套接字之后,使用Listen()函数
监听在端口上新来的连接。当Listen()函数响应了一个
调用时,再创建一个新的Socket对象,利用这个套接字
来发送和接收数据。
(2)服务器接收的控制命令。客户端程序向服务器
发送不同构造的网络控制块,服务器再将接收的网络控
制块发送到目的客户端来进行网络通信。
3 网络系统及故障诊断技术
网络系统作为实时监控平台的低层支持部分,利用
Winsock实现数据的实时发送和接收。由于在数据传送
中,不许发生数据丢失现象,本文采用了对话方式发送
和接收数据。需要通讯的两台工作站之间首先要建立
会话连接。Winsock会话支持在会话周期可延长的两个
应用程序间建立一个可靠的双方数据连接,有时称之为
虚电路连接。
3.3 客户端结构
客户端由视觉系统、控制台和规划器组成。为了提
供一个可视化的机器人现场环境,开发了FFSR地面实
验平台控制台。控制台可以通过和服务器的网络连接,
实时地接收服务器传送来的平台上机器人和目标的视
觉信息。视觉系统传送FFSR地面实验平台环境信息,
通过分析视觉信息,可以看到机器人和目标在平台上的
运动。控制台的网络通信和信息处理主要由以下几个
部分组成:
(1)与服务器的初始化连接。控制台作为一个客户
程序与服务器连接,连接采用下面的规则:①控制台创
建一个套接字并向服务器端口发送如下的初始化连接
信息:(InitInitdisplay),表示向服务器申请连接。②当服
务器成功为控制台分配了内存,且获取了控制台的端口
地址,服务器将向控制台的端口地址返回如下信息:(Init
ConnectionSuccess),表示服务器已经成功与控制台建立
网络连接。③如果服务器没有成功为当前申请连接的
控制台分配内存,服务器将向控制台返回信息:(Init
ConnetionFailed),表示服务器与控制台之间的连接请
求失败。如果收到这个消息,控制台可以再次申请与服
务器连接。
(2)控制台与机器人之间的通信。控制台的主要功
能是显示机器人和目标的视觉信息并向机器人发送控
制命令。控制台程序通过向服务器发送下列的命令来控
制机器人:(Move{Jointn,Angle}),把机器人指定关节
的相对转动度数Angle发送到服务器,再转送到规划器
上。
视觉系统、规划器和服务器的网络通讯与控制台和
服务器的网络通讯是同样道理,在这里不再叙述。
3.1 网络控制块Ncb
系统要调用Winsock命令来完成监听、建立对话及
数据的发送和接收任务,必须先根据任务需要构造一个
网络控制块Ncb。Ncb的结构定义如下:
structNcb{
charSendComputer; //发送命令计算机ID
charReceiveComputer;//接收命令计算机ID
UINTNcbCommand;//命令ID
UINTRobotPoint1;//机器人关键点标识块1
UINTRobotPoint2;//机器人关键点标识块2
…
UINTRobotPoint9;//机器人关键点标识块9
UINTObjectPoint1;//目标关键点标识块1
UINTObjectPoint2;//目标关键点标识块2
UINTErrorCode;//立即返回代码
charNcbReservedArea[14];//保留字
}ZeroNcb,SendNcb,RecvNsb;
网络平台通过构造不同的Ncb控制块,实现建立对
话、发送或接收数据等来实现网络中实时的数据传送与
接收。
3.2 服务器端的框架
FFSR地面实验平台的网络服务器为控制台和规划
器提供了一个完善的信息中转环境,控制台、规划器和
视觉系统通过独立的客户端程序利用计算机网络分别
和服务器连接。整个机器人系统服务器主要由两个模
块组成:网络通信模块和信息处理模块,主要处理所有
客户端与服务器之间的网络通讯。每个客户程序通过
TCP/IP协议与服务器连接,客户端程序通过向服务器发
送控制命令字来控制机器人的运动。
由于整个FFSR地面实验平台的网络系统采用客户
/服务器模式,客户和服务器之间通过计算机网络传递
机器人图像信息和控制台对机器人的控制命令。客户
端程序和服务器程序可以分散在网络中不同的计算机
上,彼此之间都是相互独立的。服务器的运行采用中断
等待的方式。只要有任意客户端向服务器发送控制命障如会话已经关闭、不完整的接收信息等等。其中有些
令,服务器接收并处理控制命令。服务器的网络通信和
信息处理主要由以下几个部分组成:返回码Ncb.ErrorCode的值去查找错误码表,再根据不同
(1)网络系统的初始化。服务器启动后,首先创建
3.4 应用接口
给用户一个Help文件和封装良好的应用接口,每一
个接口对应一个函数调用,主要包括:
Help 帮助文件NetReset网络初始化
AddName本站加名DelName删除名字
Call呼叫连接Listen侦听呼叫
Send发送数据Recv接收数据
EndSes终止会话PostFun中断程序入口
3.5 故障检测及处理
网络传输要求实时、可靠。但是多机通讯有时难免
会发生故障。硬件故障如传输网络短路或断路,软件故
软件故障是可以由程序自动修复的。本部分就是根据
的错误情况完成相应的动作,从而能有效地消除某些软
第8期金飞虎等:自由飞行空间机器人地面实验平台网络系统·121 ·
件故障,或者提示故障信息,以提高系统的可靠性、容错络系统客户端开发平台的无关性,数据传输的实时性、
能力和可维护性。其故障树如图2所示。准确性是可以充分满足平台要求的,能为空间机器人
实验平台的研究提供一条新的研究途径。上述基于
Winsock的实时网络监控平台不仅具有实时监听、通
讯、故障检测等功能,而且由于采用特殊的数据结构
及对话存储方式,具有发送和接收数据很容易实现的
特点。
参考文献:
[1]洪炳熔,朱铁一.机器人卫星自主控制系统的研究[J].
[2]吴威.双臂自由飞行空间机器人自主规划研究[D].哈尔
[3]何光彩.自由飞行空间机器人姿态控制研究[D].哈尔
[4]洪炳熔,柳长安.双臂自由飞行空间机器人地面实验平
[5]KazuoMachida,etal.Sensor-basedProximityOperationofan
高技术通讯,1995,(10):16-19.
滨:哈工大博士学位论文,1997.
滨:哈工大博士学位论文,1999.
台设计[J].机器人,2000,(2):108-113.
AstronautReferenceFlyingRobot[J].AdvancedRobotics,
1995,9(6):653-673.
MAUllman,etal.ExperimentsinAutonomousNavigationand[6]
ControlofaMulti-Manipulator.SpaceRobotics:Dynamicsand
Control[M].MA:KluwerAcademic,1991.269-284.
YUmetani,KYoshida.ResolvedMotionRateControlofSpace[7]
ManipulatorwithGeneralizedJacobianMatrix[J].IEEETrans-
actionsonRoboticsandAutomation,1989,5(3):303-314.
图2 Winsock返回的错误码及所需动作树图
4 应用实例
根据监控系统的功能,设计的监控系统的工作过程
可用如下伪代码描述:
BEGIN
ActiveServer//启动服务器
Listen//创建套接字后,再发Listen命令,保证实时监听
Connect1,2,3//各工作站与服务器建立连接
Application//进入应用程序,如接收操作员的指令等,进入相应的
处理模块,发送命令以完成相应的控制
END
由控制台发布自主控制命令,规划器、视觉处理模
块、自主规划模块和执行控制模块协同作业来完成的空
间机器人捕捉及操作目标过程如图3所示。
作者简介:
金飞虎(1973-),男,博士研究生,主要研究方向为空间智能机
器人及神经网络控制技术;洪炳熔(1937-),男,工学博士,教
授,博士生导师,主要研究方向为空间智能机器人、星载计算
机和虚拟现实技术;柳长安(1972-),男,博士研究生,主要研究
方向为空间智能机器人及人工智能技术;高庆吉(1966-),男,
博士研究生,副教授,主要研究方向为空间智能机器人及模糊
控制技术。
图3 控制台显示的空间机器人捕捉及操作目标过程
5 结论
本文介绍了我们研制的双臂自由飞行空间机器人
地面实验平台所采用的网络系统。实验结果表明该网
(上接第105页)
(3)DoEvents()实现的不同。在PC机中,DoEvents()
函数可以调用Win32API函数PeekMessage()来将消息取可以完成移植功能。
出并自动丢弃。但是在PDA的VTech操作系统上,在将限于篇幅,本文还有许多未涉及到的地方,如有什
消息取出后,不能直接丢弃,而是要放入合适的地方将么更好的建议和方案,请予以指出。
这条消息“消化”。比如说,如果这是某个窗口Form的消
息,就要调用这个Form的处理消息函数FormDispatch();
如果是系统的消息,则交付系统来“消化”。造成这种现
象的原因本质上还是由PDA操作系统的单线程所导致
的,系统不能生成额外的线程来处理这些消息,而只能
由用户来“消化”。
封装了接收/发送数据函数以及同步函数,使得在改变
接口的方式下,只需要改动封装了的以上几个函数,就
参考文献:
[1]AllenDenver,MSSerialComminWin32[M].MicrosoftRese-
[2]VTech1.3.Programmer'sManual[M].
[3]张晶晶.串口通信在卡普中央监控系统中的应用[J].微
[4]钮金真,胡庆云,杨明权.VC实现串口通信[J].中央民族
arch(MSDN).
型机与应用,2001,(1):45.
大学学报,2001,10(1):63.
5 结束语
本文所讲述的例子是在有线串口上实现通过的。
在实际应用过程中,更多的可能是采用其它接口方式来
实现PC与PDA的互连,比如红外接口、蓝牙技术等。因
此在项目的开发过程中,我们充分地考虑到了扩展性,
作者简介:
张黎军(1978-),男,硕士研究生,曾多次参加过各种嵌入式系
统应用程序的研究与开发,并获得多项研究成果;史浩山
(1946-),男,教授,博士生导师,研究兴趣为数据通信与计算机
网络、多媒体通信网、网上视音频信息处理与传输等。


发布评论