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.
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
-
Release LB — the car stops
-
Grab the controller if teleop is running — the human always outranks autonomy
-
Ctrl+C the control-layer terminal
-
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
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.
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.
3 Equipment and Apparatus
| Item | Specification | Status |
|---|---|---|
| Vehicle | 1/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 |
| Controller | Logitech 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 barriers | Vevor barrier tubing forming a continuous perimeter along both sides of the run and closing both ends. | In service |
| Course signage | One sign at each end of the barriered route: TESTING IN PROGRESS — DO NOT ENTER | To be produced before first corridor session |
| High-visibility vests | One per spotter for corridor testing. | To be obtained |
| Safety glasses | Impact-rated, for anyone inside the barrier line. | In place |
| Battery equipment | As specified in SOP-TECH-01. Charging never happens at the test site. | In place |
| ABC extinguisher | The workspace extinguisher, or a portable unit carried to the test site for corridor sessions. | In place |
| Run record | The 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
| Hazard | Mechanism of injury | Engineering control | Administrative control | Required PPE |
|---|---|---|---|---|
| Vehicle strikes a person | Impact 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, runaway | Vehicle 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 pack | Impact 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 drivetrain | Fingers 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 corridor | Trip 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.
- 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.
- 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.
- 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.
- Disconnect the battery — All power removed. The car is inert. Last resort, and only when the car is stationary and safe to approach.
6.3 Roles for a course session
| Role | Who | Responsibility |
|---|---|---|
| Test Lead | Assigned by Tech Team Lead, Autonomous Team Lead, or a member named in advance | Oversees 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. |
| Operator | A member cleared to drive | Holds the controller and the deadman for the whole run. Does nothing else — no laptop, no phone, no conversation. Eyes on the car. |
| Spotters | One at every corner | Watches 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 operator | A member cleared on the software stack | Runs 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.
8 Procedure
8.1 Before the session
- The Test Lead confirms the session plan: what is being tested, which build, what speed, and how many people are needed.
- All code that is run on car must be pre-tested in simulation.
- 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.
- 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
- Choose a route with no open stairwell, no unsecured door swinging into it, no drop and no fire equipment inside the barrier line.
- 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.
- Post a sign at each end: TESTING IN PROGRESS — DO NOT ENTER.
- Leave a clear walking route past the course. Never barrier a corridor end to end so that someone has to turn back.
- 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
- 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.
- Start the foundation layer (bringup). The car will not move from this alone — that is by design.
- 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.
- 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.
- The operator holds LB for the run and releases it to end the run.
- 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.
- Between runs, the car is disarmed before anyone touches it. Nobody reaches into a powered vehicle.
8.5 Ending the session
- Release LB, stop the control layer, then the foundation layer.
- Disconnect the pack. Bring it back to storage voltage under SOP-TECH-01 §8.3 before putting it away.
- Strike the barriers and signs and leave the route exactly as you found it.
- Complete the run log while the session is still fresh, including anything that surprised you.
- 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 item | What is captured |
|---|---|
| Vehicle identity | Vehicle number and chassis identifier. |
| Hardware configuration | Motor, VESC, servo, LiDAR, compute module, camera, gearing and tyre compound in use, with the date each was last changed. |
| Battery pairing | Which packs are assigned to this vehicle, by pack identifier. |
| Software build | Branch, commit hash and parameter set flashed to the car, with the date. |
| Change log | Every hardware or software change: what changed, who changed it, when, and why. |
| Test history | Date, 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
| Symptom | Likely cause | Action |
|---|---|---|
| Autonomy node runs and logs, but the car does not move | Manual teleop is also running and is winning arbitration | Stop teleop entirely and relaunch autonomy. Do not run both control layers at once. |
| Car does not move at all with LB held | Controller not in XInput mode, controller stream dead, or bringup not running | Check 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 autonomy | Steering term oscillating, or a control layer conflict | Abort the run. Return to the workspace and reproduce it in simulation before running on the floor again. |
| Steering pulls to one side | Servo trim, bent linkage or a loose wheel nut | Stop 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 straight | Known limitation of purely reactive steering; not itself a safety fault | Reduce speed and note it in the run log. Not a reason to continue at target speed. |
9 Collision, Injury and Property Damage
- Release LB. Stop everything before you do anything else.
- 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.
- 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.
- Photograph the scene, the car and the barrier layout before anything is moved.
- Freeze the software build until review is complete.
- Report the same day under SOP-ADM-09, and tell the Team Lead, the Operations Coordinator and the FAS Safety Officer.
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
- Release LB and disarm the car.
- Strike the barriers immediately — they must not obstruct anyone evacuating.
- Evacuate. The car stays. Do not go back for equipment.
- 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, police | 911 |
|---|---|
| SFU Campus Public Safety (Burnaby) | 778-782-4500 |
| FAS Safety Officer | Contact 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.
| Ref | Document | Date / version |
|---|---|---|
| A.1 | Vehicle build record — one per vehicle, held in the team repository | |
| A.2 | Test session run log template | |
| A.3 | Course layout sketch for each approved route, with barrier and spotter positions | |
| A.4 | Course signage artwork — TESTING IN PROGRESS — DO NOT ENTER | |
| A.5 | List of members cleared as Test Lead and as operator |