Overview
LeKiwi integrates:- 6-DOF robotic arm (SO-style configuration)
- 3-wheel omnidirectional mobile base
- Dual camera system (front and wrist cameras)
- Unified control through a single motor bus
- Network-based remote control option
Features
- Arm: 5 joints + gripper (position control)
- Base: 3 omniwheels (velocity control)
- Cameras: Front view + wrist view
- Motors: All Feetech STS3215 servos (9 total)
- Communication: USB serial or network (ZMQ)
- Kinematics: Holonomic base for omnidirectional motion
Hardware Specifications
Motor Configuration
Camera Configuration
Default camera setup:Installation
Hardware Setup
- Connect the Feetech motor bus to your computer via USB
- Ensure cameras are connected
- Power the motors with appropriate supply
Software Installation
Configuration
Local Configuration
For direct USB connection:Network Configuration
For remote control over network: Host (robot side):Configuration Parameters
str
default:"/dev/ttyACM0"
Serial port for the motor bus
bool
default:"true"
Disable motor torque on disconnect
float | dict[str, float]
Safety limit for maximum position change per action (arm only)
dict[str, CameraConfig]
Camera configurations (defaults to front + wrist)
bool
default:"false"
Use degree normalization (default is range [-100, 100])
Usage
Basic Usage
Observation Format
Action Format
Omnidirectional Kinematics
LeKiwi uses a three-wheel omnidirectional base with automatic kinematics:Body-Frame Control
You control the robot in body-frame coordinates:x.vel: Forward/backward (m/s)y.vel: Left/right strafe (m/s)theta.vel: Rotation (deg/s)
Wheel Configuration
Wheels are arranged at 120° intervals:- Left wheel: 240° - 90° = 150°
- Back wheel: 0° - 90° = -90° (270°)
- Right wheel: 120° - 90° = 30°
Kinematics Parameters
Velocity Limiting
The robot automatically scales velocities to stay within motor limits:Calibration
Only the arm motors require calibration. The base wheels use velocity control and don’t need position calibration.
Safety Features
Arm Position Limiting
Base Watchdog (Network Mode)
Emergency Stop
Keyboard Teleoperation
For network client mode, keyboard controls are available:Advanced Usage
Custom Kinematics
Access low-level kinematics methods:PID Configuration
Arm motors use conservative PID for stability:Motor Setup
For new builds or motor replacement:Troubleshooting
Base Not Moving
Cameras Not Found
Network Connection Issues
Robot Jittering
Implementation Details
- Motor bus:
FeetechMotorsBus - Arm normalization: Range[-100, 100] or degrees
- Gripper normalization: Range[0, 100]
- Base control: Velocity mode with inverse kinematics
- Source: /home/daytona/workspace/source/src/lerobot/robots/lekiwi/lekiwi.py
Related Documentation
Robot Overview
See all supported robots
Feetech Motors
Motor bus API reference
OpenCV Cameras
Camera configuration
Recording Data
Collect mobile manipulation data