Mars Pathfinder Rover Command Dictionary

MARS ROVER DFM 94-032 (Rev C pre-release)


Updated 9/25/96



Rover Command Index

Alphabetical Listing








Mars Pathfinder Rover Command Dictionary
MARS ROVER DFM 94-032 (Rev C pre-release)
Updated 8/8/96


Rover Command Descriptions

Alphabetical Listing



ABORT SEQUENCE*

Abort execution of stored command sequence. This command is checked for in pending sequences, and must be the first command of the sequence to be effective. When detected, the remainder of the old sequence is discarded, all actuators are turned off, and a Sequence Status Report is generated. An Abort Sequence command is ignored at execution time of the current sequence (it does NOT abort subsequent commands in the same sequence), except that it does generate a Command Acknowledge.

Specific errors:
	invalid command (not first command of sequence)



APPLY PATCH SET s LENGTH n

Apply pending patches, if the patch set number and total length match. Patches to context zero EEPROM don't take effect until the next reset or wakeup, since this code is executed from a copy in RAM.

If the patch set number or total length do not match the pending patch data, the pending patches are discarded.

Specific errors:
	invalid command (length or patch set number mismatch)
	general failure (uncorrected data error or EEPROM write error)



CALIBRATE HEADING WITH SUN AT h USING CAMERA c BY TIME t

Determine the heading to the Sun by examining the intensity gradient of CCD images, and update the rover heading to:
	(specified sun heading - measured sun heading).
The command is aborted if the current time is later than t (to make sure it runs no earlier than a desired time, precede this command with a WAIT command). This command generates a Sun Heading Calibration Results telemetry message.
Specific errors:
	general failure (unable to find sun position or too late)



CALL FUNCTION AT ADDRESS a WITH BANKS b1, b2 [PARAMETERS p1 p2 ...] (RL)

Map the specified physical memory segments to logical banks 1 and 2, and invoke the code at the indicated address. Up to 10 16-bit parameters can be passed to the function. The 16-bit return value of this function is stored at location "call_func_result", which can be retrieved with the READ MEMORY command. CALL FUNCTION can be used to execute new functions patched into memory (as opposed to changes to existing functions), or to invoke existing functions that aren't installed as command handlers.


CAPTURE IMAGE WITH CAMERA c AT EXPOSURE t, RETURN REGION FROM (r1,c1) TO(r2,c2) WITH APID a [compressed]

Capture an image with the specified camera, and generate a Image Data telemetry message containing the specified region of the image. The exposure time is specified in millisecond increments; a time of zero indicates that the rover is to automatically determine an appropriate exposure. An exposure time of 1 indicates that the last computed auto-exposure time is re-used; if no auto exposure has been performed since the last wakeup, a new auto exposure time is determined. If requested, the image data is compressed 4.9:1 using block truncation coding.

Proper auto-exposure for the color camera requires changing the shift factor in converting the 12-bit A/D samples to 8-bit image data. The front black and white cameras should generally be 0 (= shift 2); the rear color camera should be 3 (= shift 1).

Valid image data is in rows 6 through 489 and columns 0 through 767; row 490 contains dark reference pixels. The ending region coordinates (r2 and c2) are one more than the last row/column sent (e.g. if r1=10 and r2=15, the five rows 10, 11, 12, 13, and 14 are sent). If compression is requested, the specified region should be an even multiple of four rows and 16 columns (it is automatically expanded if necessary, but compression results may suffer). The returned telemetry data is tagged with the specified APID.

If any lasers have been enabled with TURN ON DEVICE, they are turned on during the exposure. Exposure time may be overridden to limit laser "on" duration.



CLEAR c *(RL)

Clear specified error flags (see Set Error Mask command for values).


DEPLOY APXS p

Servo the APXS deployment motor until the APXS contact sensors indicate contact with the target rock. Depending on the angle of the APXS deployment mechanism head, there will be a delay after contact is detected before deployment is halted; this will increase the force applied to the soil/rock surface by the compliant head, causing it to seat more completely on the target. If the indicated deployment position (pot sensor reading) is reached without the contact sensors being tripped, the command is aborted, resulting in an error condition. This command generates an APXS Deployment Results message.

