Robots · Humanoids

EngineAI PM01 teleoperation: an open SDK and RL stack with no teleop app, and how to add one

The PM01 is one of the lower-cost open humanoids, with BSD-licensed SDK, ROS 2 and reinforcement learning code. What it lacks is a teleoperation stack, so data programs on it start by building one.

EngineAI PM01, Mid-size open-SDK humanoid (1.40 m, 24 DoF)
AI-generated illustration of the EngineAI PM01. For product photos, see EngineAI.
Height and weight
1,400 mm; about 44 kg (Education edition)
Degrees of freedom
24: 6 per leg, 5 per arm, 1 waist, 1 neck
Max joint torque
164 N·m; peak torque density 145 N·m/kg
Waist rotation
Over 300 degrees (320 degrees in EngineAI highlights)
Battery
About 2 h; 2 h full charge; quick-release smart battery
Compute
8-core CPU plus NVIDIA Jetson Orin NX (16 GB)
Sensors
Two binocular cameras (head and waist); 3D LiDAR on the Navigation edition
Secondary development
Supported on the 2026 Education and Navigation editions

Updated

EngineAI's PM01 is a 1.4 m, 44 kg humanoid with 24 joints, a waist that turns more than 300 degrees, and a Jetson Orin NX on board. It launched in December 2024 at RMB 88,000, and EngineAI backs it with open code: a native control SDK, a ROS 2 workspace and Isaac Lab reinforcement learning environments, all BSD-3-Clause. That makes it attractive as a lower-cost alternative to better-known research humanoids. The catch for a data program is simple. EngineAI publishes no teleoperation stack, and the PM01's 5-DoF arms have no hand in the spec sheet. This page covers what you can build on it, and what kind of data it is suited to.

Which PM01 to buy

EngineAI's PM01 page lists two 2026 editions with the same body, joints and torque. Both support secondary development.

Education edition

About 44.0 kg, a chest touchscreen, two binocular cameras and no 3D LiDAR. The right choice for tabletop, locomotion and motion-tracking research.

Navigation edition

About 44.5 kg, slightly deeper (295 mm), with 3D LiDAR and no chest screen. Pairs with EngineAI's open navigation repo, which trains an end-to-end PPO policy on LiDAR range images. Choose it if the robot has to move around a site on its own between teleop sessions.

As of October 2026, foreign-produced advanced robotic devices are on the FCC Covered List under FCC public notice DA 26-786 (July 28, 2026), unless the Department of War grants them a Conditional Approval. The FCC definition covers mobile robots, including humanoids, quadrupeds and autonomous mobile robots, that weigh over 4.4 lb with any base or dock and have a sensor, network connectivity and control software, when they do not qualify as US-made under the federal Buy American test, whatever the nationality of the maker. Covered models cannot receive new FCC equipment authorizations, which most devices need before they can be imported or sold in the US, while the FCC says models it authorized earlier can still be imported, sold and used; US buyers should confirm the current status with the seller.

What EngineAI gives you to build on

Native SDK

The engineai_robotics_native_sdk (BSD-3-Clause) runs on ROS 2 Humble or Jazzy in Docker and supports `pm01_edu` and `t800`. It is organized as a state machine: idle, passive (damping), pd_stand, walk, dance and rl_lab, which runs policies trained in EngineAI's RL framework. A Logitech F710 gamepad in Xbox mode switches states, a virtual gamepad tool mirrors the same mapping, and LB plus RB forces any state into passive as a soft emergency stop.

ROS 2 workspace

engineai_ros2_workspace targets ROS 2 Humble on Ubuntu 22.04 with Cyclone DDS, with examples for body velocity control, joint testing and RL walking-policy deployment, and a joint bridge mode entered from the remote. Docs are in English with a Chinese version.

Isaac Lab RL environments

engineai_rl_lab has whole-body tracking tasks that teach the PM01 or T800 to reproduce a reference motion, and AMP tasks that learn from motion datasets. Tracking takes CSV motion files (the example is a 30 fps dance clip) converted to NPZ. Policies export for MuJoCo sim2sim and then deploy to the robot through the native SDK.

