AUVSim Version 4.61 Help
Quick Start Tips
Tutorial
Release Notes
Quick Start Tips
- Delete any previous versions of AUVSim (and AUVSim.ini, which should reside in the same folder) before installing this version. Past AUV configuration data files will no longer work with this version.
- This application is now bundled in a self-extracting zip file. WinZip (or similar unzip) program is no longer necessary to unbundle the application.
- Before trying to connect to the Environment Server, make sure you have first configured an AUV. Use the Edit->AUV Configuration dialog to do this, or Open an existing data file (.auv files).
- Use the Save command to save your modified AUV configuration between sessions of AUVSim. If you do not perform this Save, any modifications to your AUV configuration will be lost when you exit AUVSim.
- A connection to the Internet (28.8+ kbaud) is required to connect to the Environment Server.
- The correct host and port values to connect to the Environment Server should be pre-configured with the AUVSim program. Use the Environment Server Status web page to view available simulations as well as updated host and port values.
- This version of AUVSim includes a prototype aggregate behavior called Virtual_3_AUV. In this group behavior, 3 AUVs will coordinate their movements to transit to each of three separate station
locations. While at-station, the vehicles will loiter (maintain position) for a fixed duty cycle period. When
this time expires, each AUV will then move to the next station (station 1->2, 2->3, 3->1), and repeat the
process indefinitely.
This is a prototype aggregate behavior that utilizes the Maneuver and Communicate generic behaviors as an
interface for monitoring and control of a group of AUVs. For this behavior, 4 AUVs are required: one to act as
the operator to issue the behavior request, and 3 AUVs to carry out the group behavior. At the start, AUV #1 will transit to station #1, AUV #2 to station #2, AUV #3 to station #3. Group behavior is keyed off of receipt of exchanged INFORM messages; if a vehicle does not receive a specific INFORM message from all other partners, it will not move into the next phase of it's behavior. There is currently no timeout period in waiting for messages. To stop the behavior, the operator AUV should issue the "Stop" request to the group.
There is currently no collision detection among vehicles. Vehicles travel at their predefined cruise speeds while executing the Virtual_3_AUV behavior and are considered to have reached their station if within 0.5 m of the target specification.
- Aggregate behaviors are now encapsulated into seperate DLLs. This allows developers to independently program aggregate behaviors, based upon a set of standard generic behaviors incorporated in AUVSim. These aggregate behaviors can then be called dynamically at AUVSim run time. Note the Behaviors directory in the AUVSim install directory that is used to store all aggregate behaviors. If you wish to obtain instructions and code templates for developing aggregate behaviors for AUVSim, contact Rick Komerska at AUSI (603-868-3221, komerska@ausi.org).
Tutorial
General Considerations:
The application requires a computer running Windows95/98/NT4.0/2000/XP, preferably on a Pentium or better
processor. A network connection to the Internet is also required. We have had mixed results running the client from behind a firewall - good luck if you try this. CPU requirements for AUVSim are minimal. Bandwidth required is approximately 5 kbit/s baseline, with additional 4 kbit/s per inter-vehicle command message sent or received. Assuming communications chatter between vehicles is not too heavy, you should be able to run several AUVSim clients on a single box over a 56K modem without problems.
The vehicle simulators use simple controller algorithms for maneuvering to attempt to achieve their target position. They are far from perfect and their primary use is to demonstrate different kinds of control to achieve similar goals. The vehicle simulator receives sensor updates and new position from the Environment Simulator Application (ESA) and sends its current "thrust" velocity back to the ESA.
The AUVSim application interface uses a set of menu dialogs above a primary status window to inform the user of program status. You cannot type directly into the status view - it is for informational display only.
Follow these steps to obtain and run the AUVSim program:
- Download the self-extracting zip file from the Client Applications section of the CADCON web page. Extract the file using the Unzip option. You will find the executable, several sample AUV configurations, and a file called "AUVSim.ini".
- Launch the AUVSim application by double-clicking on it.
- Configure a new AUV simulation, or open an existing configuration. To configure a new simulation, open the Edit->AUV Configuration window. To save a simulation configuration, chose File->Save. By convention, you should save the file with the same name as the AUV Name chosen in the AUV Configuration->System tab view. Files are appended with the .auv extension. The following tabs are available in the Configuration View:
System:
Fill in the Name and Group fields (Owner field is currently not user configurable). You should not use spaces in the names. The Name label is most critical as it is used to identify the vehicle during all inter-vehicle communication in the virtual environment. Pick an AOSN functional type. ("AOSN" is an acronym for "Autonomous Oceanographic Sampling Network", a concept that loosely refers to a heterogeneous fleet of autonomous ocean platforms capable of remote, long-duration sensing/sampling missions. The AOSN functional types listed in the AUVSim configuration view are a small subset of the many types that could exist for different platforms.) Click on "Apply" or "OK" to save these tab view settings; changes will not be recorded unless this is pressed.
Control:
This view, and the following five views, represent configuration parameters for the primary subsystems on the platform. To enable a subsystem, check the "Enable/Disable" box in the respective subsystem tab views. Disabling a subsystem implies that subsystem will not be present on the vehicle during the simulation; i.e., disabling the Communication subsystem means the vehicle will not be able to send or receive simulated acoustic messages. (A Control subsystem must be selected, therefore the option to disable it has been greyed out.) Select a body/control type. The body type controls the allowable motion and control characteristics of the vehicle. Note that the mooring type cannot move. Also, the Solar AUV and Torp controllers behave identically at this time. The crawler remains fixed to the bottom surface and is not restricted to the underwater environment. Fill in the vehicle capabilities as appropriate. Select the baseline power that this subsystem draws. This can be used if you wish to model the effects of power consumption on the vehicle. Finally, select whether to log elements of the subsystem status to disk. For logging to work, the Data Logging subsystem must be enabled. Click on "Apply" to save these tab view settings.
Navigation:
Currently, this subsystem only displays location and orientation information of the AUV: it is not used directly in the control of the vehicle. If the W3DNavDLL.dll file is present in the same directory as the AUVSim client, the user will have the option of selecting Magnetic Navigation or Default Navigation. With the Magnetic Navigation configuration option selected, the user can monitor their simulated vehicle's "true" position against the calculated position determined from the algorithms, based on sensor reading from the simulated magnetic dipole transmitter located at the origin in the virtual environment. The configuration option is available if the proper library (W3DNavDLL.dll) is present on the user's computer. Contact Tony Aponick at Foster-Miller Inc. (781-684-4300, taponick@foster-miller.com) for more information regarding magnetic navigation technology and details on how to obtain this library. If the library is not present, the Default Navigation subsystem is automatically used, which simply shows the current position, depth, velocity and attitude of the vehicle as delivered to the vehicle sensors. Select the baseline power that this subsystem draws. Finally, select whether to log elements of the subsystem status to disk. Click on "Apply" to save the settings.
Communication:
This subsystem provides the capability of inter-AUV communication. The primary parameters available for this subsystem are power settings. The baseline power is the constant power requirement of the subsystem. Transmit and receive power values are assessed when messages are sent and received, respectively. These values should be set based on the assumption that message send/receive times are exactly one second, and are independent of message length. (This assumption is driven by the unknown size of real acoustic messages within the simulation at this time.) Parameters are now availabe for communications system type. Options include: perfect, acoustic and ARGOS 1 satellite link. The user can also assign a unique channel ID to communicate on. Messages will only be acted upon if the received message communications type and channel ID match with the receiving VIP's capabilities. Select whether to log elements of the subsystem status to disk. Click on "Apply" to save the settings.
Propulsion:
The Propulsion subsystem provides the vehicle the ability of actively moving through the underwater
environment (as opposed to passively moving by way of water currents). With this subsystem enabled, the user can also set the power requirements of the vehicle for different linear "thrust" velocities. The thrust-power profile uses linear interpolation between user supplied data points, and is bounded by the endpoint values. Select whether to log elements of the subsystem status to disk. Click on "Apply" to save the settings.
Energy:
This subsystem provides the capability for the AUV to monitor and assess vehicle energy usage. The baseline power is the constant power requirement to operate the Energy subsystem itself. Initial energy is used to represent the starting energy fraction of the energy capacity on the vehicle. Select whether to log elements of the subsystem status to disk. Click on "Apply" to save the settings. Options are battery and solar/battery. If solar/battery option is chosen, vehicle will automatically recharge it's batteries using solar insolation input while on the surface.
Data Logging:
The Data Logging subsystem provides the user the ability to log data regarding the subsystems and sensors. This subsystem can be assumed to be a part of the simulated AUV, and power values can be set to assess it's impact. Or the user may wish to use the subsystem to artificially monitor the AUV, and set the power requirements to zero. Data is logged to disk files, one per logged subsystem or sensor, at intervals corresponding to the indicated update period. The maximum log interval is 24 hours. Choose an appropriate file extension. Files are named automatically by the program using the following logic:
"AUVName_YYMMDD_SubsystemOrSensorName.extension", where
AUVName = AUV name chosen in Configure View,
YYMMDD = Year, Month and Day as 2 digit integers,
SubsystemOrSensorName = Name of the particular object data being logged,
extension = User selected file extension.
During a simulation, when a new day begins, the previous day"s log files are closed and new logfiles are automatically opened with the new day"s time in the file name. This facilitates the management of potentially large log files and allows older files to be archived while a simulation is running.
Sensors:
Sensors are used by the subsystem to access environment information shipped from the server. Their update rate is matched to the server-to-client update rate, set to 1 sec. Select the set of sensors you wish to include on your vehicle. Note that the controller and navigation subsystems require several sensors to function; these are noted on the appropriate subsystem configuration tab views. The client will indicate if a subsystem requires a sensor that has not been selected when the user attempts to log into the server, to allow proper update of the AUV configuration. Select the operating power requirements for each sensor; this power drain is assumed to remain constant while the vehicle is in the environment. Finally, select whether to log the sensor output to disk. Click on "Apply" to save the settings.
- Save the configuration by opening the File->Save As dialog. By convention, you should use the same name to label the file as you used to in the Configure Name field. To open an existing simulation configuration, use the File->Open dialog to select an existing file of type *.auv. If open, close the AUV Configuration window by clicking on the close icon in the upper right corner of the window.
- Host and Port information for connecting to the Environment Server are obtained by clicking on Environment Server Status. Enter these parameters into the Connect->Connection Preferences dialog. Also enter your User Name and Password. (If you don't know these, contact us and we will set you up with a valid pair. For evaluation purposes, the username "guest" and password "guest" will also permit connection to the server.) Enter a connect time - you will be disconnected from the ESA if you try to stay connected for longer than this time period. The server-to-AUVSim client update rate is currently fixed at 400 ms and the client-to-server update rate is 1 sec.
The Reconnection State information is used when employing AUVSim in a HITL role; this capability is disabled for the public release version.
- Connect to the Environment Simulator (ESA). Select Connect->Connect to Simulation. An available list of virtual environments will be presented. Select one by clicking on the Environment Name. Click Enter. At this point, the Simulation Entry Parameters window should open. This window shows the current environment being modeled. Enter values for the initial vehicle position. Note that at this time, the vehicle controllers do not correct for pitch or roll. Click on "Enter Sim" after values have been entered. Note that the connection status of AUVSim to the server is indicated at the bottom of the main window.
- You should now be participating in the environment simulation. Use the View menu to check
current sensor values and vehicle subsystem status. The Environment menu provides a status of the ESA update rate. You can disconnect from the ESA at any time by quitting the program or using the
Connect->Disconnect menu option.
- While connected, user interaction in controlling this and other vehicles is conducted by sending Generic Behavior commands. Use the Command->GB Command menu to open the Command Builder window. This window simplifies the task of constructing a GB command. Choose an appropriate command (currently the Generic Behavior commands Maneuver and Communicate, and a prototype Aggregate Behavior Virtual_3_AUV, are supported) and Recipient(s). Chose "Self" if this command is directed toward this vehicle. Clicking on "Create Command" constructs the appropriate command in the proper syntax and puts it in the edit view under the button. Click on the "Send Command" button to then send the message. If the recipient is "Self", the message will be routed to the vehicle controller, which will attempt to handle it. Otherwise, the AUVSim client will send a simulated acoustic message to the server, which then rebroadcasts it to all other AUV client simulators. It is up to these individual simulators to handle the message appropriately.
Release Notes (Change History)
Last Updated 6/4/2004 for AUVSim 4.61
Author: Rick Komerska
AUVSim 4.5 to AUVSim 4.61:
- Modified RPI adaptive sampling support for dissolved oxygen. Now responds to CCL request for "POSITION DEPTH HEADING DO". Response is "INFORM POSITION x y DEPTH z HEADING h DO o".
- Fixed old magnetic navigation interface developed by Foster-Miller, broken by communication protocol changes.
AUVSim 4.4 to AUVSim 4.5:
- Added support for dissolved oxygen sensor type. Database schema modified, so old file formats now invalid. GUI now reflects this new sensor type.
- Now responds to comms request for "POSITION DEPTH DO2" to support RPI adaptive sampling work. Response is "INFORM POSITION x y DEPTH z DO2 o", where x, y, z, o are values at the vehicle position.
- Fixed bug in INFORM CAPABILITIES reply, where minAltitude was not set as specified in GB ver. 1.7. Currently, this value is set to 0.0 and there is no GUI or controller handling of this parameter.
- Fixed bug where solar insolation not properly registered with server.
- Supports simulation data exchange protocol 1.93.
AUVSim 4.2 to AUVSim 4.4:
- Replaced use of MFC socketing code with custom built code, thereby (hopefully) fixing a long standing problem with unreliable client-server communication.
- Now support different simulated communications types: perfect, acoustic and ARGOS 1 satellite link.
- Fixed minor bug where headroom is not set in outgoing VIPpkt to server.
- Supports simulation data exchange protocol 1.92 and GB language version 1.7.
AUVSim 4.0 to AUVSim 4.2:
- Aggregate behavior functionality is now encapsulated through Windows Dynamic Link Libraries (DLLs). 3rd party developers can now build aggregate behaviors based on the implemented set of Generic Behaviors in AUVSim.
- Fixed bug that caused AUVSim to crash on Connect for Win98 boxes.
- Fixed annoying popup error window in Generic Behavior GUIs that appeared when user tried to enter in "-" sign before a value.
- Supports simulation data exchange protocol 1.91.
AUVSim 2.91 to AUVSim 4.0:
- Added first aggregate behavior; Virtual_3_AUV. May need further debugging. Generic Behavior interface architecture not yet complete, which will allow 3rd party behavior developers to build their aggregate behaviors into Windows DLLs and have them available for AUVSim to use without recompiling AUVSim.
- All internal timestamps for comms, subsystems and sensors are now referenced to server timestamp. Logs files now reflect this. VIPpkt updates (and hence internal VE, subsystem and sensors updates, are now fixed at 1 sec.
- Removed all multithreaded aspects of program to try and solve persistent socketing problem. Problem appears to manifest itself due to a thread deadlock situation. Primary timing of socketing now occurs through the receive of the VIPpkt.
- Added name of agent to each display dialog.
- Modified COMlen size in communicate.h to 2000 to support AUSNet requirements.
- Fixed a bug in socketing code where static msg buffers used by CArchive::Read were set too small. May have caused unpredictable socketing behavior.
- Added solar battery recharging code and gui for inputting efficiencies. Changed data file schema, so old *.auv files no longer will work.
- Merged CADCONSocket and VIP_CommandGUI projects back into AUVSim project, and link against static MFC library. AUVSim is now a standalone app (once again); all supporting libs are bound to the exe.
- Updated GB language from 1.41 to 1.6. Includes support for constant altitude specification in transit behavior, additional GB_REASON codes to support Virtual_3_AUV aggregate behavior, specification of multiple VIP names in message address, and the addition of some often used message data support structures. Also added GB_CommunicateMessage method, to allow VIPs to pass arbitrary info around (useful for aggregate-behavior level group coordination).
- Modified header files to support cloud cover, wind and plume environment types. This also entailed a protocol change to commprot 1.9.
AUVSim 2.9 to AUVSim 2.91:
- Fixed TCP socket connection bug introduced in ver. 2.9.
AUVSim 2.8 to AUVSim 2.9:
- Fixed bug in existing latitude/longitude to meter offset code to account for latitude of VIP in East-West distance. Also added code to acount for first order Earth oblateness.
- Modified socketing code to be more efficient.
- Supports simulation data exchange protocol 1.8, which utilizes more efficient VUpkt/VIPpkt structures. Previous versions of AUVSim clients will not be able to connect to the current Environment Server.
AUVSim 2.7 to AUVSim 2.8:
- Established standard client-server upload and download data rates; rate is now fixed at 1 sec update interval to server and 400 ms update rate to client.
- Optimized socketing code (fixed-length VIPpkt, better data handling)and broke it out into seperate dll. The result of this and the former modification are reduced network bandwidth use and a smoother screen redraw.
- Added server connection status line to bottom of main frame view.
- Broke out GB Command Builder to dll (requires AUVSim ship with MFC dlls).
- Added simple Help dialog pointing user to www.aus.org, CADCON pages.
- Provided double-click opening of environment in Available Environments dialog, when logging in to server.
- Added Solar AUV HITL monitoring and command dialogs (monitoring enabled). These dialogs are disabled for the public AUVSim release.
- Modified Connection Preferences dialog to allow user to join as new or returning agent. This interface is disabled for the public AUVSim release.
- Supports simulation data exchange protocol 1.7. Previous versions of AUVSim clients will not be able to connect to the current Environment Server.
AUVSim 2.6.1 to AUVSim 2.7:
- Application is now bundled in a self-extracting zip file. WinZip (or similar unzip) program is no longer necessary to unbundle the application.
- Streamlined server connection process. User no longer need consult a seperate web page to determine available simulation environments to join. Preferences interface (and AUVSim.ini file) now stores the host and port for a standard CADCON connection, which should change very infrequently.
- Added a warning dialog to catch a common user mistake of trying to connect to the server without first configuring an AUV.
- Rewrote (online) Readme file to be more user-friendly.
- Supports simulation data exchange protocol 1.6. Previous versions of AUVSim clients will not be able to connect to the current Environment Server.
AUVSim 2.6 to AUVSim 2.6.1:
- Supports Vehicle Instrument Platform (VIP) language protocol version 1.41. This protocol does not work with earlier protocols. The Command user interface supports construction of commands for this new protocol.
AUVSim 2.5b to AUVSim 2.6:
- Supports simulation data exchange protocol 1.5.
- Supports Vehicle Instrument Platform (VIP) language protocol version 1.4. This includes Maneuver (GB), Communicate (GB), Transit (Aggregate Behavior-AB), Maintain Position (AB). This protocol does not work with earlier protocols. The Command user interface supports construction of commands for this new protocol.
- Modified file format for saved data; this format is not compatible with earlier formats.
AUVSim 2.3.2 to AUVSim 2.5b:
- Modified GB command language. This version incompatible with earlier versions. Monitor GB commands may not work properly - this is under development.
- Streamlined AUV Configuration View.
- AUV Configuration Control tab enforces selection of a control subsystem.
- Data is shipped to the server using a single update frequency, set in the Connection dialog. This replaces independent frequency settings previously set in the AUV Configuration View. Data from the server (if any) is fixed at 5 Hz.
- Simplified GB Command view to permit direct sending of messages.
- Simplified Communications view.
- Owner field in AUV Configuration System tab is greyed out for future development purposes.
- The initial available energy can now be configured (AUV Configuration View, Energy tab) as a fraction of the total energy capacity.
AUVSim 2.3.1 to AUVSim 2.3.2:
- Modified GB command language. This version incompatible with earlier versions!
- Fixed bugs in vehicle controllers to obey HOLDPOSITION command.
AUVSim 2.3 to AUVSim 2.3.1:
- Fixed bug in energy calculations.
- Added new icon for program.
AUVSim 1.3.1 to AUVSim 2.3:
- Magnetic navigation algorithms developed by Foster-Miller Inc. can be employed in the AUVSim client. With this configuration option selected, the user can monitor their simulated vehicle's "true" position against the calculated position from the algorithms, based on sensor reading from the simulated magnetic dipole transmitter in the virtual environment. The configuration option is available if the proper library (dll) is present on the user's computer; contact Tony Aponick at Foster-Miller (781-684-4300, taponick@foster-miller.com) for more information regarding magnetic navigation technology and details on how to obtain this library.
- Monitor GB command implemented for monitoring energy subsystem status on multiple vehicles. Vehicles issued a Monitor command will respond with their current values for total available energy (mW-Hrs), total acquired energy (mW-Hrs), total expended energy (mW-Hrs), and elapsed collection time (seconds).
- Power/Energy requirements can now be assigned to specific subsystems and sensors to simulate energy usage on the platform. A dialog is provided during simulation for monitoring this energy usage.
- Configuration options are now broken out explicitly for the system, sensors and control, navigation, propulsion, power, communications and data logging subsystems.
- Added AUVSim.ini file for maintaining login preferences.
- Can now log subsystem as well as sensor data.
AUVSim 1.3 to AUVSim 1.3.1 (bug fixes):
- Potentially unpredictable movement behavior for Torps and Solar AUVs upon entrance into the virtual environment.
- (AUVSim console app only) Core dump if vehicle receives an empty acoustic message string.
AUVSim 1.2 to AUVSim 1.3:
- Bottom crawler vehicle type added.
- Minimum vehicle speed setting capability added.
- Data file version support: v1.3 will only open data files created by this version.
AUVSim 1.1 to AUVSim 1.2:
- More mission sensor types available (with simple display views).
- Data logging of sensor information.
- Tracking of total elapsed mission time in Environment Monitor.
- Uses simulation data exchange protocol 1.2.