The RUN MOTOR command, together with an appropriate specification of the {CONTACT_MASK} parameter, can be used instead to deploy or retract the APXS to a specific position without monitoring the contact sensors. Under most circumstances, the RUN MOTOR command should be used instead of DEPLOY APXS for APXS retraction: before retraction, the contact sensors will generally already be indicating contact, which would result in a DEPLOY APXS command completing nominally without having retracted the mechanism. Additionally, ADM contact sensors must be enabled for the DEPLOY APXS command to execute.



DRIVE MOTORS m0 m1 m2 m3 m4 m5 FOR t CENTONS (RL ONLY)

This command runs either a combination of wheel motors or a combination of steering/APXS motors. To run wheel motors, each m0-m6 is a direction flag (0=off, 1=forward, 2=reverse) for the corresponding motor (0=LF, 1=RF, 2=LC, 3=RC, 4=LR, 5=RR). To run other motors, m0 is FF hex, m1-m4 are direction flags (0=off, 1=CCW, 2=CW) for the steering motors (1=LF, 2=RF, 3=LR, 4=RR) and m5 is a direction flag (0=off, 1=retract, 2=deploy) for the ADM motor. The indicated motors are turned on, the rover waits the specified duration, and then all motors are turned off. This command generates a Command Acknowledge telemetry message. (Traverse Data is not available in Rover Lite.)

This command is only available in Rover Lite.


END OF SEQUENCE *(RL)

This command marks the end of a command sequence. Any remaining data in the command buffer is ignored. The rover sends a Sequence Status Report message, then returns to the Waiting For Command state, and begins querying the lander for a new command sequence.

An empty command sequence, containing only an "End of sequence" command, can be used to keep the rover safely idle (without it timing out communications and entering a contingency mode).



FIND ROCK NEAR x y WITHIN m MINUTES

Search for a rock in a region around the specified point, and turn to face perpendicular to the rock surface. The destination must be within 10 meters of the current rover position (30 meters during extended mission). Generates a Traverse Data telemetry message. The time limit does not include communication time for heartbeats or telemetry.


GO TO WAYPOINT AT x y WITHIN m MINUTES

Traverse to the specified absolute position (in the lander coordinate frame), using hazard avoidance according to the current risk level. The destination must be within 10 meters of the current rover position (30 meters during extended mission). The final heading is not defined (follow this command with "Turn to heading h" if a specific end heading is desired). Generates a Traverse Data telemetry message. The time limit does not include communication time for heartbeats or telemetry.


HEALTH CHECK AT LEVEL n (RL)

Perform a health check operation to determine current state of the vehicle, and generate a Rover Health/Status Data message. Health check has 6 levels. Higher levels perform more checks and include more information in the telemetry packet. The automatic wakeup and periodic checks are performed at level {HEALTH_LEVEL}; a command option selects the level for directly commanded health checks. Response to load-shed activation includes a level 3 check (level 4 if a failed motor is suspected). Errors detected during any health check are reported in a critical state message.

Level 0 is a basic check/report; normally all switchable devices are off. Telemetry volume is small. Reads the current state of analog sensors, checks for any sensed data outside operational limits, update device failure counts. Checks core RAM.

Level 1 also checks sensor limit data recorded during traverse operations (min/max since the last level 1-or-above check). Same telemetry as level 0. This is the default periodic and wakeup check.

Level 2 is the same checking as level 1, but reports additional data. A good choice after a traverse.

Level 3 actively tests non-actuator devices; sensor limit data recorded during traverse is used for actuators. Bulk RAM (read/write) and EEPROM (read) are also tested. This would be used to get a detailed picture of the rover's health.

Level 4 also tests reusable actuators for open/short-circuit condition by turning them on for a brief interval and monitoring current use. Levels 4 and 5 are more complete "physical exams".

Level 5 actively tests all reusable devices. Actuators are tested by monitoring associated sensors (which implies running them longer than for level 4):

		wheel motors -> encoders
		steering/APXS motors -> pots
		lasers -> CCDs
		heaters -> temperature sensors

Note that motor actuation is locked out before pre-deploy mission phase. This level is intended for serious fault diagnosis.


