SOP-TECH-02 · Revision 1.0

Autonomous Vehicle Testing and Configuration Management

Instrument
Standard Operating Procedure (Level 3)
Effective
2026-09-10
Next review
2027-09-10
Room
ASB 9819, Applied Sciences Building, SFU Burnaby

This web copy is a reference version for members. The controlled copy is the signed document held by the team; in a conflict, the signed document governs. Reading it does not replace induction, training or per-activity clearance.

On this page
Document control
Implements
POL-03 (Operations: Safety, Facilities and Property) §5
Owners
Tech Team Lead and Autonomous Team Lead, with the Operations Coordinator
Revision
1.0 — Initial release

Any change to a hazard, a control or a procedural step requires a new revision number and re-review by the Team Lead, the Faculty Sponsor and the FAS Safety Officer.

Approved by the Team Lead, the Faculty Sponsor and the FAS Safety Officer; takes effect on the effective date above.

Quick-reference card Vehicle Testing

Do not operate unless

  • A named Test Lead is present and has run the Section 7 checklist.
  • The course is barriered, signed at both ends, and a spotter is posted at every corner.
  • The deadman switch check has been done today and passed.
  • It is after 17:00 and the route is clear of traffic.
  • The software on the car is a recorded build that has run in simulation first.

Top hazards

  • Vehicle strikes a person at up to 8 m/s
  • Uncontrolled run into a wall, door or stairwell
  • Lithium pack damage from a crash impact
  • Pinch and cut injury at wheels and steering

Required PPE

  • Impact-rated safety glasses for anyone inside the barrier
  • Closed-toe, closed-heel shoes
  • High-visibility vest for spotters in corridor testing
  • No loose clothing or lanyards near the drivetrain

Stop / isolate

  1. Release LB — the car stops

  2. Grab the controller if teleop is running — the human always outranks autonomy

  3. Ctrl+C the control-layer terminal

  4. Disconnect the pack (last resort)

Any person present may call STOP and everything stops

In an emergency

Fire, smoke, venting or injury: pull the alarm, evacuate, call 911, then Campus Public Safety on 778-782-4500.

Then tell the Team Lead and notify the FAS Safety Officer.

Assembly area for ASB is shown on the posted evacuation map. Do not re-enter until emergency or safety personnel authorise it.

Note

A test session CANNOT run if the deadman check fails. This is Racerbot policy.

1 Scope and Applicability

This SOP covers every occasion on which a Racerbot vehicle is powered with the wheels able to turn, and the configuration control that makes a test result mean something. It applies to bench testing, low-speed testing in ASB 9819, and course testing in the corridors and open floor space adjacent to the workspace.

Testing is indoors only, on the Burnaby campus, and only after 17:00 when the route is clear of routine through traffic. The vehicles are 1/10-scale F1TENTH/RoboRacer platforms with a speed ceiling of 8 m/s (about 29 km/h).

  • Applies to every member taking part in a test session in any role, including spotters and observers.
  • The Test Lead role is assigned by the Tech Team Lead, the Autonomous Team Lead, or a member either of them has named in writing for that session.
  • Outdoor testing, testing in a public thoroughfare during business hours, testing above 8 m/s, and testing at a venue Racerbot does not control are all outside this SOP.
  • Competition running is governed by the organiser’s rules in addition to this SOP. Where the organiser is stricter, the organiser governs.
A 3.5 kg vehicle at 8 m/s carries roughly 250 Joules of energy. Enough to cause serious injury or death.

Any person present; member, spotter, passer-by or visitor may call STOP at any point. Everything stops immediately and does not restart until the Test Lead has heard the concern and resolved it. Calling a stop in good faith never counts against anyone.

1.1 Purpose

This SOP exists to make sure a moving vehicle can always be stopped, that nobody who has not agreed to be near it can get near it, and that when a run goes wrong the team knows exactly which software and hardware were on the car at the time.

1.2 Keywords

F1TENTH; RoboRacer; deadman; LB; ackermann_mux; teleop; autonomy; VESC; LiDAR; test lead; spotter; exclusion zone; course; build record; configuration management; SOP-TECH-01; SOP-ADM-09.

1.3 Contact

