Skip to main content

pylekiwi

PyPI version

Python package for controlling the LeKiwi robot.

lekiwi

Quick Start

Web UI

Log into the robot and run the following command:

ssh <your robot ip>
sudo chmod 666 <your_follower_robot_serial_port>
uvx pylekiwi webui --serial-port <your_follower_robot_serial_port>

Then, open a web browser and navigate to http://<your robot ip>:8080 to see the web UI.

web ui

Leader and Follower/Client Nodes

Run the following command to start the follower node (host) on the robot (Respberry Pi):

ssh <your robot ip>
sudo chmod 666 <your_follower_robot_serial_port>
uvx pylekiwi host --serial-port <your_follower_robot_serial_port>

The host defaults to camera index 0 for base and 2 for arm. If the images are swapped, specify the assignments when starting the host:

uvx pylekiwi host --serial-port <your_follower_robot_serial_port> --base-camera-id 2 --arm-camera-id 0

Both options also accept device paths. On Linux, use the actual links under /dev/v4l/by-id/ to keep the assignments when /dev/videoN numbering changes. If identical cameras do not have unique IDs, use /dev/v4l/by-path/ links and keep each camera connected to the same USB port:

ls -l /dev/v4l/by-id/ /dev/v4l/by-path/
uvx pylekiwi host --serial-port <your_follower_robot_serial_port> \
  --base-camera-id /dev/v4l/by-id/<base-camera-link> \
  --arm-camera-id /dev/v4l/by-id/<arm-camera-link>

Run the following command to start the leader node (client) on the remote machine:

sudo chmod 666 <your_leader_robot_serial_port>
uvx --from 'pylekiwi[client]' pylekiwi leader --serial-port <your_leader_robot_serial_port>

Use pylekiwi client on the remote machine for one-off remote operations without starting the continuous leader controller.

Available command groups:

  • state: read the current remote robot state
  • capture: save one JPEG from the base or arm camera
  • pose: go to, save, list, or delete named arm poses
  • position / inching: move the end effector in the base frame
  • grasp / release: close or open the gripper
  • arm: inspect modeled link frames or toggle arm torque
  • calibrate: inspect, back up, zero, or restore remote arm calibration

Common examples:

Inspect state or capture images:

uvx pylekiwi client state
uvx pylekiwi client capture --camera base --output photo.jpg
uvx pylekiwi client capture --camera arm --output wrist.jpg

Move the arm or gripper:

uvx pylekiwi client pose go <preset_name>
uvx pylekiwi client pose go "10,20,30,40,50"
uvx pylekiwi client position --x-mm 180 --y-mm 0 --z-mm 120
uvx pylekiwi client inching --x-mm 10 --z-mm -5
uvx pylekiwi client grasp
uvx pylekiwi client release

Manage presets or maintenance:

uvx pylekiwi client pose save <name>
uvx pylekiwi client pose list
uvx pylekiwi client pose delete <name>
uvx pylekiwi client arm off
uvx pylekiwi client arm on
uvx pylekiwi client calibrate status
uvx pylekiwi client calibrate backup

Inspect modeled frames:

uvx pylekiwi client arm links actual --frame lekiwi_chassis
uvx pylekiwi client arm links actual --frame lekiwi_base_camera_mount
uvx pylekiwi client arm links actual --frame lekiwi_base_camera_optical
uvx pylekiwi client arm links actual --frame wrist_camera_mount

The lekiwi_chassis and lekiwi_base_camera_mount frames are now seeded from the public LeKiwi CAD/URDF rather than placeholders. lekiwi_base_camera_mount tracks the upstream CAD camera-body link, and lekiwi_base_camera_optical adds an approximate lens-center frame derived from the CAD mesh.

Referenced LeKiwi CAD sources:

If automatic discovery does not work across machines, you can connect explicitly to the robot:

# On the robot (Raspberry Pi)
uvx pylekiwi host --serial-port <your_follower_robot_serial_port> --listen-host 0.0.0.0 --listen-port 7447

# On the remote machine, add --host/--port before the client subcommand
uvx --from 'pylekiwi[client]' pylekiwi leader --serial-port <your_leader_robot_serial_port> --host <your robot ip> --port 7447
uvx pylekiwi client --host <your robot ip> --port 7447 state
uvx pylekiwi client --host <your robot ip> --port 7447 capture --camera base --output photo.jpg
uvx pylekiwi client --host <your robot ip> --port 7447 position --x-mm 180 --y-mm 0 --z-mm 120

For timestamped camera observations, command expiry, and IK usage, see Robot control.

Release files for pylekiwi 0.13.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylekiwi 0.13.2
File Size Uploaded
pylekiwi-0.13.2.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pylekiwi 0.13.2
File Interpreter ABI Platform
pylekiwi-0.13.2-py3-none-any.whl Python 3 none any Details

Total release size: 5.2 MB

Release files / pylekiwi-0.13.2.tar.gz

Download URL pylekiwi-0.13.2.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
bd833f3ca1dcc909cbdf0d5610b22f0b3623330da5dd06cdf30bb9ca510565e0
BLAKE2b-256 checksum
How to use checksums
6777e39d46ee9c00e4f518ff216fed707acf698934e7621a48caedd2b9217846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pylekiwi-0.13.2-py3-none-any.whl

Download URL pylekiwi-0.13.2-py3-none-any.whl
Size 2.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5cc86f4d85ab1af0de9597bb0d2c62ccce05bc47e796e28e39074eac92bf7453
BLAKE2b-256 checksum
How to use checksums
f1fddf811d1de19299c12be1b8c6d7632635e821cce50a55ae799dbc8bb8a0d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.13.2 This release

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page