HEAT FOR n MINUTES IN SEQUENCE s [s ...]

Operate heaters for the specified duration, cycling through the indicated control sequence at one step per minute. The sequence is defined as a list of one or more bitmasks indicating which heaters are turned on during that step, and whether or not the current limiter bypass (and therefore battery power) is enabled for that step. The sequence is repeated from the beginning after the last step is performed, until a total of n steps have been completed. Finally, all heaters are turned off. This command generates a Command Acknowledge message.



LIMIT-CALIBRATE POSITION SENSORS

For each motor associated with the specified pot sensors (one at a time), drive the motor until current sensing indicates the device has reached its lower limit, then drive it to the upper limit. The slew rate is measured and stored during this operation, and the stored current motor position is updated. This command is used if a pot sensor has failed and the assumed position is unknown or incorrect. The stored position is used for time-based motor control. This command generates a Command Acknowledge message.


MATERIAL ADHERENCE (RL)

Perform the material adherence experiment (solar cell/dust cover and Quartz Crystal Monitor measurement sequence) and send results as a Material Adherence Results message.


MOVE FORWARD n COUNTS WITH STEERING l r
MOVE BACKWARD n COUNTS WITH STEERING l r

Steer the wheels to the indicated left and right offsets from straight (a positive value indicates a counterclockwise angle for the front wheel and clockwise for the rear wheel, as seen from above), then drive the rover for the specified number of encoder counts (averaged for all six wheels). This is a low-level control function used for deployment from the lander, and as a fallback capability. MOVE 0 COUNTS can be used to set the steering position without driving. Proximity hazard detection and hazard avoidance is disabled, but other navigation hazards are monitored. Non-zero steering angles result in a curved path. Generates a Traverse Data message.




OUTPUT x TO PORT p (RL)

Output the specified byte value to the specified output port. This is a low-level control function for fallback use only. (The Turn On/Off Devices command should be used instead for the power control ports.)


PATCH MEMORY SET s CRC c SEGMENT b ADDRESS a TO x [x ...] (RL)

Store a pending rover memory patch. Patches are built into "sets", where a set must be received completely and without error before being applied (with an "Apply Patch" command). The set number is defined by the RCW. Any pending patches for a different patch set are discarded. The specified CRC must match the old contents of the specified memory region (segment, address, and length) for a patch command to be valid. The rover keeps a total count of patched bytes for the set, to verify that the entire set was received. A patch set may cross command sequence boundaries (due to size limitations on a single command sequence), but must be completed during an "awake" period (pending patches are lost at shutdown).

Patches can be applied to:

Specific errors:
	invalid command (CRC does not match old memory contents)



POSITION APXS

Backup the vehicle until the APXS contact sensors indicate contact with the target rock. Generates a Traverse Data message.


READ ANALOG CHANNEL c AT GAIN g [ c AT g ... ] (RL)

Select the specified analog channel and gain, and read the A/D converter (performing the usual software filtering). Repeat for each requested channel, and return the data in a command execution report message. This is a low-level diagnostic function. This command generates an Analog Input Results message.


READ BYTES FROM PORT p [p ...] (RL)

Read from the specified input ports and return the data in a Port Input Results message. This is a low-level diagnostic function.


READ n BYTES FROM SEGMENT s ADDRESS a (RL)

Read memory contents at the specified address, and return contents in a Memory Readback Results message. This is a low-level diagnostic function.



RUN MOTOR m FOR t CENTONS

Turn on the specified motor for specified centons then turns the motor off.


RUN MOTOR m TO p (RL)

Servo a steering or APXS deployment motor to the indicated position (corresponding pot sensor reading), or runs a wheel drive motor forward or backward for abs(p) encoder counts. Time-based control is used if the appropriate sensor has failed.

Pot sensor positions are relative to the calibration offset software parameters.



SEND APXS COMMAND c (RL)

Send the specified command to the APXS. If the APXS is not currently powered on, the rover turns on APXS power and waits 2 seconds for the instrument to initialize. For a MEAS_START command, it waits an additional 28 seconds to make sure power has stabilized before sending the command.

A specific TURN OFF DEVICE rover command is required to turn off the APXS.