Questions about this document or the equipment it covers go to the Tech Team Lead. Questions about the workspace go to the Operations Coordinator. Questions about safety go to the FAS Safety Officer. Contact details are available to members through the team’s internal channels.

2 Introduction

The vehicle is small, fast and, in autonomous mode, driven by code that a student wrote this week. Two things follow. The car must be stoppable by a human any time during testing, and it must never be able to reach a person who is not part of the test.

The software enforces the first of those. Every node in the Racerbot workspace that can move the car — manual teleop and every autonomy node alike — refuses to publish a non-zero drive command unless a person is physically holding the LB button on the controller and the controller stream is live. That check runs before every other watchdog in the node. Let go of LB and the car stops, regardless of what the software thinks it is doing.

The barriers, the spotters and the 17:00 rule enforce the second. They exist because the corridor is a shared space and the people in it did not sign up to be near a test.

Configuration management is a safety control, not paperwork. If a run ends in a crash and nobody can say which branch was flashed, which parameters were loaded or which pack was fitted, the team cannot find the cause and cannot stop it happening again. Section 8.6 is as much a safety requirement as the barriers are.

3 Equipment and Apparatus

ItemSpecificationStatus
Vehicle1/10-scale F1TENTH/RoboRacer platform: Traxxas-based chassis, VESC motor controller, brushless drive motor, steering servo, Hokuyo UST-10LX 2D LiDAR, NVIDIA Jetson Orin Nano compute, RealSense depth camera where fitted. Approximately 3.5 kg. Speed ceiling 8 m/s.In service
ControllerLogitech F710 gamepad in XInput mode. LB is the deadman. A controller with a weak battery or an intermittent USB link is not fit for testing.In service
Course barriersVevor barrier tubing forming a continuous perimeter along both sides of the run and closing both ends.In service
Course signageOne sign at each end of the barriered route: TESTING IN PROGRESS — DO NOT ENTERTo be produced before first corridor session
High-visibility vestsOne per spotter for corridor testing.To be obtained
Safety glassesImpact-rated, for anyone inside the barrier line.In place
Battery equipmentAs specified in SOP-TECH-01. Charging never happens at the test site.In place
ABC extinguisherThe workspace extinguisher, or a portable unit carried to the test site for corridor sessions.In place
Run recordThe test log described in §8.6, kept in the team repository.In place

4 Materials and Supplies

  • Lithium polymer packs, 2S to 4S, handled entirely under SOP-TECH-01. Packs are charged in ASB 9819 before the session and carried to the test site at charge, in a fireproof bag inside a rigid container.
  • No chemicals are used in this procedure. Isopropyl alcohol for cleaning tyres or sensors stays in the workspace under SOP-TECH-06 and is not brought to a corridor session.
  • Spare fasteners, tyres and a basic tool roll, so a loose part is fixed rather than run on.

5 Hazard Assessment

TABLE 1 — HAZARD ASSESSMENT
HazardMechanism of injuryEngineering controlAdministrative controlRequired PPE
Vehicle strikes a personImpact injury to feet, ankles and shins at up to 8 m/s; a fall caused by the impact; serious injury to a child or an unsteady person.Continuous barrier on both sides and both ends; LB deadman in every driving node; 8 m/s software ceiling; LiDAR-based obstacle avoidance where the autonomy node provides it.Testing only after 17:00; spotter at every corner with stop authority; nobody crosses a live course; run aborted the moment an uninvolved person approaches; speed built up in stages (§8.4).Closed-toe shoes inside the barrier; high-visibility vest for spotters.
Uncontrolled run — software fault, lost link, runawayVehicle continues into a wall, a door opening, a stairwell or a person after the operator has stopped commanding it.Deadman enforced in-node ahead of every other watchdog; 0.5 s controller-stream timeout; 0.2 s mux command timeout; teleop priority 100 over autonomy priority 10.Deadman verified before every session and the session cancelled if it fails; enable_deadman never set false; course never routed past an open stairwell, an unsecured door or a drop; four-level stop hierarchy briefed before every session (§8.5).None — this is an engineering and procedural control.
Crash damage to the lithium packImpact damage to a pouch cell causing a delayed internal short, then fire on the next charge.Pack mounted with the chassis tray and strap, not tape; nose structure ahead of the pack.Any crash quarantines the pack under SOP-TECH-01 §8.5, whether or not damage is visible; the quarantine is recorded against the pack identifier before anyone leaves.Heat-resistant gloves if the pack must be moved after an impact.
Pinch, cut and entanglement at the drivetrainFingers or hair caught in the wheels, drive belt or steering linkage while the car is armed.Wheels raised off the surface on the bench stand for any powered bench work.Never reach into a powered vehicle; disarm and disconnect before any adjustment; hair tied back and no lanyards or loose sleeves near the car.Safety glasses; no loose clothing, jewellery or lanyards.
Obstruction of a shared corridorTrip hazard from barriers and cables; a blocked evacuation route during a building emergency.Barriers set out clear of exit doors and fire equipment; no cable runs across the walking line.A clear walking route past the course is maintained at all times; barriers struck down immediately if the fire alarm sounds; Operations Coordinator confirms the route with building staff before a new course is used.High-visibility vest for anyone setting out or striking barriers.

