- Author:
- Christian Neukom
- Date:
- 1/24/2005
The K9Subsystem module was created to support the IS demonstration. It includes power and task time models that are based on data collected by the K9 development team and an instrument placement failure model that has failure modes specified in the K9 user interface design.
- Power:
- The following three loads are defined for the model according to data1 collected by the K9 team:
- MEAN_IDLE_LOAD = 60.96;
- MEAN_DRIVING_LOAD = 66.01;
- MEAN_MANIPULATOR_LOAD = 14.12;
The model computes the sum of these loads according to the task the rover is executing and discharges the battery at that rate.
The model also supports variable loads according to a random distribution with the above means and the standard deviations listed below, which were obtained from the data collection by the K9 team. A new load is computed each time the rover starts to move or the instrument arm is placed.
- IDLE_STD_DEV = 1.23;
- DRIVING_STD_DEV = 11.29;
- MANIPULATOR_STD_DEV = 11.66;
- Failure:
- Failure can occur during the following stages of instrument placement:
- Rock segmentation
- Placement location determination
- Placement location in range det. (move base required?)
- Instrument placement
Failure at each stage is determined through a random function that takes a probability as parameter. It is also possible for a user to interactively set the stage of failure. The default probabilities are listed below and can set by the user in a file2.
- PROBABILITY_OF_ROCK_SEGMENTATION_FAILURE 0.3
- PROBABILITY_OF_PLACEMENT_LOCATION_DETERMINATION_FAILURE 0.2
- PROBABILITY_OF_BASE_ADJUSTMENT_REQUIRED = 0.5
- PROBABILITY_OF_PLACEMENT_FAILURE 0.1
- Task Time:
- The task time of instrument placement varies depending on what stage of the task the failure occurs. The following three average times were measured by the K9 team for the various subtasks of instrument placemen:
- Segmentation 50 sec (sum of acquisition, computation, segmentation)
- Placement location determination 10 sec
- Instrument placement 156 sec
The task time to the point of failure or success is the sum of the completed and/or attempted subtasks. Bellow is a list of task times according to the mode of failure or success:
Segmentation succeeded/failed 50 sec
Placement location determined succeeded/failed 60 sec
Placement succeeded/failed 216 sec
K9Subsystem RobotName [ [interactive] variablePower ]
- No Parameters:
- If the program is run without any optional parameter (e.g. K9Subsystem RobotName) the failure mode of the arm placement is statistically determined according to the probabilities defined in K9Subsystem/FailureData.txt
- Interactive:
- The optional parameter, "interactive", causes the program to pop up a window each time the model captures a placeInstrument interaction, which prompts the user to input the level of failure for that particular instrument placement task. The following failure options can be selected:
- Rock segmentation failed
- Placement location determination failed
- Placement location out of range
- Instrument placement failed
- Loss of tracking
- Instrument placement succeeded (no failure)
- VariablePower:
- The variablePower flag determines if the power consumption varies during idle, driving, and instrument placement tasks. If the variablePower parameter is not entered as a command line parameter, the power model uses the constant loads defined in the K9Constant.h file. If the flag is set, the power consumption for each task is determined by a random distribution function with mean and standard deviation defined in the K9Constant.h file.
The K9Subsystem publishes the following object classes and interactions:
The K9Subsystem subscribes to the following object classes and interactions:
- WheeledLocomotor
- InstrumentedArmPlaceInstrumentInteraction
- ComponentStopInteraction
In order for the K9Subsystem federate to run successfully in a simulation, it has to discover the following object instances:
- WheeledLocomotorInstance robotName:Locomotor
where robotName is the name entered at the command line.
A federate that wants to use the K9Subsystem must discover the following object instances:
- InstrumentedArmInstance robotName:IP
- BatteryInstance robotName:Battery
where robotName is the name entered at the command line.
Remark: Do to special requirement in the Conditional Exec, the return value is set to CMD_COMPLETED instead of COM_ERROR when the IPPlaceInstrument command fails.
The K9Subsystem component includes a small GUI that displays the load and the battery charge of the rover. Three indicators give information about the current activity of the rover, including idle, arm placement, and driving. The GUI also allows the user to set the battery charge (up to the capacity of the battery) to a new value.
K9-Subststem GUI panel
For testing, run an RTI and the following three components:
MSF/components/K9Subsystem roverName
MSF/components/test_K9Subsystem roverName
MSF/components/manager/SimManager 3
The test program creates a WheeledLocomotor and a shell for discovering the InstrumentedArm instance published by the K9Subsystem. At 10 seconds simulation time, the test program sends a placeInstrument interaction and displays the status of the task. At 15 seconds simulation time, the moving flag is set to driving and reset again at time 26 seconds.
Code and data of the K9Subsystem model reside in the MSF/component/K9Subsystem directory and include the following files:
I_PopupPanel.h // Popup interface
I_SubsystemPanel.h // GUI interface
K9Constants.h // Constant definitions
K9Subsystem.cpp // main program
InstrumentedArmImpl.cpp // Instrumented Arm model
InstrumentedArmImpl.h
PopupPanel.cpp // User input GUI
PopupPanel.h
PopupPanel.fl // FLTK design of K9Subsystem GUI
PowerMgr.cpp // Power management model
PowerMgr.h
SubsystemPanel.cpp // GUI of K9Subsystem
SubsystemPanel.h // GUI of K9Subsystem
SubsystemPanel.fl // FLTK design of K9Subsystem GUI
makefile
FailureData.txt // Failure probabilities for instrument placement
K9SubsystemDoc.dox // This document in doxygen format
test_K9Subsystem.cpp // For testing the K9Subsystem
1. These constants are currently defined in the file, K9Constants.h, which is located
in the K9Subsystem directory together with the source files. It is our plan to define
the model constants in a XML model description file in a later release of MSF.
2. Probabilities of failure are defined in the file FailureData.txt, which is located
in the K9Subsystem directory. . It is our plan to define these values in a XML model
description file in a later release of MSF.
Generated on Thu Apr 7 18:21:16 2005 for MST API by
1.4.1