The following command codes are accepted:

	CYCLE_START
	OPEN_SHUTTER
	CLOSE_SHUTTER
	MEAS_START
	MEAS_STOP
	TX_START
	RESET
If the TX_START command is given, the rover reads 2048 bytes of spectrum data from the APXS, and sends the data in an APXS Results telemetry message. (Any APXS command code other than TX_START will result in a Command Acknowledge telemetry message.) MEAS_STOP and RESET commands should be sent before a TX_START command so that the APXS will update its accumulation area before the data is read out.

When Rover Lite is active, a simplified version of this command is used. MEAS_STOP and TX_START are no longer available. MEAS_START causes the following sequence of events: begin data collection; integrate for a specified number of seconds, halt data collection, send data to rover, shutdown APXS. The {APXS_NIGHT} parameter is instead interpreted as the {APXS_TIME_RL} parameter; {APXS_TIME_RL} is the number of seconds of integration time to be used.

Specific errors:
	general failure (unable to communicate with APXS)



SET CLOCK TO t (RL)

Reset the rover time. Normally, the clock is set by synchronizing with the lander instead.


SET DEVICE d STATUS s

Update the rover status for the specified device. If a "forced" status is specified, the rover will not update the device status based on its own diagnostics.


SET ERROR MASK TO m *(RL)

Set the mask for error flags to "honor" (bit set) or "ignore" (bit clear).


SET MISSION PHASE p

Advise the rover of the current mission phase (subject to interpretation by the rover depending on other observations). (Contingency operation can be initiated by setting the command timeout to zero.)
				pre-launch
				cruise
				pre-release
				pre-deployment
				surface operations
				extended mission	
				(If MS bit set, force to this phase
				until either shutdown or next
				Set Mission Phase command)

Specific errors:
	general failure (request rejected due to other sensor information)



SET PARAMETER p = value (RL)

Update the value of a software control parameter. Symbolic names are shown in {braces}. Note: Selecting a symbolic name will link to any flight rules associated with that parameter.

Steering rate - calibration factor indicating nominal change in steering/APXS deployment pot reading, in 1/256 A/D counts per centon. Used for fallback time-based control.

APXS position limit for driving - A/D reading of APXS deployment mechanism position sensor beyond which the rover disallows drive commands (to avoid dragging APXS).

APXS night mode - indicates whether to connect the APXS directly to the battery bus, if the APXS is active, when shutting down the CPU (for nighttime data collection). Note: When Rover Lite is active, DO NOT use this parameter. Use {APXS_TIME_RL} instead.

APXS integration time (Rover Lite ONLY) - indicates how long, in Earth seconds, to collect data using the APXS in Rover Lite mode. This parameter is actually the same as the {APXS_NIGHT} parameter, but is interpreted as {APXS_TIME_RL} by the simplified SEND APXS COMMAND command when Rover Lite is active.

Automatic imaging after failed traverse -

		none
		left camera (default)
		right camera
		rear camera
		(camera bits may be combined; e.g. all cameras)

Turning rate (time) - calibration factor indicating nominal turn-in-place rate, in 1/256 BAMs per centon. Used for fallback time-based control.

Turning rate (counts) - calibration factor indicating nominal turn-in-place rate, in 1/32 encoder counts per centon. Used for fallback encoder-based control.

Battery usage override - determines the functions for which the rover is allowed to use battery power (by bypassing the current limiter and/or allowing commands when insufficient solar power is available, unless all battery strings have failed). The value is the logical "or" of the following masks:

			motors
			WEB heaters
			motor heaters
			modem heater
			other devices
			12V I/O power

Bogey/differential sensor offsets, - A/D readings for bogey and differential pots at nominal positions.

Command acknowledge - if set, commands that otherwise wouldn't generate any telemetry data after normal completion generate a "command acknowledge" packet.

APID for command execution report - the APID value inserted into telemetry data for command execution report messages.

Command query interval - the rover asks the lander for new commands at this rate (in seconds) when there are no commands ready, and during wait commands.

Command timeout limit - if the rover doesn't receive a valid command sequence for this many minutes, it begins contingency operation.

Session retry limit - number of times to attempt lander communication sessions. (low-level frame retry limit is fixed).