6 Hazard Control Measures

6.1 Mandatory engineering controls and PPE

Engineering controls
LB deadman enforced inside every node that can move the car; 8 m/s software speed ceiling; teleop priority over autonomy at the command mux; continuous physical barrier on both sides and both ends of the course; bench stand that lifts the wheels clear for powered bench work.
Required PPE
Closed-toe, closed-heel shoes for anyone inside the barrier line; high-visibility vest for spotters and for anyone setting out or striking barriers in a corridor.
Change-out
Barrier tubing that no longer stands up or no longer forms a continuous line is repaired or replaced before the next session.

6.2 The four levels of stop

Every member briefed for a session must be able to state these four in order. They are tested at the start of each session as part of the Section 7 checklist.

  1. Release LB on the controller — Every driving node stops publishing a non-zero command within one control cycle. The car stops. The default. This is how a run is ended, every time.
  2. Ctrl+C the control-layer terminal — The driving node exits. Nothing is publishing drive commands; the mux times out after 0.2 s. When the car is stopped but the software is misbehaving, or level 1 did not appear to work.
  3. Catch the car — Spotter at the nearest corner moves to intercept car with tubing to prevent car from moving When the terminal command isn’t connected to the car.
  4. Disconnect the battery — All power removed. The car is inert. Last resort, and only when the car is stationary and safe to approach.
Check the controller battery before the session. The deadman depends on the controller stream staying live. If the gamepad battery dies or the USB link drops, the stream stops and the car stops.
Never set enable_deadman to false. Any new node that can move the car implements the same check before it is run on hardware.

6.3 Roles for a course session

RoleWhoResponsibility
Test LeadAssigned by Tech Team Lead, Autonomous Team Lead, or a member named in advanceOversees the session. Runs the Section 7 checklist, briefs everyone, decides what is run and at what speed, and is the only person who declares the course live or clear. Stops the session for any reason at any time.
OperatorA member cleared to driveHolds the controller and the deadman for the whole run. Does nothing else — no laptop, no phone, no conversation. Eyes on the car.
SpottersOne at every cornerWatches the approaches, not the car. Calls STOP the moment anyone approaches the barrier, and physically intercepts and redirects people before they reach the course.
Terminal operatorA member cleared on the software stackRuns the launches, holds level 3 stop, and records the run in the log. May be the same person as the Test Lead on a bench session, never on a course session.

A course session does not run without a Test Lead, an operator and a spotter at every corner. If there are not enough people, the session is a bench or low-speed session instead. There is no version of this where a corner goes unwatched.

6.4 Waste disposal

  • Broken chassis parts, tyres and printed components go to general or plastics waste as appropriate. Nothing from a test session is hazardous waste unless a pack was damaged.
  • A pack damaged in a crash is handled and disposed of entirely under SOP-TECH-01 §6.4 and §8.5. It is never put in general waste.

7 Pre-Run Inspection Checklist

The Test Lead completes this before the first run of every session. If any item fails, the session does not start.

The deadman test is not a formality. Raise the wheels off the surface, arm the car, then release LB and confirm the wheels stop. If they do not, the session is over — the car goes back to the workspace and the fault is fixed before anything else happens.

