Argonaut System Diagram
A View of Argonaut's Software
Copyright: |
Copyright 2007 Dean Hall. All rights reserved. |
Author: |
Dean Hall |
Revision: |
03 |
Date: |
2007/07/19 |
The following figure represents the Agronaut System Diagram.
Argonaut's system diagram is based heavily on that of the 2005
DARPA Grand Challenge winner, Stanley, as described in this paper.
The following figure shows the major software and hardware components of
Argonaut grouped by their logical functionality.
The following figure shows the connections of physical components in Argonaut.
- Battery Monitor:
All batteries should be monitored or measured by a MCU.
The easiest way is to read the voltage with an ADC.
- Encoders:
The drive motors shall have encoders on them to track of rotation (distance).
- IR Rangers:
Sharp IR distance measurement sensors to detect very near objects.
- Ultrasonics:
Ultrasonic distance measurement sensors to detect objects.
- Compass:
A digital compass to measure cardinal heading.
- GPS:
A Global Positioning System to receive the vehicle's coordinates.
- IMU:
An inertial measurement unit to track the vehicle's attitude, velocity and
displacement in 3-Dimensional space.
- Camera:
An image sensor to help find the objective and detect obstacles in the path.
- Sensor Monitor:
Takes input from: all sensors.
Checks status of all sensors regularly.
Reports to other layers on a sensor's status so behaviors or algorithms
can change if a sensor is disabled, untrustworty or otherwise compromised.
- Heading:
Takes input from: Compass, Encoders and IMU.
Averages the compass readings over time to increase accuracy.
During a rapid turn, uses encoders and IMU as immediate additives to the
best estimate.
- Attitude:
Takes input from: IMU
Gives angles from surface-relative coordinates.
Used to find when nose is too far up or down, vehcile is upside-down,
or some other extreme orientation.
- Location:
Takes input from: GPS and IMU
Averages the GPS readings over time to increase accuracy.
When GPS signal is unreliable, uses IMU as an immediate additive to the
best estimate.
- Stuck/collide:
Uses input from: Encoders, IR, Ultrasonic and IMU
A virtual bumper system is created by the difference between the encoders
and the IMU: if the encoders think the vehicle is moving, but the IMU shows
otherwise; a collision has occured.
Also, if the IMU shows the vehicle returning to the same spot repeatedly,
a stuck condition is noted.
IR and Ultrasonics are used as additive data to note when something has come
too close to the vehicle (inside the range of the IR)
- Path Condition:
Takes input from: Camera, IMU.
Uses statistical analysis on recent IMU data to quantify the smoothness of
the driving surface.
- Obstacle:
Takes input from: IR, Ultrasonics and Camera
Uses range measurements and vision algorithms to determine if the immediate
path is passable.
- Objective:
Takes input from: Location and Camera
Uses location and vision algorithm to determine if the vehicle has arrived
at the marked waypoint.
- Steering:
Behaviors that influence steering are inputs to a fuzzy logic controller.
Adjustments to steering are made to the first derivative so steering is
always smooth. Emergency behaviors can make immediate and full-limit
adjustments to steering that overrides the output of the fuzzy logic
controller.
- Throttle:
Behaviors that influence throttle are inputs to a fuzzy logic controller.
Adjustments to throttle are made to the first derivative so speed is
always smooth. Emergency behaviors can make immediate and full-limit
adjustments to the throttle that overrides the output of the fuzzy logic
controller.
- Manual command:
When remote manual operation signals are given, manual command overrides
all automous commands.
Loop Detection:
The system shall store location coordinates at certain critical points
so that it may determine if the vehicle has visited the location previously.
This information shall be used to break from the active behavior causing
the loop.
Instant Navigation:
Information from the sensor and fusion layers is used to determine the
immediate path to take for the next short duration of time or distance.
This module handles the following situations:
Avoid an obstacle when the obstacle module detects one.
Steer toward a clear path when the current one is rough.
Extricate the vehicle if a collision has occurred.
Guide the vehicle in tactical situations:
- Around competitor vehicles.
- Through special vehicle challenges.
Waypoint Navigation:
Mission waypoint locations are known global values.
Information from the sensor and fusino layers is used to direct the vehicle
toward the next waypoint.
This module handles global guidance during normal cruising situations.
- Steering Servo:
This is the actuator system used to guide the vehicle (left, center, right).
- Drive H-Bridge:
An H-Bridge circuit that provides bi-directional current to the vehicle's
primary drive motor(s). This circuit accepts (at least) an input for
variable drive speeds and an input for direction.
- Self-righting Arm:
This is an optional electro-mechanical system involving an actuator and
a lever. This system is used when the Attitude module detects that the
vehicle is upside-down or otherwise not in proper contact with the surface.
When the vehicle is upside-down on a smooth surface, this system can right
the vehicle.
- Manual Stop:
This is the most safety-critical module in the entire system.
Two Large Red Buttons (LRB) shall be provided: one LRB on the vehicle
and one LRB on the remote operating station. When the LRB is asserted,
the vehicle shall come to a complete stop as immediately as possible.
The LRB should be at the very low levels of the circuit design so that it
may circumvent software and digital control without delay.
If possible the LRB should put the motors into electrical-braking mode.
Furthermore the LRB should activate a black-box recording situation so that
data is collected which may reveal the error leading to the critical
situation.
- Initialization and Configuration:
When the vehicle is activated in a new environment, it will need to sense
some known values to determine some constant-value parameters used in the
system software. This module usually runs at vehicle power-up.
If this step of vehicle bring-up is bypassed, it may choose to recall
previous parameters from non-voltile memory.
- Navigation Data:
The user may wish to input new navigational or mission waypoints at any point
during the operation of the vehicle. New waypoints are inserted into the
mission manifest at the control console. The mission manifest is updated
by wireless data transfer.
- Manual Operation:
The remote operating station provides controls for the user to assert command
over the vehicle.
- Power Management:
All power sources (batteries) shall be monitored so the system may make
decisions in the interest of power consumption when needed.
Also, this module controls the power to certain circuits that have the ability
to be switched.
- System Monitor:
The system monitor has the ability to check for the existence and proper
functioning of every circuit board and device on the vehicle.
This information is used by some modules to change the certain behaviors.
- Software Management:
The software management module tracks all running threads and restarts those
that are lost. It also provides manual thread kill/restart.
- Non-Volatile Data:
The system provides a means to store data on a non-volatile memory.
Configuration parameters and "black box" are example datum to be stored on NV
memory.
- Time:
The system shall have a single time-keeping module. All boards shall obtain
their system time from this module. Real-world time can be obtained from
the GPS sensor, but system time should be kept on one of the circuit boards.
- Logging:
The system software shall provide a means to keep software logs.
- Telemetry:
The system shall relay by wireless data transfer many pieces of information
to the remote operating station. The ROS can log the data, display it on a
UI screen, or do whatever it likes with the data.