PAPER DEEP DIVE
PhoneBot: A Low-Cost Open Humanoid Robot Platform Reusing Smartphones
PhoneBot is a roughly 400-dollar open-source 13-DoF bipedal platform that reuses a commodity smartphone as its IMU, camera and onboard computer. A torque-aware DYNAMIXEL XL430 actuator model in MJX, combined with sagittal-mirrored PPO, yields balanced walking, standup and camera-heading policies that run entirely on old or prepaid Android phones.
Paper: PhoneBot: A Low-Cost Open Humanoid Robot Platform Reusing Smartphones (arXiv:2610.08737, arxiv.org/abs/2610.08737)
Authors: Ruochen Hou, Quanyou Wang, Daniel Koh, Dennis W. Hong (Robotics and Mechanisms Laboratory, RoMeLa, University of California Los Angeles)
Project page: phonebot.dev Code status: the conclusion promises open-source hardware and software to support reproducible research, but at ingest time the project page still showed only a placeholder image and no matching repository exists on GitHub, so this entry is recorded as "open source promised, code pending release".
Figure 1: platform overview. Left: the assembled 13-DoF biped with the phone torso; middle: the camera, IMU and policy-inference roles the phone takes; right: walking and stand-up poses. 1.8 kg, 13 active degrees of freedom, about USD 400 excluding the phone.
In One Sentence
PhoneBot turns a few-dozen-dollar consumer smartphone into a humanoid robot's inertial sensor, camera and onboard computer, then pairs it with a reinforcement-learning pipeline that writes the XL430 servo's torque-speed envelope, back-drive stiffness and encoder backlash honestly into simulation, letting a roughly $400, 13-DoF biped walk with left-right symmetry and very small seed-to-seed variance.
Background and Motivation
Small humanoid robots are an entry-level platform for studying walking, physical interaction and embodied intelligence: they are compact enough for a lab bench or a classroom. But "fits on a bench" is not the same as "affordable". Table I of the paper does the arithmetic bluntly: ROBOTIS OP3 is about USD 13.8K, BRUCE about 9K, ToddlerBot about 6K, Berkeley Humanoid Lite about 5K, and HighTorque MiniPi about 3.5K. For a course, a research group or a high-school robotics club, that is not buying one piece of equipment, it is committing a budget line.
The less visible cost is integration. Structural parts are only the beginning: locomotion control, perception, communication and human-robot interaction each need their own components, drivers and calibration. The inertial measurement unit has to be selected and rigidly oriented, the camera needs its own power and alignment, the onboard computer needs thermal management and wiring, and an operator interface still has to be built. None of these items is expensive on its own, but the accumulated engineering hours and failure points are enough to kill the teaching use case.
Existing open platforms cut cost mainly through structure and actuators: ToddlerBot pairs 3D-printed frames with commercial servos, Berkeley Humanoid Lite uses modular 3D-printed gearboxes and easily sourced components. They solve "can be built", while sensing and computing remain separate line items. The observation behind PhoneBot is that one class of device has already been refined for more than a decade by the consumer electronics industry, converging a camera, an IMU, wireless radios, CPU/GPU, screen, microphone and speaker onto a single well-maintained platform with a mature operating system, yearly hardware refreshes and a large second-hand market: the smartphone. OpenBot already showed that a phone is enough for perception and navigation on a wheeled base. PhoneBot asks whether the same idea can carry a biped that falls, stands up, and must read its IMU at control rate.
Putting a phone into a biped exposes a second problem: the actuators are weak. Thirteen DYNAMIXEL XL430-W250 servos have a stall torque of only 1.4 N·m at $23.90 each, and they are the single largest cost item in the machine. A position servo can deliver almost no force near its no-load speed, so a policy trained against ideal position actuators in simulation collapses on real hardware. Cheap therefore has to come with honest: the actuator model inside the simulator must reflect torque ceilings, speed-dependent derating, back-drive stiffness and backlash, otherwise the entire sim-to-real gap lands on the actuators.
The contributions follow from that: first, a modular, open-source, 13-DoF humanoid whose torso and brain are a smartphone; second, a torque-aware walking pipeline in which sagittal mirroring simultaneously improves learning speed, training consistency and left-right load balance; third, an Android application integrating IMU inference, vision, SLAM and human-robot interaction, validated on four older or budget phones.
Preliminaries
The servo torque-speed envelope. Hobby and quasi-industrial servos present themselves as position devices: given a target angle, an internal PD loop produces torque to track it. That torque is truncated by the torque-speed curve: near zero speed the device can deliver close to stall torque, available torque falls linearly as speed rises, and only a residual value is left at the no-load speed. When an external load back-drives the motor, gearbox efficiency drops, so passive-direction stiffness exceeds active-direction stiffness. An ideal position-actuator model that ignores this envelope systematically overestimates available torque during fast swing phases.
Asymmetric actor-critic and privileged information. The walking policy is trained with PPO, where actor and critic see different observations: the actor receives only noisy signals that genuinely exist on hardware (phone IMU, joint feedback), while the critic additionally receives privileged state available only in simulation (base linear velocity, foot contacts, swing time, and so on). The critic is discarded at deployment, so the actor's observation dimension equals the real-robot observation dimension; this structurally prevents "peeking during training, going blind during deployment".
Symmetry augmentation. For a left-right symmetric robot, the dynamics are invariant under reflection about the sagittal plane. A transition collected from one physics step can therefore produce a mirrored transition for free, as a second policy sample, without a second simulation step. Prior work used symmetry augmentation to improve sample efficiency and gait symmetry; this paper adapts it to a privileged critic, where the value loss is computed on real samples only and mirrored samples enter the actor loss alone.
Method
Whole Body and Joint Layout
PhoneBot's assembled dimensions are 483 × 183 × 125 mm (height × width × depth), with a total mass of 1.8 kg including phone, actuators, structure, electronics and battery. Each leg has six actuated joints in the conventional serial-biped arrangement: hip yaw, hip roll, hip pitch, knee pitch, ankle pitch, ankle roll, labelled J1-J6 for one leg and J7-J12 for the other; a thirteenth joint, torso yaw J13, connects the lower-body assembly to the phone mount. J13 matters because it lets the upper sensing platform rotate independently of the heading of travel: active visual tracking, camera re-orientation and perception tasks no longer require turning the whole robot. Most joint travel is mechanically limited to ±90°, while hip pitch J3/J9 has asymmetrically extended ranges ([-90°, 123°] and [-123°, 90°]) that reserve sagittal workspace for squatting, large leg swings and fall recovery. All thirteen joints use the DYNAMIXEL XL430-W250-T: 258.5:1 gear ratio, 1.4 N·m stall torque, 57 RPM no-load speed, 4096 pulses per revolution, 57.2 g each.
Figure 2: joint configuration and center of mass. (a) Front view with J1-J12 and joint axis directions; (b) side view showing torso yaw J13 and the center-of-mass marker.
Electronics and System Architecture: the Phone Has No Wires
The system has two tiers. The phone handles perception, walking-policy inference and the entry point to cloud services; a mini single-board computer (SBC) talks to the actuators and executes joint position commands. There is no physical electrical connection between the two tiers: high-level control commands, joint telemetry and wireless gamepad input all travel over Wi-Fi in both directions. The paper stresses that this is deliberate, because a wired link would lock phone compatibility to a particular connector, while Wi-Fi lets any phone that runs the app be mounted as the torso. The SBC connects over USB to a DYNAMIXEL U2D2 converter, which drives the thirteen actuators on a TTL bus; power comes from a 3S battery through a 5V DC-DC converter.
Figure 3: system overview. The GPT service, face tracking, SLAM and inference modules on the phone exchange inputs and outputs over Wi-Fi with the SBC, U2D2 and actuator bus on the robot hardware side.
Torque-Aware Actuator Model: Writing a $23.90 Servo Honestly Into Simulation
Let joint position, velocity and acceleration be $q$, $\dot{q}$ and $\ddot{q}$. After the policy emits a position residual $a$, the target angle first takes a per-episode constant offset $\delta$ and is then clipped to the joint limits:
$$\hat{q}=\mathrm{clip}_{[\underline{q},\overline{q}]}\left(q_{\mathrm{home}}+a+\delta\right),\quad \delta\sim\mathcal{U}[-0.05,\,0.05]\ \mathrm{rad} \tag{1}$$
The unconstrained PD torque is
$$\tau_{m}=k_{p}^{\mathrm{eff}}\,(\hat{q}-q)-\left(k_{d}^{\min}+k_{d}\right)\dot{q} \tag{2}$$
where firmware gains are converted to simulation units through $k_{p}=k_{p}^{\mathrm{real}}/r_{p}$ and $k_{d}=k_{d}^{\mathrm{real}}/r_{d}$ ($r_{p}=150$, $r_{d}=16$; firmware $k_{p}^{\mathrm{real}}=600$, $k_{d}^{\mathrm{real}}=0$, giving simulation stiffness $k_{p}=4.0$ N·m/rad and powered-on additional damping $k_{d}^{\min}=0.162$ N·m·s/rad). When the motor is back-driven, that is $\ddot{q}\,(\hat{q}-q)<0$, the stiffness is scaled by the passive-to-active ratio $\rho$ to model gearbox efficiency loss:
$$k_{p}^{\mathrm{eff}}=\begin{cases}\rho\,k_{p}, & \ddot{q}\,(\hat{q}-q)<0,\\ k_{p}, & \text{otherwise}.\end{cases} \tag{3}$$
The acceleration-side torque ceiling is a piecewise-linear function of speed: it holds $\tau_{\max}$ up to $\dot{q}_{\tau_{\max}}$ and then decays linearly to the residual value $\tau_{\dot{q}_{\max}}$ at the no-load speed:
$$\tau_{\mathrm{acc}}(\dot{q})=\begin{cases}\tau_{\max}, & |\dot{q}|\leq\dot{q}_{\tau_{\max}},\\ \tau_{\max}+\dfrac{\tau_{\dot{q}_{\max}}-\tau_{\max}}{\dot{q}_{\max}-\dot{q}_{\tau_{\max}}}\left(|\dot{q}|-\dot{q}_{\tau_{\max}}\right), & |\dot{q}|>\dot{q}_{\tau_{\max}}.\end{cases} \tag{4}$$
The braking side is a larger constant $\tau_{\mathrm{brake}}$, so the applied torque is an asymmetric clip:
$$\tau_{\mathrm{clip}}=\begin{cases}\mathrm{clip}\left(\tau_{m},\,-\tau_{\mathrm{brake}},\,\tau_{\mathrm{acc}}\right), & \dot{q}\geq 0,\\ \mathrm{clip}\left(\tau_{m},\,-\tau_{\mathrm{acc}},\,\tau_{\mathrm{brake}}\right), & \dot{q}<0.\end{cases} \tag{5}$$
If an acceleration command appears at a speed beyond the no-load speed, full braking is triggered directly, $\tau=-\mathrm{sign}(\dot{q})\,\tau_{\mathrm{brake}}$. On the MuJoCo side, passive torque $\tau_{p}=-d\dot{q}-\tau_{f}\,\mathrm{sign}(\dot{q})$ and rotor inertia $I$ are added. Nominal parameters are $\tau_{\max}=0.93$ N·m, $\dot{q}_{\tau_{\max}}=2.0$ rad/s, $\dot{q}_{\max}=5.97$ rad/s, $\tau_{\dot{q}_{\max}}=0.08$ N·m, $\tau_{\mathrm{brake}}=1.4$ N·m, $\rho=3.0$, $d=0.0013$ N·m·s/rad, $I=0.0083$ kg·m², $\tau_{f}=0.069$ N·m.
Encoder backlash acts only on the joint position observed by the policy, not on the underlying dynamics:
$$\tilde{q}=q+\tfrac{1}{2}\,b\,\tanh(\tau/\alpha) \tag{6}$$
The backlash width $b$ is sampled per episode from $\mathcal{U}[0.02,\,0.1]$ rad, and $\alpha=0.1$ N·m sets the load level at which the offset saturates. Training additionally multiplies the envelope parameters by per-episode random factors: $k_{p},k_{d}\in[0.7,1.3]$; $\tau_{\max},\tau_{\mathrm{brake}},\tau_{\dot{q}_{\max}}\in[0.75,1.1]$; speed breakpoints and $k_{d}^{\min}\in[0.9,1.1]$; $\rho\in[0.5,1.5]$. The model is referenced against ToddlerBot's torque-limited Dynamixel model, but completes the randomization ranges, back-drive stiffness and observation-side backlash, so the policy meets the real machine's torque ceiling during training rather than after deployment.
| Parameter | Symbol | Value |
|---|---|---|
| Simulation stiffness / powered-on additional damping | $k_{p}$ / $k_{d}^{\min}$ | 4.0 N·m/rad / 0.162 N·m·s/rad |
| Passive-to-active stiffness ratio | $\rho$ | 3.0 |
| Peak acceleration-side torque / derating onset speed | $\tau_{\max}$ / $\dot{q}_{\tau_{\max}}$ | 0.93 N·m / 2.0 rad/s |
| No-load speed / residual torque there | $\dot{q}_{\max}$ / $\tau_{\dot{q}_{\max}}$ | 5.97 rad/s / 0.08 N·m |
| Braking torque | $\tau_{\mathrm{brake}}$ | 1.4 N·m |
| Backlash width / saturation load | $b$ / $\alpha$ | [0.02, 0.1] rad / 0.1 N·m |
| Command offset range | $\delta$ | [-0.05, 0.05] rad |
Table 1: nominal XL430 parameters used by the torque-aware simulator (excerpt of Table IV in the paper); all thirteen joints share the same model.
Observations, Actions and Reward
The actor observation is 52-dimensional: noisy angular velocity $\omega_{t}$, projected gravity $g_{t}$, the velocity command $c_{t}=(v_{x},v_{y},\omega_{z})$, joint positions relative to the offset home pose (including the load-dependent backlash of Eq. (6)), joint velocities, the previous action, and the biped gait phase $(\cos\phi_{L},\cos\phi_{R},\sin\phi_{L},\sin\phi_{R})$. When $\|c_{t}\|$ falls below a 0.05 dead zone, the phase fed to the network is replaced by $(\pi,\pi)$, so one policy can both walk and stand. The critic observation is 120-dimensional: on top of that proprioception it adds the noisy base linear velocity, noise-free copies of the IMU and joint states, and simulation-only quantities such as base height, actuator effort, binary foot contacts, foot linear velocity and swing-leg air time. The action is a 13-dimensional joint position residual at 50 Hz control rate; commands are sampled over $v_{x},v_{y}\in[-0.5,0.5]$ m/s and $\omega_{z}\in[-1.0,1.0]$ rad/s, with a 0.1 probability of issuing a zero command (stand still).
The per-step scalar reward is $r=\Delta t\sum_{i}w_{i}r_{i}$ with control step $\Delta t=0.02$ s. Tracking terms reward IMU-frame linear velocity and yaw rate for following the command; gait terms encourage alternating swing legs, a 3 cm foot-height profile, feet parallel to the ground and zero slip. The most notable regularization term for this hardware is the torque-utilization penalty aimed at XL430 saturation: with $u=|\tau|/\tau_{\mathrm{lim}}$, the term $\mathrm{mean}\left(\mathrm{clip}((u-0.8)/0.2,0,1)^{2}\right)$ is nonzero only once $u$ exceeds 0.8, at weight -2.0. It tells the policy directly not to spend its life pressed against the torque ceiling. Pose terms use weighted squared error with 0.5 for hip pitch, knee and ankle and 1.0 elsewhere, allowing stepping joints to deviate from the home pose. Linear-velocity tracking $\exp\left(-\|v_{xy}-c_{xy}\|_{2}^{2}/\sigma\right)$ and yaw tracking $\exp\left(-(\omega_{z}-c_{z})^{2}/\sigma\right)$ both carry weight 4.0, foot slip -10.0 and foot air time +10.0.
Sagittal Mirroring: a Symmetry Regularizer for a Torque-Limited Platform
On a torque-limited platform, a walking policy can converge to an asymmetric local optimum in which one foot stays forward and the other stays back in support for long stretches, concentrating load and XL430 torque on a single support leg. The authors measured exactly this gait on checkpoints trained without mirroring: the left foot led while the right foot supported. PhoneBot's mechanism is left-right symmetric, so this bias is an avoidable artifact of the algorithm rather than a mechanical necessity.
The fix concatenates a sagittal mirror of the collected batch into every PPO update: one physics step produces the real transition, and the trainer concatenates mirrored policy samples $(o^{\prime}_{t},a^{\prime}_{t})$ for the actor loss. Advantages and returns are computed on real trajectories only and reused for the mirrored policy samples, so the critic never evaluates synthetic trajectories; the value loss is also computed on real samples only, because the privileged critic contains world-frame signals that cannot be mirrored without the floating-base yaw. The mirroring rules are defined in the IMU frame (+x forward, +y left, +z up): polar vectors (gravity, linear velocity, acceleration) are multiplied by $\mathrm{diag}(1,-1,1)$, angular velocity by $\mathrm{diag}(-1,1,-1)$, and the command $(v_{x},v_{y},\omega_{z})$ by $\mathrm{diag}(1,-1,-1)$; the left and right legs are swapped, the gait phase pair is swapped, and every hinge angle (including torso yaw) is negated. That last negation follows from PhoneBot's CAD convention, where each joint axis is the local +z, so after the left-right permutation the sagittal reflection reverses the rotation sign of all thirteen actuators. The same permutation and signs are applied to the action $a_{t}$ and to the Gaussian policy mean, while the policy scale is only permuted.
The effect can be read as follows: a gait that prefers the left leg is trained as if the right-preferring gait had also been simulated once, without a second simulation step. With augmentation enabled, walking no longer depends on a single support leg; and because each physics step yields two policy samples, tracking rewards also rise within fewer environment steps.
flowchart TD ENV[MJX parallel envs with torque-aware XL430 model] -->|real transition o a r| BUF[PPO batch] BUF --> MIR[Sagittal mirror in IMU frame
polar diag 1 -1 1 / angular diag -1 1 -1
command diag 1 -1 -1 / swap legs and gait phase
negate all 13 hinge angles incl trunk yaw] BUF --> ADV[Advantages and returns on real trajectory only] BUF --> CRIT[Value loss on real samples only
120-dim privileged critic] MIR --> ACT[Actor loss on real plus mirrored samples] ADV --> ACT CRIT --> UPD[PPO update] ACT --> UPD UPD --> POL[Policy: 13-dim position residual at 50 Hz] POL --> ENV
Figure 4: training loop with sagittal mirroring. Mirrored samples enter the actor loss only; values and returns stay anchored to the real trajectory.
Stand-Up Recovery and Camera Heading Policies
The standup policy recovers from sitting and prone postures to a standing height of $z^{\star}=0.282$ m; the heading policy, from a standing pose, points the phone camera at a gaze direction in the world frame. Both reuse the same XL430 torque model, the same 13-dimensional action and the same actor/critic observation split, with the only difference being that the three command scalars switch from $(v_{x},v_{y},\omega_{z})$ to the remaining gaze error in the IMU frame, $(\sin\theta,\cos\theta,\varphi)$. Heading starts the walking gait only when the pelvis-frame gaze yaw exceeds 55° and stops below 30°: angles the torso yaw can cover are handled without stepping, reserving locomotion for large re-orientations. One detail of the standup reward matters: the pose-to-home term is deliberately weak (0.02 for the Gaussian-mean term, 0.0125 for the L1 term), so a robot lying on the floor cannot score by tucking its legs; height, upward velocity and upright attitude dominate the rise, and the stable-stand reward is granted only when height, tilt, pose and base velocity are simultaneously near their targets. Heading reuses the walking gait reward terms with the same weights while stepping, and those terms naturally fall to zero when standing.
The Phone Application: Sensing, Inference, Vision, SLAM and Interaction
The Android app reads the phone IMU at policy rate and assembles the actor observation together with joint state returned from the motors and the user command; the trained actor runs as a TensorFlow Lite graph on the phone CPU or GPU; joint position targets are sent over Wi-Fi (UDP) to the SBC, which forwards them to the XL430 bus. Walk, standup and heading all travel the same path. For voice, the phone microphone records audio, a laptop backend runs whisper.cpp transcription and a large language model, and the reply returns to the phone speaker through Piper text-to-speech; the API key stays on the laptop instead of shipping inside the Android package. For vision, the rear camera runs ML Kit object detection and MediaPipe human pose estimation to support person following and gaze behaviours; the same camera and IMU feed ARCore visual-inertial SLAM for onboard localization. The touchscreen shows status, camera overlays and controls, so the robot can be operated without an operator computer.
Experimental Results
Training comparison: mirroring gives earlier, higher and narrower. The two configurations (sagittal mirroring on and off) were each trained from scratch on flat terrain with five random seeds; environment, actuator model, observation split, action space and reward weights are identical, and the only difference is whether mirrored actor samples are concatenated in each PPO update. Evaluation curves over the first 1.5 × 10⁸ environment steps show that with mirroring the episode return rises earlier and reaches a higher final value, with a visibly narrower ±1 standard-deviation band across seeds. Linear-velocity tracking and yaw-rate tracking explain most of the gap, and the alive term is also higher, meaning the mirrored policy falls less. The swing-leg metrics are the most telling: without mirroring, the seed-to-seed band for foot air time and foot height is extremely wide, with some seeds learning to lift the swing foot and others dragging it along the ground, which is direct evidence of a seed-sensitive local optimum; with mirroring both terms converge quickly into a narrow band. Action rate is the one term where mirroring is not uniformly better: early in training the mirrored policy changes its actions more and pays a briefly higher cost, then falls back below the control, indicating that the extra early motion bought a quieter gait later.
Figure 5: training evaluation curves with (blue) and without (red) sagittal mirroring, mean and ±1 standard deviation over five seeds. (a) Episode return; (b)-(l) individual weighted reward terms.
Quantitative symmetry: two orders of magnitude of improvement. Taking checkpoints at 5 × 10⁸ environment steps and evaluating in nominal simulation with domain randomization, noise, latency, backlash, joint offsets and push disturbances all disabled, a 0.5 m/s forward command is issued and rollouts of 20 s start at 1.5 Hz from phase pairs [0, π] and [π, 0] (first second discarded). Mirroring reduces the time-averaged joint-angle symmetry error from 0.254 rad to 0.003 rad, the relative imbalance of mean absolute left-right torque from 0.205 to 0.034, and the relative imbalance of mechanical power $|\tau\cdot\dot{q}|$ from 0.339 to 0.040. For a machine whose stall torque is 1.4 N·m, a power imbalance of 0.34 means one leg is chronically overloaded, the precursor of burned servos and gait degradation; 0.04 is close to the measurement noise floor.
| Symmetry metric (nominal sim, mean over 5 seeds) | Mirroring off | Mirroring on |
|---|---|---|
| Joint-angle symmetry error (rad) | 0.254 | 0.003 |
| Relative left-right imbalance of mean absolute torque | 0.205 | 0.034 |
| Relative left-right imbalance of mechanical power | 0.339 | 0.040 |
Table 2: deterministic gait symmetry results (mean readings from Figure 5 of the paper).
Figure 6: per-seed scatter. (a) Joint-angle RMSE; (b) relative left-right torque difference; (c) relative left-right power difference. Seeds without mirroring scatter high, seeds with mirroring cluster near zero.
Real robot and four phones. Hardware demonstrations cover three capabilities: bipedal walking, front-camera person following, and standing up from prone. At the application layer the same feature set runs on four Android devices: a 2017 second-hand flagship Honor 9 (Kirin 960) plus three $50-90 prepaid phones, the moto g 2025 (Dimensity 6300), Galaxy A16 5G (Exynos 1330) and moto g 2024 (Snapdragon 4 Gen 1). For CPU utilization, policy inference takes 6.3%-10.3%, vision detection 15.6%-17.9%, ARCore SLAM 25.2%-34.3%, human-robot interaction 2.5%-5.2%, and idle 0.4%-1.1%; the Honor 9 cannot run SLAM because that device has no Google services in the United States. In qualitative walking trials, ARCore SLAM stayed stable under periodic body motion with no visible degradation caused by the bipedal gait, which is a necessary precondition for using a phone as the robot's localizer.
| Phone | Price | CPU | Idle | IMU 200 Hz | Policy inference | Vision detection | SLAM | Interaction |
|---|---|---|---|---|---|---|---|---|
| Honor 9 (2017, second-hand) | used | Kirin 960 | 1.1% | 12.1% | 9.8% | 17.9% | unavailable | 2.5% |
| moto g 2025 | $50 | Dimensity 6300 | 0.4% | 13.4% | 10.3% | 15.6% | 34.3% | 3.6% |
| Galaxy A16 5G | $50-80 | Exynos 1330 | 0.8% | 8.5% | 7.1% | 17.6% | 28.3% | 5.2% |
| moto g 2024 | $50-90 | Snapdragon 4 Gen 1 | 0.8% | 9.1% | 6.3% | 16.7% | 25.2% | 4.3% |
Table 3: hardware and per-feature CPU utilization of the four test phones (Table IX of the paper). GPU figures are omitted because the current application stack is CPU-bound.
Figure 7: real-robot demonstrations. (a) Bipedal walking; (b) front-camera person following; (c) recovery sequence from prone to fully standing.
Cross-platform comparison: an order of magnitude cheaper, and one of the few small platforms with perception plus open design and code. Against the five platforms in Table I, PhoneBot is 0.48 m tall, 1.8 kg, has 13 active degrees of freedom, and costs about $400 excluding the phone, nearly an order of magnitude below the cheapest comparison point, MiniPi. In the perception column only OP3, ToddlerBot and PhoneBot are checked; for openness, BRUCE and MiniPi release code only, while PhoneBot releases design and code like ToddlerBot and Berkeley Lite. In other words, the selling point is not any single metric but the fact that perception, openness and price land simultaneously in the range a teaching budget can reach.
| Platform | Height (m) | Mass (kg) | Active DoF | Perception | Open source | Price |
|---|---|---|---|---|---|---|
| ROBOTIS OP3 | 0.51 | 3.5 | 20 | yes | design + code | $13.8K |
| ToddlerBot | 0.56 | 3.4 | 30 | yes | design + code | $6K |
| BRUCE | 0.70 | 4.8 | 16 | no | code only | $9.0K |
| Berkeley Humanoid Lite | 0.80 | 16.0 | 22 | no | design + code | $5.0K |
| HighTorque MiniPi | 0.52 | 7.0 | 12 | no | code only | $3.5K |
| PhoneBot (this work) | 0.48 | 1.8 | 13 | yes | design + code | ~$400 |
Table 4: comparison with small humanoid research platforms (Table I of the paper); prices exclude the phone.
Limitations
The authors state three boundaries: the platform has no arms; the walking policy is trained on flat terrain only; and the limited torque of low-cost servos constrains payload capacity and dynamic motions. Future work will study rough-terrain walking, integrate lightweight arms for object manipulation, and explore moving language-model task planning onto the phone, translating voice commands and visual observations into commands for learned skills so that the current dialogue chain depends less on an external laptop backend.
From a reviewer's standpoint several more points deserve naming. First, the real-robot results are qualitative demonstrations: the paper reports no real-hardware velocity-tracking error, continuous walking duration or fall rate, so "reliable walking" currently rests on photographs and video, while all the impressive symmetry numbers come from nominal simulation. Second, the CPU utilization in Table IX is measured per feature in isolation; the headroom and thermal behaviour of the full concurrent stack (SLAM + vision + inference + voice) are unknown, and the Honor 9's missing SLAM shows the pipeline is still tied to Google services availability. Third, the torque-model parameters come mainly from manufacturer nominal values and hand-chosen randomization ranges, with no system identification on the real robot, so the residual between the modelled envelope and the physical one is not quantified. Fourth, and most concretely: the paper's central promise is fully open hardware and software, yet the project page currently holds only placeholder content and the repository is not public, so the reproducibility claim is still unpaid.
Conclusion and Outlook
PhoneBot's real contribution is replacing the most expensive cluster of components on a humanoid with a commodity that the consumer electronics industry has already subsidized for over a decade: the phone supplies IMU, camera, wireless, compute and user interface, leaving on the robot side only thirteen $23.90 servos, one SBC and a set of 3D-printed parts. To keep that cheap path physically defensible, the authors write the actuator torque-speed envelope, back-drive stiffness and backlash into simulation, and use sagittal mirroring to regularize away the asymmetric local optimum that a torque-limited platform falls into most easily. The five-seed controlled comparison and the two-orders-of-magnitude symmetry improvement are the hardest evidence in the paper.
It also leaves the community a clear list of questions: once compute and sensing are solved by the phone, the bottleneck of a small humanoid returns to actuators and structure; and once arms, rough terrain and onboard language planning are added, whole-body dynamics, contact conditions and actuator demand all change, so whether this torque-aware pipeline continues to hold is what the next PhoneBot must answer. For educators and researchers, a roughly $400 reproducible biped that walks, follows a person and stands itself up is by itself the shortest path for bringing embodied intelligence into more classrooms.
Memorable Line
"The most expensive sensing and computing suite on a humanoid robot may already be in your pocket; the remaining engineering problem is simply how to be honest about a $23.90 servo."



