MOOS-ivp 实验八 多水下机器人作业(2)The uField Toolbox

MOOS-ivp 实验八 多水下机器人作业(2)

下面的实验主要需要的任务模块是uField模块,接下里先对这个模块进行讲解和说明。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


四、pShare详解

在这里插入图片描述
消息发布步骤:
(1)使用者点击DEPLOY按钮
(2)DEPLOY=true,被pMarineViewer发布到MOOSDB中去
(3)Shoreside在其收件箱中看到DEPLOY的消息,然后向配置的目标发送消息
(4)车辆的pShare发布DEPLOY=true给车辆的MOOSDB
(5)helm收到消息之后启动车辆按照配置执行
在这里插入图片描述
上图是pShare的配置图,标注的指示为发送变量名称、目标机器的IP地址、目标机器的端口号
在这里插入图片描述
配置接受信息,只需要配置接受的端口号即可。
shoreside和vehicle的通讯是双向的,下面图展示了两个分别的pShare的配置块:
在这里插入图片描述
接受vehicle端口为9000发布的消息,发布控制和命令的消息到端口9200
在这里插入图片描述
接受端口为9200的消息,发布车辆状态的消息到端口9000
在这里插入图片描述
可以对发布到目标机器的变量进行重新命名,前面是本地名称,后面是变量发布到目标机器里的名称。
在这里插入图片描述

重命名的作用使得可以分别给不同IP的机器发送指令而不用担心重合,也可以分发一个指令给所有的机器。
如果要对指令初始化的指令进行修改的话,可以使用以下命令:

PSHARE_CMD=“cmd=output,src_name=DEPLOY_KEVIN,dest_name=DEPLOY,route=192.168.1.6:9200”

那么原始配置里就会扩充上这一句:
在这里插入图片描述

五、The uField Toolbox 概览

The uField Toolbox是什么呢?
你可以将其看作是十几MOOSapp的合集,每一个应用程序都是用来部署岸基、高级指挥中心的,并对车辆进行命令发布和控制。
在这里插入图片描述更详细的内容可以通过网站ufield来进行查看
The uField Toolbox主要由以下三个内容组成:
(1)多个MOOSDB的Share配置
(2)模拟车辆之间的消息传递
(3)传感器模拟
该图包含了The uField Toolbox所包含的主要内容模块,并且我们会在在下面的实验中对其进行操作。
在这里插入图片描述

1.自动简化pShare的配置

初始条件:
(1)所有的车辆都在联网中、Internet或者局域网
(2)shoreside不知道有哪些车辆以及其位置
(3)vehicle知道shoreside的IP地址
在这里插入图片描述
下图展示了vehicle和shoreside之间的联系:
在这里插入图片描述
(1)机器自动发现自己的IP地址
(2)机器向shoreside进行ping,发布其机器名称、IP地址以及端口号
(3)shoreside更新其对于新机器的pShare的配置
(4)shoreside发布确认信息,证明收到机器的ping
(5)机器接受的到shoreside的确认信息,更新自己的pShare配置并且允许与shoreside进行通讯。

2.自动pShare配置的工具

在这里插入图片描述
(1)pHostinfo
一个MOOSapp,作用是自动确认本地机器的IP地址,并且将其发布到MOOSDB中。一旦启动之后,pHostinfo将会作出以下行动:
1.自动决定机器的地址
2.发布结果到PHI_HOST_IP
3.使用可用的操作系统工具发现自己的IP地址(没看懂啥意思)
4.有时机器可能会有许多个网络接口
5.有时候pHostinfo也会猜错
6.uFldNodeBroker使用此信息来启动与Shoreside的连接。
具体配置如图:

PHI_HOST_IP = 118.10.24.23
PHI_HOST_IP_ALL = 118.10.24.23,169.224.126.40
PHI_HOST_PORT_DB = 9000
PHI_HOST_IP_VERBOSE = OSX_ETHERNET2=118.10.24.23,OSX_AIRPORT=169.224.126.40

(2)uFldShoreBroker
uFldShoreBrokeris 的主要功能是在收到来自该社区的 ping 后与远程节点社区建立桥接关系。这些变量在配置块中使用像bridge = "src=DEPLOYALL, alias=DEPLOY"这样的行指定。
uFldShoreBrokeris 的基本工作是等待传入的 ping,并使用 ping 消息中的信息来 (a) 决定是否应该接受 ping,以及 (b) 将适当的响应发送回发送者,以及 © 设置新的传出 pSharerelationships如果确实接受了ping。
最简单的桥接安排指定 (a) 本地已知的变量,以及 (b) 远程已知的变量名称。这是通过 auFldShoreBrokerconfiguration 行完成的,类似于