8 Procedure

8.1 Before the session

  1. The Test Lead confirms the session plan: what is being tested, which build, what speed, and how many people are needed.
  2. All code that is run on car must be pre-tested in simulation.
  3. Packs are charged in ASB 9819 under SOP-TECH-01 and carried to the site in a fireproof bag inside a rigid container. Charging never happens at the test site.
  4. The Test Lead records the intended build: branch, commit and parameter set, in the run log before the car is powered.

8.2 Setting out the course

  1. Choose a route with no open stairwell, no unsecured door swinging into it, no drop and no fire equipment inside the barrier line.
  2. Set out the barrier tubing as a continuous perimeter down both sides and across both ends. A gap in the barrier is a gap the car can leave through and a gap a person can walk in through.
  3. Post a sign at each end: TESTING IN PROGRESS — DO NOT ENTER.
  4. Leave a clear walking route past the course. Never barrier a corridor end to end so that someone has to turn back.
  5. Position spotters at every corner. Brief each on their sight lines and confirm each can be heard by the operator.

8.3 Briefing

The Test Lead briefs everyone present, every session, even when the same people did the same thing yesterday. The briefing covers: what is being tested; the four levels of stop; that anyone may call STOP; who is spotting which corner; where the extinguisher is; and what to do if the fire alarm sounds.

8.4 Running

  1. The Test Lead declares the course live. From this point nobody crosses the course and nobody steps inside the barrier line without the Test Lead declaring it clear first.
  2. Start the foundation layer (bringup). The car will not move from this alone — that is by design.
  3. Start exactly one control layer: manual teleop, or an autonomy node. Never both. Two control layers running at once means the one you are testing is silently ignored.
  4. Build up in stages. Walking-pace run first, then half speed, then target speed. A new build or a new course starts at walking pace regardless of how well it ran in simulation.
  5. The operator holds LB for the run and releases it to end the run.
  6. Abort immediately if anyone approaches the barrier, if the car behaves unexpectedly, if a spotter calls STOP, if a part comes loose, or if anything smells hot. Aborting costs a run. Not aborting costs more.
  7. Between runs, the car is disarmed before anyone touches it. Nobody reaches into a powered vehicle.
If an uninvolved person walks into the course, stop the car first before trying to remove the individual.

8.5 Ending the session

  1. Release LB, stop the control layer, then the foundation layer.
  2. Disconnect the pack. Bring it back to storage voltage under SOP-TECH-01 §8.3 before putting it away.
  3. Strike the barriers and signs and leave the route exactly as you found it.
  4. Complete the run log while the session is still fresh, including anything that surprised you.
  5. Report any collision, near miss or damage under SOP-ADM-09 the same day.

8.6 Configuration management and the build record

Each vehicle has a build record in the team repository. It is updated when the configuration changes, not at the end of the semester.

Recorded itemWhat is captured
Vehicle identityVehicle number and chassis identifier.
Hardware configurationMotor, VESC, servo, LiDAR, compute module, camera, gearing and tyre compound in use, with the date each was last changed.
Battery pairingWhich packs are assigned to this vehicle, by pack identifier.
Software buildBranch, commit hash and parameter set flashed to the car, with the date.
Change logEvery hardware or software change: what changed, who changed it, when, and why.
Test historyDate, location, build, what was tested, what happened, and any abort or collision with a link to the incident report.
  • Parameter changes made live during a session are recorded in the run log at the time and committed afterwards. A parameter that exists only in someone’s terminal history is not a configuration.
  • After a collision or an unexplained behaviour, the exact build is frozen — nobody pushes over it — until the post-incident review under SOP-ADM-09 is done.

8.7 Troubleshooting

SymptomLikely causeAction
Autonomy node runs and logs, but the car does not moveManual teleop is also running and is winning arbitrationStop teleop entirely and relaunch autonomy. Do not run both control layers at once.
Car does not move at all with LB heldController not in XInput mode, controller stream dead, or bringup not runningCheck the F710 mode switch and battery, confirm bringup is up, then retry. Do not work around it by disabling the deadman.
Car twitches or stutters under autonomySteering term oscillating, or a control layer conflictAbort the run. Return to the workspace and reproduce it in simulation before running on the floor again.
Steering pulls to one sideServo trim, bent linkage or a loose wheel nutStop the session for that vehicle. Fix it on the bench and record the change in the build record.
Car drifts off the racing line down a straightKnown limitation of purely reactive steering; not itself a safety faultReduce speed and note it in the run log. Not a reason to continue at target speed.

