平台修改日记
时间:2006-10-11 来源:lzhw_lucky
- 每一时刻只能有一个用户得到控制权。
- 一个用户可以同时控制多个机器人,也可以指定控制某个机器人。
- 多个用户参与控制,每个用户控制一个机器人或多个机器人。
每一时刻,一个机器人只能被一个用户控制。
原来的平台只是一个用户对应一个机器人。如此难以满足多用户多机器人接入的要求,也难以达到多机器人协调的目的,因此需要修改。
修改时,只需在用户代理的类中添加一个该代理所连接的机器人代理的列表,依据该列表,用户可以清楚的知道目前所控制机器人。
CORBA在较高层次上对不同机器人的控制进行抽象,得到一个对外界提供访问的统一的接口,隐藏机器人底层物理结构及接口实现。减少了开发机器人的控制的工作量。
数据库在机器向平台注册过程中,并没有存入机器人的相关信息。
在机器人代理的setrobot函数中,设置需要上传的数据格式。(通过CORBA调用的),把机器人端的COMPENT通过CORBA转化成平台端的INFO结构。
struct Identifier
{
string subtype;
short id;
};
struct cameraAttr
{
string subtype;
short id;
string format;
short width;
short height;
};
struct subformat
{
string name;
sequence<string> type;
sequence<short> bits;
};
struct protocol_format
{
short repeat;
subformat data;
};
struct Component
{
boolean isMobile;
sequence<Identifier> major;
sequence<Identifier> addition;
sequence<cameraAttr> camera;
sequence<protocol_format> basic_info;
};
真正传输数据是在basicrecieve_work中接收上传的数据(机器人的位置、机器人的声纳读数),(通过TCP进行传输,ACE的套接字)
相关阅读 更多 +