Bachelor's Thesis · 2023 Dean's Award CTU FEE

Autonomous Road Crossing with a Mobile Robot

A behavior-tree controller that lets a mobile robot cross roads safely by detecting and tracking surrounding vehicles, deciding moment-to-moment whether it is safe to move forward. Evaluated across five simulated scenarios and validated on real hardware.

How it works

Perceive

The robot tracks the position and motion of every vehicle around it, projecting where each one will be over the next few seconds.

Decide

A behavior tree continuously evaluates whether moving forward would risk a collision. If so, it holds the robot in place and re-checks.

Cross

Once a sufficient gap appears, the robot commits and crosses at up to 1 m/s, keeping a safe clearance to every vehicle.

5Scenarios
8Simulation runs
4Vehicles (max)
0.52 mTightest clearance
1Safety abort

Simulation results

Each run shows the trajectory (robot in magenta, vehicles in other colours), the velocity profile, and the clearance to each vehicle over time. The minimum clearance is marked on the distance plot.

Scenario 1

Three-lane traffic

15.3 s 3 vehicles 0.54 m min 186 holds
Scenario 1 trajectory animation
Trajectory
Scenario 1 velocity profile
Velocity
Scenario 1 clearance to vehicles
Clearance to vehicles

The robot edges out, holds while three vehicles pass, then crosses. Closest approach 0.54 m.

Scenario 2 · run 1

No safe gap

Safety stop 2 vehicles 1.74 m min 511 holds
Scenario 2 · run 1 trajectory animation
Trajectory
Scenario 2 · run 1 velocity profile
Velocity
Scenario 2 · run 1 clearance to vehicles
Clearance to vehicles

Dense traffic with no sufficient gap. The controller correctly refuses to move forward (511 safety holds) and never crosses — it keeps a 1.74 m margin rather than risk a collision.

Scenario 2 · run 2

Tight gap

6.9 s 2 vehicles 1.00 m min 101 holds
Scenario 2 · run 2 trajectory animation
Trajectory
Scenario 2 · run 2 velocity profile
Velocity
Scenario 2 · run 2 clearance to vehicles
Clearance to vehicles

A gap opens after a short wait; the robot accepts it and crosses, keeping a 1.0 m margin.

Scenario 2 · run 3

Clear road

4.3 s 2 vehicles 0.63 m min 0 holds
Scenario 2 · run 3 trajectory animation
Trajectory
Scenario 2 · run 3 velocity profile
Velocity
Scenario 2 · run 3 clearance to vehicles
Clearance to vehicles

The road is clear at start — no holds triggered, so the robot crosses immediately in 4.3 s.

Scenario 3

Crossing traffic

9.4 s 2 vehicles 1.01 m min 185 holds
Scenario 3 trajectory animation
Trajectory
Scenario 3 velocity profile
Velocity
Scenario 3 clearance to vehicles
Clearance to vehicles

The robot waits out the approaching vehicles, then commits to the crossing with a comfortable 1.0 m margin.

Scenario 4 · run 1

Three vehicles

13.4 s 3 vehicles 0.74 m min 68 holds
Scenario 4 · run 1 trajectory animation
Trajectory
Scenario 4 · run 1 velocity profile
Velocity
Scenario 4 · run 1 clearance to vehicles
Clearance to vehicles

Three vehicles with staggered timing; the robot threads the gap after a brief hold.

Scenario 4 · run 2

Heavy waiting

26.1 s 3 vehicles 0.52 m min 659 holds
Scenario 4 · run 2 trajectory animation
Trajectory
Scenario 4 · run 2 velocity profile
Velocity
Scenario 4 · run 2 clearance to vehicles
Clearance to vehicles

The hardest run: 659 safety holds across 26 s before a gap finally allows a tight 0.52 m crossing.

Scenario 5

Four vehicles

13.5 s 4 vehicles 0.85 m min 101 holds
Scenario 5 trajectory animation
Trajectory
Scenario 5 velocity profile
Velocity
Scenario 5 clearance to vehicles
Clearance to vehicles

Four vehicles share the road; the robot sequences its move to cross safely with a 0.85 m margin.

Real-world validation

The same controller was deployed on a real mobile robot and tested on an outdoor road. The robot perceived passing vehicles, waited for a safe gap, and completed the crossing autonomously.

On-board recording of the real crossing
Recorded trajectory of the real-world crossing
Recorded trajectory of the real crossing

Part of my bachelor's thesis at CTU FEE, awarded the Dean's Award (2023).