Contact sensor enable mask - bitmask indicating which contact sensors are enabled (if bit set):

		solar panel right front
		solar panel left front
		solar panel left rear
		solar panel right rear
		bumper right front
		bumper left front
		APXS 1
		APXS 2
		APXS 3

Wheel rate - calibration factor indicating nominal wheel rate, in 1/1024 encoder counts per centon. Used for fallback time-based control.

Default wakeup time-of-day - local time-of-day, in minutes after midnight, at which the rover sets its wakeup alarm before an automatic shutdown (a commanded shutdown includes an explicit wakeup time). 7:30 am.

MAE Dust cover open time - duration to keep dust cover open during material adherence experiment, in msec.

"End of day" time-of-day - local time-of-day, in Earth minutes after midnight, after which the rover will automatically shutdown when solar power drops. default = 6 pm.

Error reporting severity threshold - error reports at or above this threshold are logged and sent in a critical state telemetry packet. minor,major,critical.

CCD Defect correction - if set, rover applies defect correction information stored in EEPROM when reading CCD images. disable,enable.

Hazard avoidance enable - set of flags indicating which navigation hazards the rover is allowed to autonomously avoid during Go To Waypoint and Find Rock command traversal. If a hazard condition is detected for which avoidance is not enabled, the traverse command is aborted. The value is the logical "or" of the following masks:

		sensor reading outside safety limits
		contact sensor triggered
		lost heartbeat communication with lander
		laser/CCD proximity hazard detection
		too close to (and heading toward) lander
		motor stalled
(Regarding heartbeat loss: During extended mission phase, the rover ignores this hazard except for logging an error report; the HAZ_AVOID bit has no effect. During other phases, the rover always tries to recover communication; the HAZ_AVOID bit determines whether the traverse can be continued if communication is restored.)

Distance between heartbeats - minimum distance, in millimeters of forward travel, between lander communication heartbeats in waypoint and find rock driving modes (the actual heartbeat is performed at next traverse cycle stop).

Automatic health check level - the level of health check to be performed at wakeup/periodic checks(see health check command).

Automatic health check interval - time interval (in Earth seconds) between automatic health checks performed in between commands and during WAITs.

Hold Communication - if enabled, telemetry output is buffered (according to {TBUF_MODE}) and command abort checks are not performed. This limits use of the modem to command requests, clock syncs, and heartbeats, and can be used:


Minimum safe distance from lander - hazard condition is indicated if dead reckoning indicates it is heading towards the lander and is at least this close (in mm ).

Laser image exposure time - milliseconds for capturing laser stripe images during proximity sensing.

Local midnight reference time - CCSDS time (in seconds) of a recent local midnight, used to convert mission time to local time-of-day.

Minimum core bus voltage - a core bus voltage reading below this level indicates a failure of the current limiter and/or batteries, and prevents turning on the WEB heater.

Encoder scale factor - used to convert wheel odometer counts into distance traveled. (1/256 of mm per encoder count)

Modem heating time - at wakeup, the modem is heated for this many seconds.

Modem reheating time - maximum time in seconds to heat the modem after a communication failure, if the modem temperature is below {MODEM_TEMP}.

Modem reheating temperature - the rover stops heating the modem after a communication failure when the modem temperature sensor reaches this value (sensor reading = (deg C + 17) * 21). default = value corresponding to -10C

Motor cooldown time - if the motors are shut off for overheating, the rover sits idle for this many seconds allowing them to cool.

Motor average current limit - the rover shuts down motors to prevent overheating if the energy monitoring for any one motor exceeds this average value of A/D motor current counts when averaged over 32 seconds.

Power-saving mode - a mask of bits enabling power-saving operation of selected devices (turning device on only when necessary, default = all off to reduce power cycling stress).

	linear accelerometers (if set, only turn on when
		stopped during traverse)
	Other bits TBD

Laser proximity sensing mode for traversing
	disable
	enable (default)

Risk level - determines thresholds for what is considered a hazard. Selects safety limits for sensors (pitch, roll, Z-tilt, differential, bogeys, temperature, voltage, current), proximity hazard thresholds. min risk (default), medium risk, max risk

