YouDuck.ai

Gamepad controls

Last updated

The mapping is the prototype’s, so muscle memory carries over.

The sticks have three modes

What the two sticks do depends on the mode, switched with Y and B:

Left stick Right stick
Default (drive) Forward/back, strafe Turn
Y / triangle — head Head yaw and pitch Neck pitch, head roll
B / circle — body pose Up and crouch Pitch and roll

Head mode holds the body still; body-pose mode leans and crouches the standing robot.

Buttons

Control Does
Start Toggle the policy — nothing moves until it is on
Y / triangle Head mode
B / circle Body-pose mode
A / cross Ground pick (crouch, on rollers)
X / square Roulade — one forward roll; hold to chain
LB / RB Left / right kick
DPad-Down Sit ↔ stand
RT / LT Mouth (either trigger) — RT also quacks, LT rides the “wheee”
DPad-Up, held 3 s Switch drive mode, walk ⇄ roller
Select, held 2 s Sit down, then power off

There is no stop button

This is a design decision, not an omission.

Release the sticks and the robot stands. If padd dies, robotd’s deadman stops it. A dedicated stop button would not help in the second case — with the process gone, the button press has nowhere to go either.

walk and roller

After fitting or removing the wheels, hold DPad-Up for three seconds: the robot quacks once for walking or twice for roller, returns to its home pose, loads that mode’s policies there, and drives again. A few seconds, torque on throughout, no restart.

It is a hold rather than a press because D-pad up is easy to lean on while driving.

robotd.toml is not touched, so a reboot comes back in the configured mode. Make it stick with sudo robotctl configure and [policy] mode.

What changes on rollers

On a robot configured as roller (mode = "roller"), the sticks take the roller shaping automatically — asymmetric push and brake, no strafe — and A becomes the crouch.

The other skills ride along: sit, kicks and the roulade work on wheels too.

Driving with non-default limits

Stop the service first, or two processes fight over the sticks:

sudo systemctl stop padd
sudo -u padd /opt/robot/daemon/current/bin/padd --max-linear 0.25

Related