Uploaded by Hung Nguyen

Remus 101 MOOS

advertisement
Getting Started with MOOS-IvP on the REMUS
Michael Benjamin and Maurice Fallon and later Liam Paull
October 6, 2015
1
Purpose of This Document
This document serves as an aid to executing initial missions on the MIT REMUS-100 platform at
the MIT Sailing Pavilion. It accompanies a simple “Hello World!” set of mission files.
2
The Alvin Mission
The Alvin mission is a simple mission for execution at the MIT Sailing Pavilion. It consists of a
small survey and some safety measures. The idea is shown in Figure 1. The large polygon represents
a safety op-box. In the figure the simulated UUV is just starting its mission and is heading for its
first waypoint — in front of Killian Court.
Figure 1: The Alvin Mission: The Alvin mission consists of a small survey at a depth of 2
meters.
3
Software Required
You will need to check out and compile the following:
• The MOOS-IvP tree moos-ivp.org
2
• The moos-ivp-remus tree http://oceanai.mit.edu/moos-ivp/pmwiki/pmwiki.php?n=Tree.
Remus
• Goby 2.0 or later gobysoft.org
This document deals primarily with the contents of the moos-ivp-remus tree, which consists really of three main components: software for interfacing with the REMUS (iRecon), acoustic message
definitions for command/control and monitoring of the AUV through MOOS-IvP, and a mission
structure for testing the system in progressively more realistic scenarios until final deployment of
the REMUS in the water.
It is assumed that a user account has been made on the REMUS payload computer named
ruser, short for “robot user”. This is a generic account that has certain read-only privileges on the
oceanai server. There is also a generic iver account for similar usage on the Iver2 UUVs. We may
make a generic remus account if desired.
3.1
The MOOS-IvP Tree
With the exception of the Gobysoft libraries, all software required to run the Alvin mission in
simulation is contained in the publicly available MOOS-IvP tree.
www.moos-ivp.org/download.html
This software should be downloaded directly on to the REMUS payload computer under the
ruser generic account. I recommend downloading the SVN trunk, but the latest stable release
of MOOS-IvP is another option. This tree includes the MOOS code from Oxford. To build the
moos-ivp tree fully, including the GUI related applications, one would need to install the graphics
related libraries described in the README.txt file. These are unnecessary on the UUV, and the
build can be configured to not build these applications. Alternatively one can launch the build
script with the -k option which is the standard make option to skip over un-built targets to build
all later targets.
3.2
The moos-ivp-remus Tree
To run the Alvin mission on the REMUS requires the iRecon process. This provides an interface between the MOOS payload computer and the REMUS front-seat computer via the Hydroid RECON
interface.
The iRecon process is located within the moos-ivp-remus tree and can be accessed as follows:
$ svn co https://oceanai.mit.edu/svn/moos-ivp-remus/trunk moos-ivp-remus
3.3
Goby-Acomms Tree including pAcommsHandler
NB: The Level 1 mission (SIMULATE auv only) can be completed without installing
goby-acomms. Skip to Section 5.1 if you wish and return here afterwards.
The Goby Acomms project has recently transitioned outside of moos-ivp-local Documentation
is available at gobysoft.com and the code is hosted at https://launchpad.net/goby. It also uses
bazaar instead of svn for version control. Please check out the version 2 branch of the project:
$ bzr branch lp:goby/2.0 goby_2.0
Follow the instructions in the root directory to build pAcommsHandler.
3
4
An Overview of the moos-ivp-remus Tree
Following a fresh checkout of the mission-ivp-remus tree, the following subdirectories will be created:
$ cd moos-ivp-remus/
$ ls
bin
build
build_proto.sh
build.sh
cmake
CMakeLists.txt
docs
lib
missions
README
src
The contents of each directory is as follows:
• bin - the location of compiled binaries (add to $PATH)
• build - the location of compilation files
• build.proto.sh - script for running the protobuf compiler on the *.proto message definitions
• build.sh - script for compiling protobufs into a library and iRecon into an executable binary
• cmake - contains FindGoby.cmake which tells compiler where to find goby
• CMakeLists.txt - top level CMakeLists file
• docs - these docs
• lib - this will contain the compiled message library once it’s made
• missions - more details on this in Sec. ??
• README - self-explanatory
• src - iRecon and protobuf source files
4.1
The mission subfolder
The mission subfolder contains all the necessary mission files. NB: the only thing that makes
this mission folder “REMUS” specific is the inclusion of iRecon in the final mission
(m4). This mission structure could easily be adapted to any other AUV by substituting iRemus for the appropriate frontseat-backseat MOOS application interface (e.g.
iOceanServerComms for Iver)
The following is the contents of the mission subfolder
• acomms - the id lookup file for mapping names to ids, and the goby store server config file
for simulating acomms. For more details see Section 5.2.
4
• bhv files - behavior-related files defining the mission that pHelmIvP will control. See Section
4.3.
• plugs - a series of reusable individual moos process configuration processes. Many of these
blocks are common across all of the tutorial missions
• tools - a coordinate conversion matlab script and remus missions files for use in frontseat VIP
software.
Additionally, there are four mission directories (m* preceeded by SIMULATE and REAL) are
discussed in Section 5.
4.2
Typical MOOS mission
A typical MOOS-IvP mission requires a .bhv and .moos configuration file for each mission. The
remus.bhv file serves as the helm configuration file for both simulation and field operation of the
AUV.
The remus.moos file is the AUV’s MOOS mission configuration file and the shoreside.moos file
is the MOOS configuration file for field operation.
4.2.1
nsplug:
nsplug is a scripting module used to assemble a full MOOS mission configuration file from a set
of individual process moos files — while also inserting specific settings and parameter names into
each file.
As mission configuration often requires 100s of configuration parameters, a single scripting error
can result in mission failure. Using nsplug allows for settings to be accurately shared across multiple
AUVs or between simulation and real operation while minimising the risk of a typo in the moos
script.
Each mission directory contains an expand nsplug.sh script which carries out this operation by
calling nsplug on a META shoreside or META remus mission file and forming the final mission
script.
In each mission folder, the mission parameters are inputted by including *.def files which are
in a folder called configs.
The behavior file is also generated by nsplug in a similar way. The behavior file remus bhv.def
and the META remus.bhv files are in the bhv files directory since they are common for each of the
four missions.
NB: the following warning (or something similar) is normal and is caused by the fact that
clicking on pMarineViewer display causes the generation of XPOS and YPOS but nsplug doesn’t
know about these variables at the time of generating the .moos file.
Warning: The following line of META_remus.moos (creating remus.moos)
may contain an undefined macro on Line: 48
>
right_context[remus] = ACOUSTIC_MOOSPOKE ="RPT=points=$(XPOS),$(YPOS)"
5
4.2.2
Launching scripts:
Each mission directory contains a handy script for launching the MOOS community. The script
begins launch . It is a convention used in other example missions distributed and documented on
the moos-ivp.org site. It is particularly handy for launching simulations with multiple UUVs.
Note that where a separate launch script is required, it is named to indicate which computer it
should be launched from e.g. launch remus.sh
More info about MOOS, MOOS-IvP and the conventions within the community can be found
in [1] or [2].
4.2.3
Shutting things down:
I typically use the command
$ killall pAntler
Pro Tip: you may even want to alias this to somethimg shorter.
4.3
The Behavior Configuration File
The helm, pHelmIvP module for the Alvin example mission is configured in remus.bhv, which is
generated by running expand plugs.sh in one of the mission folders. It consists of three simple
behaviors. The META remus.bhv file is short and given entirely in Listing 1 below. All variables
marked as $(·) are loaded from the remus bhv.def file.
Listing 1 - The META remus.bhv configuration file for the IvP Helm.
//-----------------------------------------------// File: remus.bhv
// Name: M. Benjamin and later L. Paull (2015)
// Date: Nov 26th, 2010
//-----------------------------------------------#include ../bhv_files/remus_bhv.def
initialize
initialize
DEPLOY = FALSE
RETURN = FALSE
//-----------------------------------------------Behavior = BHV_Waypoint
{
name
= waypt_survey
pwt
= 100
condition = (DEPLOY == TRUE)
condition = (RETURN == FALSE)
endflag
= RETURN=TRUE
lead = 8
speed = $(SURVEY_SPEED)
radius = 4.0
nm_radius = 10.0
updates = WPTS
points = $(SURVEY_POINTS)
nostarve = NAV_X, NAV_Y, 5.0
}
// meters per second
6
//-----------------------------------------------Behavior = BHV_Waypoint
{
name
= waypt_return
pwt
= 100
condition = (DEPLOY == TRUE)
condition = (RETURN == TRUE)
perpetual = true
lead = 8
speed = $(RETURN_SPEED)
// meters per second
capture_radius = 5.0
updates = $(RETURN_PT_MOOS_VAR)
points = $(RETURN_POINT)
nostarve = NAV_X, NAV_Y, 5.0
}
//-----------------------------------------------Behavior = BHV_ConstantDepth
{
name
= const_depth_return
pwt
= 100
condition = (RETURN == TRUE)
condition = (DEPLOY == TRUE)
duration
= no-time-limit
depth = 0
}
//-----------------------------------------------Behavior = BHV_ConstantDepth
{
name
= const_depth_survey
pwt
= 100
condition = (DEPLOY == TRUE)
condition = (RETURN == FALSE)
duration
= no-time-limit
depth = $(SURVEY_DEPTH)
}
//-----------------------------------------------Behavior = BHV_OpRegion
{
name
= op_region
pwt
= 100
condition = (DEPLOY == TRUE)
max_time
polygon
trigger_entry_time
trigger_exit_time
=
=
=
=
600
$(OP_REGION_POLY)
2.0
1.0
}
And here’s the contents of the remus bhv.def file:
#define SURVEY_POINTS -143,-141:89,-36:109,-71:-106,-175:-88,-207:129,-100:0,-40
#define RETURN_PT_MOOS_VAR RPT
#define RETURN_POINT 9,-14
7
#define
#define
#define
#define
SURVEY_SPEED 1.5
RETURN_SPEED 1.0
SURVEY_DEPTH 2.0
OP_REGION_POLY -200,-100:-100,-250:200,-100:144,3:84,35
The Waypoint behavior is configured with seven simple waypoints. This behavior is not configured to repeat its points. When it is finished, it is finished permanently. This can be changed
with the perpetual flag as described in [2]. The ConstantDepth behavior is provided to keep the
vehicle at a survey depth of 2 meters. The OpRegion behavior provides two safety checks. It limits
the total mission time to 600 seconds and limits the vehicle operation to be within the polygon
specified and rendered in Figure 1.
A good safety check would be to alter the max time and the polygon to allow the vehicle to
violate their limits and check that the helm properly posts the flag IVPHELM ENGAGED="DISENGAGED",
and that the iREMUS module properly reads this handles this properly by either bringing the vehicle
back to the surface, or handing control back to the REMUS front-seat computer, or both.
5
Training Missions
So as to allow users to easily understand the role of each of the sub systems of the MOOS-IvP
AUV system this tutorial is broken down into 5 increasingly complicated missions. An overview of
the 5 missions is as follows:
• m1 SIMULATE auv only: A beginner-level simulated mission which demonstrates the motion the
AUV is expected to make. The HelmIvP behavior configuration in this mission is common
to all subsequent missions (i.e. the vehicle does the thing it will be expected to do but in
simulation).
• m2 SIMULATE auv and shoreside acomms: The same mission as above except with the addition of
SIMULATED acoustic communication between the AUV MOOS community and a simulated
shoreside MOOS community commanding the AUV. This is mission to use to test and perfect
your acoustic packet designs.
• m3 REAL auv shoreside acomms no recon: Again maintaining the same mission, but now transferring the AUV MOOS community to a separate computer1 and integrating real WHOI
MicroModem hardware.
• m4 REAL auv shoreside acomms with recon: In this final mission the MOOS community will
interface directly with the main REMUS computer via RECON - but in simulation. Using
the REMUS simulation mode allows operation using exactly the same procedure and settings
as one would use in a real experiment.
• Actual Operation: Using EXACTLY the same mission configuration as in the previous example, the real world mission can be carried out.
Also see Figure 2 for an overview of each mission.
1
Not necessarily on the AUV
8
(a) Simulated AUV alone
(b) SIMULATED
acomms
(c) REAL AUV and shorseide acomms, no
RECON
auv
and
shoreside
(d) REAL AUV and shoreside acomms,
with RECON
Figure 2: The four levels of this training manual: from simulation to real world operation. Real
world operation uses exactly the same configuration as the final simulation
9
5.1
SIMULATE auv only
Located in the folder m1 SIMULATE auv only is the most basic tutorial mission. The mission can
be compiled from the required plugs by entering:
$ ./expand_nsplug.sh
And launched as follows
$ ./launch_remus.sh
This example mission is configured to launch all MOOS processes and the helm, with the helm
in a stand-by (‘‘PARK’’) mode (‘‘MOOS MANUAL OVERRIDE=TRUE’’).
The pMarineViewer window should pop up with the vehicle as shown in Figure 1. This is the
same pMarineViewer window that you will see when the real mission is run.
There are four buttons in the bottom right corner, “ENGAGE”, “ABORT”, “DEPLOY” and
“RETURN”. Push the “DEPLOY” button to start the vehicle in motion. In this simulation mode,
this pokes the DEPLOY=true message to the MOOSDB which triggers the conditions to be met for
the survey waypoint behavior. In water, this triggers an acoustic packet to be generated which is
sent to the vehicle. More on this later (The same goes for everything else described here).
The status of the vehicle can be monitored at the bottom of the screen.
Pushing the “RETURN” button invokes the return waypoint behavior and you should see the
survey path disappear and be replaced by a single point in front of the dock. Additionally, you can
update the return point by right-clicking on the display. In field operations, this method is used to
slowly guide the vehicle into the dock for recovery.
At this point, the “ENGAGE” button does nothing at all. In this future this button will be
used to transfer control from the frontseat vehicle controller to the backseat MOOS control.
The “ABORT” button should immediately halt the vehicle. Note that in the real water scenario,
the “ABORT” button will return the control to the frontseat, in which case the vehicle may
not completely stop, but will continue the frontseat mission that it was performing before the
“ENGAGE” button was pressed.
5.2
SIMULATE auv and shoreside acomms
Located in the folder M2 SIMULATE auv shoreside acomms: This mission adds a shoreside MOOSDB
communicating with the AUV using (simulated) acoustic communications using goby. Note that
compared to M1 there are now two META files (shoreside and remus) as well as two def files in
configs and two lines in the expand plugs.sh script and that the launch.sh has been replaced with
launch remus and shoreside.sh. The “virtual ocean” is implemented with the goby store server
application, which is effectively a database server, and is also launched in launch remus and shoreside.sh.
The main changes to the META remus.moos file are that the pMarineViewer application has been
removed (it is moved to the shoreside), and the new application for handling acoustic packet transmission and reception, pAcommsHandler, is included. This is a good configuration to test out new
message definitions.
Included in the distribution are 4 message definitions as protobuf files in /src/protobuf . They
are as follows:
• acoustic moospoke.proto: The listing is given below:
10
import "goby/acomms/protobuf/dccl_option_extensions.proto";
message acoustic_moospoke
{
option (dccl.msg).id
= 102;
option (dccl.msg).max_bytes = 32;
required string moos_var = 3 [(dccl.field).max_length = 10];
required string val
= 4 [(dccl.field).max_length = 19];
}
which gives the ability to pass ANY MOOS variable through acoustics by posting something
like:
ACOUSTIC_MOOSPOKE="MOOS_VAR=val"
Note in this case the var and val are cut at 10 and 19 characters respectively.
• binary moospoke.proto: The listing is given below:
import "goby/acomms/protobuf/dccl_option_extensions.proto";
message binary_moospoke
{
option (dccl.msg).id
option (dccl.msg).max_bytes
enum Var
enum Val
required
required
= 103;
= 32;
{DEPLOY = 1; MOOS_MANUAL_OVERRIDE = 2; RETURN = 3 ; RECON_ENGAGE = 4; RECON_XM
{TRUE = 1; FALSE = 2;}
Var moos_var = 1;
Val bool_val = 2;
}
This message gives a more efficient way of passing variables that are either “TRUE” or
“FALSE” than passing them as strings as with acoustic moospoke. The different variables
that can be transmitted are enumerated in Var. In the example mission, both acoustic
moospokes and binary moospokes are triggered by pMarineViewer. Pressing the buttons
initiates binary moospokes for mission variables, and right clicking on the display initiates an
acoustic moospoke that transmits the new waypoint.
• node report.proto: The listing is given below:
import "goby/acomms/protobuf/dccl_option_extensions.proto";
message node_report
{
option (dccl.msg).id
= 101;
11
option (dccl.msg).max_bytes = 32;
optional string TIME = 1 [(dccl.field).max_length=3, default="NOW"];
enum VehicleType {uuv = 1; usv = 2; ship = 3; glider = 4; }
enum VehicleName {remus=1;iver=2;}
enum VehicleMode {PARK=1;DRIVE=2;DISENGAGED=3;NOHELM=4;}
optional VehicleType TYPE = 3 [default=uuv];
required VehicleName NAME = 4;
required VehicleMode MODE = 5;
required double X = 6 [(dccl.field).max = 1000, (dccl.field).min = -1000, (dccl.field).
required double Y = 7 [(dccl.field).max = 1000, (dccl.field).min = -1000, (dccl.field).
required double SPD = 8 [(dccl.field).max = 5, (dccl.field).min = 0, (dccl.field).preci
required double HDG = 9 [(dccl.field).max = 360, (dccl.field).min = 0, (dccl.field).pre
required double DEP = 10 [(dccl.field).max = 100, (dccl.field).min = 0, (dccl.field).pr
required double LAT = 11 [(dccl.field).max = 43, (dccl.field).min = 41, (dccl.field).pr
required double LON = 12 [(dccl.field).max = -70, (dccl.field).min = -72, (dccl.field).
}
This message is sent from the vehicle back to the shoreside and automatically parsed to
generate a node report which is displayed by pMarineViewer.
• view point.proto: The listing is given below:
import "goby/acomms/protobuf/dccl_option_extensions.proto";
message view_point
{
option (dccl.msg).id
= 105;
option (dccl.msg).max_bytes = 32;
required double x = 3 [(dccl.field).max = 500, (dccl.field).min = -500, (dccl.field).pr
required double y = 4 [(dccl.field).max = 500, (dccl.field).min = -500, (dccl.field).pr
optional string label = 5 [(dccl.field).max_length = 10];
}
This message is used to send back the new waypoint confirmation so that it can be updated
on the pMarineViewer display. As a result, we should be able to infer where the vehicle is
heading (at least at the time that the last acoustic message was sent).
NB: for this mission to work correctly, the protobufs must be properly compiled.
This can be done by running:
$ ./build_proto.sh
$ ./build.sh
in the top level directory. To confirm that this has happened properly you should now
see the libremusprotobufs.so in the lib directory.
Also launched will be pAcommsHandler for both MOOSDBs. The pAcommsHandler is used in
this case to handle the queueing of messages (deciding which stuff to send) and also the encoding
12
and deconding of variables, as well as the medium access control (MAC) for determining which
nodes in get to transmit at which times. The same configuration for pAcommsHandler is used for
the shoreside and the vehicle. In the plug for pAcommsHandler, you will see a block for each of
the protobufs just described in the queue cfg and a seperate translator entry. For example, for
the node report message the translator entry block is:
translator_entry {
protobuf_name: "node_report"
trigger {
type: TRIGGER_PUBLISH
moos_var: "NODE_REPORT_LOCAL"
}
create {
technique: TECHNIQUE_COMMA_SEPARATED_KEY_EQUALS_VALUE_PAIRS
moos_var: "NODE_REPORT_LOCAL"
}
publish {
technique: TECHNIQUE_COMMA_SEPARATED_KEY_EQUALS_VALUE_PAIRS
moos_var: "NODE_REPORT"
}
}
which tells pAcommsHandler when and how to create a node report and how to publish it (in
this case using the TECHNIQUE COMMA SEPARATED KEY EQUALS VALUE PAIRS).
You can use pAcommsHandler’s visual interface to keep track of modem traffic, see Figure 3.
Note that pLogger is also configured to launch, which will log both the AUV and the shoreside
mission data.
The mission is deployed, controlled and observed throught the pMarineViewer display in the
same way as with mission m1, however in this case node report updates are much less frequent.
As the mission proceeds vehicle positions will be transmitted from the AUV every 10 seconds
and displayed by pMarineViewer as see in Figure 4.
At this point the user should launch the mission and confirm that all anticipated functionality
is working correctly through the pMarineViewer interface.
5.3
REAL auv shoreside acomms no recon
In this mission, operation will be as in previous missions — however we will utilize the REMUS
playload as well as actual acoustic modem hardware. Connect the acoustic modem to the laptop
and use a 12 volt battery to power it. Make sure to place it beside the REMUS transducer to
ensure successful transmission.
To log onto the payload computer: start the AUV by removing the magnet and make sure
that the vehicle first communicates with the Hydroid VIP program. The following are the vehicle
computer ip addresses and the login information
mitremus.csail.mit.edu (within csail)
192.168.1....
71 - vehicle frontseat
72 - sidescan
13
Figure 3: pAcommsHandler visual GUI mode: Two instances of pAcommsHandler - one for
the UUV (left) and the shoreside (right). The MAC blocks indicate that control of communication is
only from the shoreside. Other interesting blocks include (4) Decoder messages: showing messages
which have been received, decoded and publised to MOOS; (8) Outgoing: showing which message
was most recently sent and (10 & 11) I/O between the actual hardware and the application.
Figure 4: pMarineViewer during ops: This figure appears exactly as the mission would appear
in a real mission. Note the infrequent updates of the vehicle position.
14
74 - payload or RECON computer
75 - topside
Payload computer account:
username: ruser
password: usual pwd
Log onto the payload computer.
Take a look at the Micromodem configuration blocks. In this case, the laptop and the REMUS
will access a USB (ttyUSB0) and serial (ttyS1) respectively. To verify that the modems are working
properly, launch the minicom utility. You will observe the MicroModem status message every 10
seconds as follows
$ minicom -D/dev/ttyUSB0
$CAREV,085820,INIT,0.93.0.30*55
$CAREV,085820,AUV,0.93.0.30*0D
To demonstrate that the modem can transmit via the transducer, send it a polling request:
printf ’$CCMPC,1,2\r\n’ > /dev/ttyUSB0
This will result in an audible acoustic chirp from the transducer.
Having verified that the modem is operating, the next step is to launch the missions using the
respective launch scripts. After about 20 seconds you should begin to hear audible acoustic sounds
and see successful acoustic transmissions on the pAcommsHandler GUI.
You can now use pMarineViewer to deploy the REMUS to do its mission — except in this case
the message will be sent acoustically.
5.4
REAL AUV shoreside acomms, with RECON
Having competed the experiment above, almost all the pieces are in place to do an actual experiment. The final tutorial uses the actual main computer – payload computer interface as well as
simulation software on board the main computer. This gives the mission exactly the same look and
feel as a real experiment.
First it is necessary to prepare the main vehicle computer by providing it with a basic backup
mission. The basic backup mission is located in FINISH THIS BIT AND PUT THE REMUS
MISSION FILE IN THE SVN. Load this mission onto the vehicle (though it may be the defualt
mission anyway).
The VIP interface will appear as illustrated in Figure 5. IMPORTANT: Before launching this
mission however, make sure to enable the simulation mode by clicking as indicated in Figure 5
In this case, instead of using the uMarineSim and pMarinePID processes to simulate and control
the low level control of the vehicle we will use the iRecon process to communicate with the main
vehicle computer and the main vehicle computer will then simulate navigation performance.
Once more, the mission is deployed and monitored using pMarineViewer.
5.5
Actual Operation
Having competed these tutorials, no changes need to be made when transitioning from REAL AUV
shoreside acomms, with RECON to in water operation. Except for real world issues (such as boats,
shallow water, errors in deploying beacons etc.), the mission should be completed in exactly the
same manner as for the last simulation.
15
Figure 5: Hydroid’s Vehicle Interface Program (VIP): The Simulation button is located in
the lower right.
5.6
REAL shoreside listen only
This mission configuration is setup to decode REMUS ranger and status messages at the shoreside.
It could be used to run a REMUS mission in which no acoustic communication takes place. It is
documented here for completeness and is not part of the tutorial.
16
References
[1] Michael R. Benjamin. MOOS-IvP Autonomy Tools Users Manual Release 4.2.1. Technical Report MITCSAIL-TR-201136, MIT Computer Science and Artificial Intelligence Lab, July 2011.
[2] Michael R. Benjamin, Henrik Schmidt, Paul M. Newman, and John J. Leonard. An Overview of MOOSIvP and a Users Guide to the IvP Helm - Release 4.2.1. Technical Report MIT-CSAIL-TR-2010-037,
MIT Computer Science and Artificial Intelligence Lab, August 2011.
17
Figure 6: Safely deploying the REMUS from the dock
Appendix - Information on MIT Platforms and Facilities
Notes for operating the REMUS 100 in the Charles River
When preparing software and testing drivers, it is sufficient to tie the AUV to the side of the dock
or to rest it on its stand. Deploying from the dock is the most straightforward manner. Make sure
to point the AUV away from the dock as it has no concept of where the dock or river wall are —
see Figure 6.
• The depth of the river in the vicinity of the sailing pavilion is about 4m. See Figure 7.
Minimum safe altitude for operation is about 2m. The rudder of the MIT sailing boats is
about 1m.
• Range of the Wireless router: about 100m. (Has not yet been used when amplified.)
• Acoustic Communication: The Charles is a difficult environment for acoustic comms - especially with reflections from the wall behind the pavilion. LBL ranges - via the Hydroid
Ranger
List of Equipment required for operations:
• Two acoustic transponders, positioned at opposite corners of the dock. Ideally at 2m depth.
Care should be taken to place them at the locations specified in the VIP mission. TODO:
buy GPS unit to do this.
• A deck box Micromodem with a sufficiently long transducer cable to reach from the sailing
school to the water. A 12V battery (A 24V supply might give better performance)
• Hydroid wireless router, base station charging unit and the Ranger device.
• A power strip and several network cables.
• MIT REMUS Ops toolkit. TODO: make toolkit ;)
Glossary
MOOS and MOOS-IvP:
18
Figure 7: Water depth near to river: INSERT PICTURE OF SURVEY OF RIVER DEPTH.
• Main vehicle computer - the manufacturer-supplied low-level vehicle controller. Also known
as the primary controller.
• Payload computer - the user-maintained high-level vehicle controller. Communicated with
the main vehicle computer: sending commands and receiving navigation information.
• MOOS Process - an executable which carries out a modular action e.g. a sensor driver, a high
level controller, a navigation engine. Communication between processes via the MOOSDB
and TCP protocol.
• IvP Behavior - software modules for the operation of discrete tasks eg holding position,
surveying, keeping depth, trailing. Evaluated and combined using the pHelmIvP MOOS
process.
Acoustic Communications:
• Goby-Acomms - a set of open source software libraries for acoustic communication
• pAcommsHandler - a MOOS process which uses the goby libraries.
• MAC - Medium Access Control - A set of procedures for ensuring collision-free communications on a shared channel such as the marine acoustic channel.
• CCL - Compact Control Language - A language for specifying the structure of binary data
transmitted using the MicroModem. Developed at WHOI, supplemented by Goby-Acomms
as DCCL.
• topside or shoreside - a generic name for the mission control laptop and its acoustic modem.
Hydroid and REMUS:
• REMUS 100 - the name and model of the AUV sold by Hydroid
• VIP - Vehicle Interface Program - Hydroid’s program for vehicle debugging, mission planning
and operation. As shown in Figure 5.
19
Figure 8: Hydroid’s Ranger Device.
• RECON - a UDP/TCP interface between the main vehicle computer and the payload at the
frequency of 10Hz or less. Messages are plain text strings of the following format:
#S, T 11 : 09 : 21.6, LAT 33N 14.9322, LON 117W 27.0600, D − 0.02...
The iRecon MOOS process implements this interface protocol.
• Ranger - device for vehicle ranging and status updates (Figure 8). When using MOOS and
Goby-acomms the device can only provide range measurements. Additionally, mission abort
is possible independent of the WHOI MicroModem and MOOS.
Post Mission Maintenance and Data Storage
Post mission logs can be removed from the AUV and the shoreside laptop and place at this location
on the AFS:
/afs/csail.mit.edu/group/marine/data/mit_remus_100
Additional information about sensors, components and manuals is located at
/afs/csail.mit.edu/group/marine/equipment/marine
The vehicle should be washed down after operations using a hose and a cloth for about 10–15
minutes. This is of particular importance when operating in salt-water so as to avoid corrosion.
20
Download