Skip to main content
LeKiwi is a mobile manipulator that combines a 6-DOF arm with a three-wheel omnidirectional base. It uses Feetech STS3215 servos for both the arm and the wheels, enabling simultaneous manipulation and navigation tasks.

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

  1. Connect the Feetech motor bus to your computer via USB
  2. Ensure cameras are connected
  3. 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):
Client (control 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

Robot Overview

See all supported robots

Feetech Motors

Motor bus API reference

OpenCV Cameras

Camera configuration

Recording Data

Collect mobile manipulation data