EngineAI's own launch release says it used optical motion capture to collect large amounts of human motion data, which fed a network trained with reinforcement and imitation learning. In other words, the maker's own path to PM01 behaviors runs through human motion, not through live teleoperation.

Two ways to teleoperate a PM01

Live teleop: VR plus the walking controller

Keep the PM01's walk state in charge of balance and send it body velocity commands from the operator's joystick or VR thumbstick, as the ROS 2 workspace's velocity example does. For the arms, stream headset and controller poses, solve IK on a computer next to the robot, and send joint targets for the 5-DoF arms and the waist with limits enforced locally. With five arm joints, expect approximate arm poses: the robot cannot match every hand orientation.

Motion capture into a tracking policy

Record the operator in a mocap suit or VR full-body tracking, retarget to PM01 joint angles, export CSV, and train a whole-body tracking policy in engineai_rl_lab. This is not real-time teleop, but it is how EngineAI's own tooling turns human motion into robot behavior, and it suits dance, gesture and locomotion skills that the arms cannot add much to.

Rehearse in MuJoCo first. Both the native SDK and engineai_rl_lab run in simulation with a virtual gamepad, so you can check retargeting, joint limits and the soft stop before an operator drives the real robot.

Getting a PM01 ready for remote sessions

Most of the first week on a PM01 goes into plumbing rather than teleop. EngineAI's repos describe the steps, and each one is a place where a remote session can fail if it is skipped.

Development environment

The native SDK builds in Docker, natively on x86_64 or cross-compiled for the aarch64 onboard computer. The ROS 2 workspace expects ROS 2 Humble on Ubuntu 22.04 with Cyclone DDS set as the middleware. Put both on the computer the operator link will terminate on, next to the robot.

Deployment

engineai_rl_lab's sim-to-real steps set the robot's address in an install script, install to the robot, and stop the robot's auto-start service before launching the SDK. Write those steps into the site runbook so the on-site person can recover a session without the developer.

Mode switching

Modes change from the remote: passive, pd_stand, walk, joint bridge and the RL policy state. Decide which modes a remote operator may enter, and which only the on-site person may, before the first session.

Battery

About 2 hours per charge and 2 hours to recharge, with a quick-release battery. A second battery per robot keeps a shift going.

What to record

Observation

All 24 joint positions and velocities, the IMU, both binocular cameras (head and waist), and the LiDAR on a Navigation edition. Timestamp everything against one clock on the robot side.

Action

Arm and waist joint targets, the neck command if the operator drives it, and the walking velocity command as a separate field.

Metadata

Edition, end effector, SDK and firmware versions, operator, task, outcome and failure reason. Open-source repos change between releases, so the software version belongs in every episode.

Hands, grippers and what the PM01 can demonstrate

The PM01 spec lists 5-DoF arms (470 mm each) and no hand or gripper. For grasping you will need an end effector of your own, and the arm's five joints limit how it can be presented to an object. That pushes PM01 data toward what the body does well: walking, turning, balance, whole-body motion tracking, and simple contact with the arms. If your program needs dexterous manipulation, the T800 Pro and Max editions add 7-DoF arms and 7-DoF hands, and EngineAI's T800 page rates the hands at 5 kg each.

Whole-body versus upper-body data

On the PM01, the interesting data is often whole-body. A tracking policy needs the full joint vector, the IMU and the reference motion at a fixed rate. A live-teleop dataset with walking should record the velocity command as its own action field, separate from the arm targets, so a policy can learn when to move the base. Pick one representation for the whole dataset, write it in the dataset card, and do not mix the two. Our data collection guide covers episode structure and quality checks.

Latency

Velocity commands to the walk state tolerate a long link because balance runs on the robot. Arm teleop is more sensitive: below about 100 ms round trip it feels direct, between 100 and 200 ms operators slow down, and beyond that the operator should position the robot and leave fine work to a policy. Keep IK, joint limits and the soft stop on the robot side so a late packet never turns into a jerk. Our latency guide covers budgets by task.

What a good PM01 operator does