"End of day" solar power threshold - when solar power available is below this level, and local time-of-day is past end-of-day time, the rover automatically shuts down for the night (range TBD). disable auto shutdown

Maximum squeeze mode navigation - maximum distance (in mm) rover can drive through a narrow region where it is unable to turn in place. If it goes this far without reaching a clear area, it backs out of the narrow region and looks for a different path.

Motor stall current - if a motor current exceeds this limit (in 0.185mA units) for 16 consecutive update samples (4 samples for steering and ADM motors), a motor stall hazard is declared. The ADM motor stall limit is set 18.5mA higher to account for the additional resistance.

Steering sensor offsets - A/D readings for each steering pot when centered, and APXS deployment mechanism position sensor at the fully stowed position.

Telemetry buffering mode - controls rover action when unable to send telemetry data to lander. disable, buffer in RAM (highest capacity), buffer in EEPROM (default, preserved across power-down).

Traversal telemetry (detail level) - number of captured samples of sensor data for telemetry (in all driving modes) per output sample. Data is collected at nominally 2-second intervals, and stored in a circular buffer. All data is sent in the event of a failure.

Thermal management update rate - the rover updates power/thermal management at this interval (in seconds) when idle or waiting.

Traverse cycle distance - millimeters of forward travel between stops, in waypoint and find rock driving modes (not direct move, turn in place, APXS positioning, or unstow). While stopped, the rover performs:

default = one wheel radius; should always use XX when laser proximity sensing is enabled)

Turn sensor scale factor - calibration factor in 1/2048 BAMs per A/D count of the turn rate integrator sensor reading.