//Posts (received on the Shoreside)
NODE_BROKER_PING = community=henry,hostip=192.168.1.1,port_db=9000,
                   pshare_iroutes=192.168.1.1:9200,timewarp=8 
//Replies sent from shoreside with information about the shoreside community.
NODE_BROKER_ACK = community=shoreside,hostip=192.168.1.199,port_db=9000, 
pshare_iroutes=192.168.1.199:9300,timewarp=8,status=ok
//Augments the local pShare configuration
PSHARE_CMD = src_name=DEPLOY_HENRY,dest_name=DEPLOY,route=192.68.1.199:9300

(3)uFldNodeBroker
一个MOOSapp,作用是监听传入节点、通知节点最近的shoresideIP地址和pShare的输入路径、自动配置本地的输出路径。一旦启动之后,会做出下面的动作:
1.等待pHostInfo发布自己的IP地址
2.向Shoreside发布NODE_BROKER_PING,从列表中猜测Shoreside的IP地址
3.然后等待Shoreside以NODE_BROKER_ACK的形式发出确认
4.相应的调整自己的pShare配置

bridge = src=DEPLOY_ALL, alias=DEPLOY
bridge = src=DEPLOY_$V, alias=DEPLOY//与包含宏的形式进行连接
bridge = src=DEPLOY_ALL, alias=DEPLOY
bridge = src=DEPLOY_$V, alias=DEPLOY
bridge = src=RETURN_ALL, alias=RETURN
bridge = src=RETURN_$V, alias=RETURN

这可以在岸边社区中用于轻松指挥车辆。当用户希望部署所有车辆时,发布 DEPLOY_ALL=“true” 即可。
如果用户只希望JAMES车辆返回,则可以发布RETURN_JAMES=“true”。这种模式非常普遍,以至于支持这种快捷方式。

bridge = src=DEPLOY_ALL, alias=DEPLOY
bridge = src=DEPLOY_$V, alias=DEPLOY
bridge = src=RETURN_ALL, alias=RETURN
bridge = src=RETURN_$V, alias=RETURN

这是通过 qbridge,“快速桥接”,参数完成的。可以通过以下方式完成上述四行配置:

qbridge = DEPLOY, RETURN

六、The Berta Mission

1.找到任务

可以在如下路径中找到任务模板文件,我们接下来的实验是在对该模板进行修改之后实现的

cd ivp/missions/m2_berta
./launch.sh 10

运行之后效果如图
在这里插入图片描述

2.启动任务

可以通过同时启动三个.moos文件启动任务

 cd ivp/missions/m2_berta
 pAntler shoreside.moos --MOOSTimeWarp 10
 pAntler henry.moos --MOOSTimeWarp 10
 pAntler gilda.moos --MOOSTimeWarp 10

当然更好的办法是通过launch脚本来进行启动,后面的10指的是wrap=10,仿真的速度为10倍速。

cd ivp/missions/m2_berta
./launch.sh 10```

3.使用Plug来快速配置

在进行多车配置的时候,很多行为块是相似的,仅仅是个别的坐标位置或者路线不同。这是可以使用plug来在脚本中对其进行快速配置。以plug开头的文件都是模板。我们可以在launch.sh文件中对其参数进行修改,生成新的moos文件。
在这里插入图片描述
下图是launch.sh文件中的相关快速生成的代码

nsplug meta_vehicle.moos targ_$VNAME1.moos -f WARP=$TIME_WARP \
    VNAME=$VNAME1      START_POS=$START_POS1                  \
    VPORT="9001"       SHARE_LISTEN="9301"                    \
    VTYPE="kayak"      SHORE_LISTEN=$SHORE_LISTEN           

使用nsplug命令,在运行时生成新的.moos文件,但是初始参数的配置是由下面的信息进行设置的。这样一来的话,就可以对多个vehicle的bhv和moos文件进行配置了。

总结

今天主要是讲解了一些相关uField Toolbox 和pShare的资料,因为下面的实验展开需要用到相应的知识。下面进行的实验主要集中在对launch.sh文件进行初始配置,以及修改一些相关的.moos模板文件的配置。通过这些来实现实验要求。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值