MOOS-ivp 实验八 多水下机器人作业(3)
希望每天都可以学到新的知识,有新的收获~
时间不知不觉过去了很久,距离上一次MOOS课程的学习已经有了4个月的时间,是时候继续MOOS课程的学习了~
文章目录
七、The Henry Gilda Refuel Mission
找到如下目录进行初始模板文件复制
cd moos-ivp/ivp/missions-2680
cp -rp lab_08_henry_gilda_baseline moos-ivp-janedoe/missions/lab_08/henry_gilda_baseline
该任务需要完成的目标如下:
(1)添加一个新的加油按钮到pMarineViewer配置快中去,按下按钮之后会发布消息 REFUEL_NEEDED ALL=true.
(2)通过增加meta_shoreside.moos文件中的uFldShoreBroker配置块,确保所有vehicle共享该变量
(3)不要对targ *文件进行编辑,这个是通过plug自动生成的文件,使用后需要对其进行删除
(4)添加一个Timer行为到vehicle行为配置文件中去。要求vehicle自动加油完成后等待60s发布endflag标志。然后恢复loiter行为。时间及时完成之后,vehicle应该自己返回执行loiter任务。
(5)一旦user发出命令,stationkeep应该立即工作
(6)使用RETURN按钮之后,vehicle应该仍然返回,但是当以这种方式返回时,它就像在基线任务中一样工作——它保持并无限期地保持不变,直到重新部署。
1.配置meta_shoreside.moos文件
打开meta_shoreside.moos文件修改pMarineViewer配置块为如下代码:
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
TIFF_FILE = forrest19.tif
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicles_shape_scale = 1.5
vehicles_name_mode = names+shortmode
point_viewable_labels = false
polygon_viewable_labels = false
appcast_viewable = true
appcast_color_scheme = indigo
hash_delta = 50
hash_viewable = true
hash_shade = 0.35
SCOPE = PHI_HOST_INFO
BUTTON_ONE = DEPLOY # DEPLOY_ALL=true
BUTTON_ONE = MOOS_MANUAL_OVERRIDE_ALL=false
BUTTON_ONE = RETURN_ALL=false # STATION_KEEP_ALL=false
BUTTON_TWO = RETURN # RETURN_ALL=true
BUTTON_TWO = STATION_KEEP_ALL=false
BUTTON_THREE = STATION # STATION_KEEP_ALL=true
BUTTON_FOUR = REFUEL # REFUEL_NEEDED_ALL=true
}
可以看到 在BUTTON_FOUR中已经对REFUEL按钮进行添加。
接下来对uFldShoreBroker配置块进行修改
ProcessConfig = uFldShoreBroker
{
AppTick = 1
CommsTick = 1
QBRIDGE = DEPLOY, NODE_REPORT
QBRIDGE = STATION_KEEP, APPCAST_REQ
QBRIDGE = MOOS_MANUAL_OVERRIDE
QBRIDGE = REFUEL_NEEDED
BRIDGE = src=RETURN_ALL, alias=RETURN
BRIDGE = src=RETURN_$V, alias=RETURN
}
2.uFldShoreBroker详解
要理解上面的配置首先需要对uFldShoreBroker有一定了解。知道各个部分都是用来做什么的。uFldShoreBroker主要功能是对community与各个通讯节点进行自动配置和连接的一个工具。