9 Collision, Injury and Property Damage

  1. Release LB. Stop everything before you do anything else.
  2. Look after the person first. Call 911 if the person is unresponsive or if the injury is serious, then Campus Public Safety on 778-782-4500.
  3. Disconnect and quarantine the battery pack under SOP-TECH-01 §8.5. A crash damages pouch cells invisibly and the failure shows up on the next charge.
  4. Photograph the scene, the car and the barrier layout before anything is moved.
  5. Freeze the software build until review is complete.
  6. Report the same day under SOP-ADM-09, and tell the Team Lead, the Operations Coordinator and the FAS Safety Officer.
A vehicle striking a person should be reported no matter what & any run that left the barriered area. For better prevention of future incidents.

10 Decontamination and Housekeeping

  • Barriers, signs, cables and tools are struck and removed at the end of every session.
  • Tyre marks and debris on the floor are swept or wiped.
  • The vehicle is wiped down, inspected for damage and returned to its storage position in ASB 9819. Packs go back to storage voltage in their bags.
  • Damaged parts are removed from the car rather than left fitted for next time, and the removal is recorded in the build record.

11 Emergency Procedures

11.1 Fire alarm during a session

  1. Release LB and disarm the car.
  2. Strike the barriers immediately — they must not obstruct anyone evacuating.
  3. Evacuate. The car stays. Do not go back for equipment.
  4. Go to the assembly area and account for everyone in the session.

11.2 Battery event during or after a session

Follow SOP-TECH-01 §11 exactly.

11.3 Injury

Call 911 for anything serious. Call Campus Public Safety on 778-782-4500 for first aid. Do not move a person with a suspected fracture or head injury. Send someone to meet responders at the building entrance and guide them in.

11.4 Reporting

  • Injuries, fires, smoke, property damage, extinguisher use and near misses are reported the same day to the Team Lead and the Operations Coordinator, and to the FAS Safety Officer.
  • An SFU incident report is filed for any injury, fire, exposure, property damage or significant near miss.
  • The full process — what counts, who is told, how the review runs — is SOP-ADM-09, Incident Reporting and Post-Incident Review. Reporting in good faith is never penalised, including when the person reporting caused the problem.

Emergency contacts:

Fire, medical emergency, police911
SFU Campus Public Safety (Burnaby)778-782-4500
FAS Safety OfficerContact via the FAS Safety website

Assembly area for the Applied Sciences Building is the point shown on the evacuation map posted in ASB 9819. Do not re-enter the building until emergency or safety personnel authorise re-entry.

12 References

  • SFU Racerbot POL-03 — Operations: Safety, Facilities and Property, §5.
  • SOP-TECH-01 — Lithium Battery Safety, Charging and Storage.
  • SOP-TECH-06 — Day-to-Day Lab Operations and Housekeeping.
  • SOP-ADM-09 — Incident Reporting and Post-Incident Review.
  • Racerbot car workspace documentation — architecture and safety model, including the LB deadman policy and the command arbitration priorities. github.com/sfu-racerbot.
  • F1TENTH / RoboRacer platform documentation and build guide.
  • SOP-004-FAS — Lithium-Ion and Lithium Polymer Battery Safety and Emergency Response, Faculty of Applied Sciences, Version 1.0, August 2026.
  • SFU Racerbot Student Team Risk Assessment, 2026-09-10.
  • SFU Racerbot Student Team Lab Safety Plan, 2026-09-10.

Appendix A — Attachments

Attachments are listed in the order they are referenced and filed behind this page.

RefDocumentDate / version
A.1Vehicle build record — one per vehicle, held in the team repository
A.2Test session run log template
A.3Course layout sketch for each approved route, with barrier and spotter positions
A.4Course signage artwork — TESTING IN PROGRESS — DO NOT ENTER
A.5List of members cleared as Test Lead and as operator