Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Launch scripts - scripts that build the final moos file and launch your mission.

uFld - New tools for communication

Note, these uFld apps are no longer used in the default missions because the bandwidth overhead the occur can be significant when using the freewave radios.

The uFld toolbox contains applications designed to ease deployment and simulation of multiple vehicles.  Complete documentation is available on the moos-ivp website or in the svn docs folder.  These applications still require pMOOSBridge to be run but can simplify configuration.  

pHostInfo

This application identifies the network info on each machine and is used by the other applications when configuring pMOOSBridge.  If pHostInfo is identifying the local IP address as "localhost" instead of "192.168.1.xxx", check that ifconfig can be run without root privileges.  If not, /sbin/ may need to be added to the path.  

Shore <-> Vehicle: uFldNodeBroker and uFldShoreBroker

These two applications let you write very simple configs and then will setup pMOOSBridge after your mission starts running.  See the full documentation or baseline mission for examples of the configuration.  As the names would imply, uFldNodeBroker runs on the vehicles and uFldShoreBroker runs on the shore.  

Vehicle <-> Vehicle: uFldNodeComms and uFldMessageHandler

These are a little more complicated.  Rather than send a specific MOOS variable from one vehicle to another, they let you set any MOOS variable on another vehicle with no configuration in advance.  First of all the variable NODE_MESSAGE_LOCAL needs to be bridged from the vehicles to the shore under the alias NODE_MESSAGE.  Similarly, NODE_MESSAGE needs to be bridged from the shore to all the vehicles.  Both of these are already configured in the baseline mission.  

To send a message to another vehicle you just post a standard structure to NODE_MESSAGE_LOCAL.  For example if I were running an example on nostromo and wanted to set ACOMMS_TRANSMIT_DATA on icarus to "hello" I would do the following:

Code Block

m_Comms.Notify("NODE_MESSAGE_LOCAL", "src_node=nostromo,dest_node=icarus,var_name=ACOMMS_TRANSMIT_DATA,string_val=hello");

On the vehicle's, uFldMessageHandler processes incoming node messages and posts to the requested MOOS variable.  On the shore, uFldNodeComms receives node messages from the vehicles, determines if they will be forwarded based on its configured communication restrictions (range, etc.), and forwards the messages to vehicles as needed.  You can also run uFldMessageHandler on the shore if you want to receive node messages there. 

When to use and when not to use - node messages aren't always the way to go.  They are good for occasional posting, especially when you want to send many different MOOS variables without setting up a pMOOSBridge config for each one.  Not sure if this has been fixed, but in the past there was an issue where if you sent too many node messages (order of several per second or more), not all of them would get through.  If sending lots of stuff really fast, try it in simulation to make sure it works.  If not, you can always configure pMOOSBridge the old fashioned way or, better yet, rethink what you're doing.  

nsplug - breaking up MOOS files

...