PlatoPod Get in touch

Robots that answer back.

A program on a screen can be wrong without anyone noticing. A robot that drives into a wall cannot. Plato Pod gives students real robots to program, a world of simulated sensors around them, and problems that need decisions and plans rather than a single right answer.

A recorded run of the cooperative sweep. Two pods shared out a 0.73 × 0.80 m arena and found all six hidden mines in 69.5 seconds, stopping when 97% of the ground was covered. That was a fast run; two to four minutes is usual.

Problems worth solving

Each exercise is a problem with more than one good answer. The strategy behind it is a single function with its own tests, so a student can replace it without touching anything else.

Pursuit

Tag

One pod evades, one pursues, both planning a way round the obstacles.

Control

Follow a path

Draw a route in the browser and a pod drives it. Steering well is harder than it looks.

Cooperation

Cover the ground

The vacuum-cleaner problem: two pods divide the arena between them so no ground is missed and none is swept twice.

Search

Find the gas source

Follow a simulated gas sensor to a leak. A graded exercise, with reference solutions from a random walk up to a search that respects rules of engagement.

Teams

Capture the flag

Two teams, their zones and a flag laid out on the arena, for students to plan around.

Sensing

Make sense of sensors

Sonar, radar, lidar, gas and more, each with adjustable noise, so a student learns what a real sensor does and does not tell them.

No code

The plain-English track

Not every learner needs to program. On this track students describe a strategy in plain English — how to sweep a room, how to take a flag — and the pods carry it out. Getting it right means thinking logically and in the abstract, anticipating what could go wrong, and saying exactly what they mean. It suits students without an engineering background, and mid-career officers.

What student code looks like

Students drive pods from Python with a small library, with no robotics software to install. Here a pod reads its sonar and turns away from anything closer than 20 cm:

from platopod import Arena

arena = Arena("ws://arena.local:8080/api/control")
POD = 1

arena.subscribe_sensors(POD, ["sonar"])

while True:
    sonar = arena.get_sensor(POD, "sonar")
    if sonar:
        ahead = sonar["ranges"][0]              # beam 0 points straight ahead
        if ahead < 0.20:                        # something within 20 cm
            arena.cmd_vel(POD, 0.0, 1.2)        # turn on the spot
        else:
            arena.cmd_vel(POD, 0.10, 0.0)       # drive on at 10 cm/s
    arena.sleep(0.1)

The same interface is plain JSON over a WebSocket, so any language that can open one can drive the arena.

From first loop to planning

The same arena carries a class from a first loop that reads a sensor, through feedback control and path planning, to robots that cooperate and decide under uncertainty. The robots do not change; the problems do.