Follows EngineAI's deployment safety rules: clear the area, keep people at a distance, hang the robot from a support frame before lowering it, and know that LB plus RB drops it into passive.
Starts every episode from the same pd_stand pose. engineai_rl_lab asks for motion clips that start and end at the standing pose for smooth mode switches, and the same logic applies to teleop episodes.
Uses one strategy per task, across shifts and operators.
Keeps the waist within a set range. A waist that turns more than 300 degrees can face the torso far from where the operator is looking, so the protocol should cap waist rotation during teleop and keep the operator's view and the robot's frame aligned.
Checks both camera streams and the gamepad link at the start of every session, before the robot leaves pd_stand.
Labels falls, aborted episodes and recovered grasps honestly.
Rotates on a schedule, so fatigue does not show up as drift and hesitation in the data.

PM01 or T800?

EngineAI's T800 is the full-size step up: 173 cm and 75 to 85 kg in four editions. Basic and Open Source have 25 DoF with 5-DoF arms; Pro has 43 including two 7-DoF hands; Max has 46 with a 3-DoF waist. Secondary development is listed for Open Source, Pro and Max, not Basic. Shenzhen's development and reform commission reported the basic configuration from RMB 180,000 in December 2025, with other configurations by quote. For manipulation data the T800 Pro or Max is the EngineAI to buy; for locomotion and motion research, the PM01 costs less and is easier to handle.

Against other makers, the PM01's main gap is tooling around teleop and data, not hardware. LeRobot's built-in robots include the Unitree G1 but no EngineAI robot as of October 2026, and the Unitree G1 has a maintained XR teleop app. If your team would rather integrate than buy a finished stack, the PM01's BSD-licensed code is a reasonable base.

Takeover and fallback

When a PM01 runs a policy in the rl_lab state, the teleop stack you build becomes the fallback channel. Decide what triggers a handover, keep the soft stop one action away, and record each takeover as a correction episode. Our human-in-the-loop guide covers the escalation design.

How RoboPilots runs PM01 teleoperation

Your robot stays at your site. We agree the input with you, live VR teleop or mocap into a tracking policy, connect operators through a computer on your network, and train a dedicated group of operators on your unit and your task protocol, including EngineAI's mode switching and stop. Several humanoid makers have sent us robots to test our operating protocols, and that work is where every new program starts.

One-week trial

A short run on your PM01 sets the baseline: clean episodes per operator hour at your latency.

Coverage

Shifts across time zones, including US Pacific hours. One person on site handles resets and batteries.

Data

Episodes cleaned and labeled by task and outcome, delivered as LeRobot, RLDS or HDF5.

Interfaces, specs and sources

  • EngineAI native SDK (ROS 2 Humble / Jazzy)
  • engineai_ros2_workspace (Cyclone DDS)
  • engineai_rl_lab (Isaac Lab)
  • MuJoCo sim2sim
  • Gamepad and touchscreen remote
  • Custom VR or mocap teleop

Availability: Buyable. EngineAI's product page links to purchase without listing a price. At launch the PM01 was listed at RMB 88,000 for both editions by EngineAI (Newsfile release, December 26, 2024, valid to March 31, 2025). On US storefronts the PM01 EDU showed $26,500 with a request-a-quote form as of August 11, 2026, according to Grabarobot. US buyers: see the FCC note on foreign-produced robots (DA 26-786).

Specs are the maker's published figures, checked on . RoboPilots is not affiliated with EngineAI; product names are trademarks of their owners.

Frequently asked questions

Does the EngineAI PM01 have a teleoperation stack?
No official one as of October 2026. EngineAI publishes a native SDK, a ROS 2 workspace and Isaac Lab RL environments, and teams build VR or mocap teleop on top of them.
Can I develop on the EngineAI PM01?
Yes. EngineAI lists secondary development on both 2026 PM01 editions, and its native SDK supports the pm01_edu configuration.
How much does the EngineAI PM01 cost?
EngineAI launched it at RMB 88,000 in December 2024. In August 2026 Grabarobot found the PM01 EDU at $26,500 on a US storefront with a request-a-quote form.
Does the PM01 have hands?
Its spec lists 5-DoF arms and no hand or gripper. For dexterous manipulation EngineAI offers the T800 Pro and Max with 7-DoF hands.
Is EngineAI PM01 code open source?
Yes. The native SDK, the ROS 2 workspace and engineai_rl_lab are on GitHub under the BSD-3-Clause license.