WEB set A limit - the rover stops heating the WEB when any sensor in set A is above this limit (or any sensor in set B is above B's limit, sensor reading = (deg C + 17) * 21). default = value corresponding to 40°C).

WEB set B limit - the rover stops heating the WEB when any sensor in set B is above this limit (or any sensor in set A is above A's limit, sensor reading = (deg C + 17) * 21). default = value corresponding to 50°C).

WEB overtemp - the rover refuses to turn on equipment other than the modem (i.e. start commands) if any temperature sensor in set A is above this value. (sensor reading = (deg C + 17) * 21); default = value corresponding to 55°C).

WEB temperature sensor set A - a 16-bit map of the temperature sensors making up the first monitoring set (default = 0xF00 (CPU/electronics board, power board, WEB wall, and modem)).

			left front wheel
			right front wheel
			WEB
			modem
			left front CCD
			right front CCD
			rear CCD
			battery A
			battery B
			battery C
			CPU board
			power board
			MAE

WEB temperature sensor set B - a 16-bit map of the temperature sensors making up the second monitoring set (default = 0x0E0 (battery tray sensors)). Bit assignment is same as for {WEB_SET_A}.






SET VEHICLE POSITION TO x y, HEADING TO h

Update rover position/orientation knowledge to the specified values.


SHUTDOWN UNTIL t *(RL)

Save state, set power-up alarm clock to specified absolute time (relative time if t is less than 30 hours or 108000), and shutdown the rover. Used for nighttime shutdown, or for saving battery power if solar panels have failed. Ignored if the solar panels and alarm clock have both failed. If the wakeup time is more than 30 hours from the current time, and the rover is not on Mars (pre-launch or cruise mission phase), the alarm clock is not enabled; if more than 30 hours away and the rover IS on Mars, the {DEFAULT_WAKEUP} time-of-day is used instead of the requested time.

If the wakeup time is zero, the rover performs a system reset, but stays awake. Otherwise, if the wakeup time is at or earlier than the current time, the command is ignored.

The rover also shuts down automatically when the local time-of-day is later than a threshold and the solar power falls below {SHUTDOWN_POWER}, setting the wakeup time to {DEFAULT_WAKEUP}. These parameters can be changed to alter the automatic shutdown behavior (including disabling it to allow night operation). Generates a Sequence Status Report, or Command Acknowledge if ignored.



SOIL MECHANICS TEST ON WHEEL w AT POSITION p, RUN FOR n COUNTS, REPEAT k TIMES

Perform a soil mechanics experiment at the current rover position. This consists of steering the specified wheel to the indicated pot position, then running the wheel motor (leaving all other wheels off) for the specified number of encoder counts. This is repeated for the specified number of repeat counts, with a 500 msec pause between each spin. A Soil Experiment Results telemetry message is generated for each repetition containing sensor data collected during the test. (Note that backing up and imaging of tracks are handled through separate driving and imaging commands.)


SYNCHRONIZE CLOCK (RL)

Update the rover clock based on the current lander mission time.

Specific errors:
	general failure (unable to communicate with lander)



TEST n BYTES OF MEMORY IN SEGMENT s AT ADDRESS a (RL)

Perform a non-destructive test of the specified RAM area, for diagnostic use. Stops testing after 100 bad locations are found. Returns a Memory Test Results message with the address and content of the bad locations, if any.

The specified physical memory segment is mapped into bank 2, which appears at logical addresses C000 to FFFF hex; the start address should be set accordingly. The maximum number of bytes which can be tested during a single command is 16,384.

Specific errors:
	general failure (memory errors found)



TURN LEFT n BAMS
TURN RIGHT n BAMS

Turn the rover in place, relative to the current heading. The turn direction is chosen for the shortest turn (arbitrary if exactly 180 degrees). Navigation hazards (other than proximity) are monitored. Generates a Traverse Data message.

[BAM = binary angular measurement; 2^16 BAMs = 1 revolution]



TURN ON DEVICES d
TURN OFF DEVICES d

Power on or off the specified devices. This is a low-level control function - most devices are turned on and off automatically as needed. Uses the rover power control logic so that other devices sharing the same control register are not affected, and so the specified changes are not inadvertently altered by other rover actions (however, subsequent commands may turn off devices on completion). device ID flags:
			WEB heater
			left wheel motor heaters (see note 1)
			right wheel motor heaters (see note 1)
			steering motor heaters (see note 1)
			APXS motor heater (see note 1)
			modem heater
			modem
			APXS (see note 2)

			far left laser (see note 3)
			near left laser (see note 3)
			center laser (see note 3)
			near right laser (see note 3)
			far right laser (see note 3)
			current limiter bypass (see note 7)
			MAE QCM
			MAE dust cover (see note 4)

			LEDs (APXS contact/wheel encoders)
			turn rate sensor
			linear accelerometers
			CCDs
			3BSS batteries (see notes 5, 6)
			APXS failsafe (see note 5)
Note 1: Turning off any motor heater turns off ALL motor heaters.

Note 2: Use {APXS_NIGHT} parameter to keep APXS on after shutdown

Note 3: "Left laser" means the laser mounted on the vehicle's left (whose beam extends to the right). Turning off any laser turns off ALL lasers. Actually, this just enables lasers to be turned on during CCD imaging.

Note 4: "On" opens dust cover, "off" closes it. Dust cover should not be kept open more than 20 seconds at a time.

Note 5: These requests are rejected if the mission phase is pre-launch or cruise. As a safety feature, they are also rejected unless the corresponding device bit is the only one set in the command.

Note 6: Ignored in a "TURN OFF DEVICES" command.

Note 7: Not really useful - the bypass is turned off after each command




TURN TO HEADING h

Turn the rover in place, to an absolute heading. The turn direction is chosen for the shortest turn (arbitrary if exactly 180 degrees). Navigation hazards (other than proximity) are monitored. Generates a Traverse Data message.


TURN TOWARD x,y

Turn the rover in place to face the indicated location. For example, TURN TOWARD 0,0 causes the rover to face the lander. The turn direction is chosen for the shortest turn (arbitrary if exactly 180 degrees). If the current rover position is exactly (x,y), it turns to point North. Navigation hazards (other than proximity) are monitored. Generates a Traverse Data message.
X position (mm N of lander)
Y position (mm E of lander)



UNSTOW p d c l r

Verify that the lander has released the rover (using the APXS contact sensors). Wait for 5 seconds to be sure that the lander has completed its release sequence; then drive the rear wheels to raise the vehicle from the stowed position on the lander, until the bogeys are locked. Generates a Traverse Data message.
max logical bogey pot position indicating standup
min logical differential position indicating standup
min wheel motor current increase indicating successful bogey latching
min left wheel encoder counts indicating standup
min right wheel encoder counts indicating standup

"Logical" position = physical pot reading - reference parameter.

For testing or recovery from a failed unstow, negative encoder counts values indicate relative counts from the starting odometer value.

The first part of standup proceeds until a hazard condition is detected or both sides indicate standup (bogey pot <= (p) or odometer >= (l/r)). If standup is successful, bogey latching is tested by backing off the rear wheels until motor currents increase by (c) or bogeys increase by 40 within 4 seconds. Finally, failure is also declared if the final differential value is less than (d).

If bogey pots have failed, (p) is ignored and the latch test is not performed. If the differential has failed, (d) is ignored.




WAIT FOR s SECONDS (RL)
WAIT UNTIL MISSION TIME t (RL)
WAIT UNTIL LOCAL TIME t (RL)
WAIT UNTIL s < v, LIMIT m
WAIT UNTIL s > v, LIMIT m

Wait for the specified condition before continuing with the command sequence. While waiting, the rover periodically performs thermal management, and checks for a pending abort command.

The wait condition can be:


If the specified mission or local time is earlier than the current time, the wait command is ignored.
Sensor ID (decimal)Sensor
0 SEN_XACCEL
1 SEN_YACCEL
2 SEN_ZACCEL
3 SEN_LBOGEY
4 SEN_RBOGEY
5 SEN_DIFF
6 SEN_LF_TEMP
7 SEN_RF_TEMP
8 SEN_WEB_TEMP
9 SEN_MODEM_TEMP
10 SEN_LF_CCD_TEMP
11 SEN_RF_CCD_TEMP
12 SEN_REAR_CCD_TEMP
13 SEN_BATTA_TEMP
14 SEN_BATTB_TEMP
15 SEN_BATTC_TEMP
16 SEN_CPUBRD_TEMP
17 SEN_PWRBRD_TEMP
18 SEN_MAE_TEMP
19 SEN_LF_IDRIVE
20 SEN_RF_IDRIVE
21 SEN_LC_IDRIVE
22 SEN_RC_IDRIVE
23 SEN_LR_IDRIVE
24 SEN_RR_IDRIVE
25 SEN_LF_ISTEER
26 SEN_RF_ISTEER
27 SEN_LR_ISTEER
28 SEN_RR_ISTEER
29 SEN_IAPXS
30 SEN_IBATTA
31 SEN_IBATTB
32 SEN_IBATTC
33 SEN_ISOLAR
34 SEN_I12V
35 SEN_I9V
36 SEN_I5V_CONV
37 SEN_I5V_REG
38 SEN_I3V
39 SEN_LF_POT
40 SEN_RF_POT
41 SEN_LR_POT
42 SEN_RR_POT
43 SEN_APXS_POT
44 SEN_EMAE_OPEN
45 SEN_IMAE_SHORT
46 SEN_IWAE_SHORT
47 SEN_EMOT_HTR_BUS
48 SEN_ECORE_BUS
49 SEN_E12VP
50 SEN_E12VN
51 SEN_E9V
52 SEN_E5V_CONV
53 SEN_E5V_REG
54 SEN_E5V_INV
55 SEN_E3V
56 SEN_IWEBMTR_HTR
57 SEN_IMODEM_HTR
58 SEN_EANALOG_GND
59 SEN_E5VP_REF
60 SEN_E5VN_REF





WHEEL ABRASION MEASUREMENT AT GAIN g

Perform a wheel abrasion measurement, and return the results in a Wheel Abrasion Results message.


ZERO-CALIBRATE POSITION SENSORS

Read the bogey, differential, steering, and/or APXS deployment pot sensors and store the values as zero offset calibrations. This command is intended for use when the vehicle is in a known reference position (on a flat surface with all wheels straight), e.g. before deployment off the lander, if it is expected that the pre-programmed calibrations are incorrect. If a pot sensor has failed, this command zeros the assumed current position of the associated motor (steering or APXS) for time-based control.




mishkin@robotics.jpl.nasa.gov

All information on this site, including text and images describing the Rover, is copyright © 1996, Jet Propulsion Laboratory, California Institute of Technology and the National Aeronautics and Space Administration.