LeKiwi Mobile Manipulator Documentation
repository·main·Indexed 23 days ago
https://github.com/sigrobotics-uiuc/lekiwiAn open-source, low-cost mobile manipulator designed for robotics research and integration with the LeRobot ecosystem. It features a 3-wheel holonomic (Kiwi) drive, a SO-ARM101 robot arm, and Raspberry Pi 5 compute. Documentation includes detailed build guides for 5V, 12V, and Wired versions, 3D printing specifications, assembly instructions, and configuration for Dynamixel teleoperation.
What's inside LeKiwi
- LeKiwi is a low-cost mobile manipulator (Version 1) designed for robotics research and development. It features a 3-wheel holonomic (Kiwi) drive using omni wheels and integrates a SO-ARM101 robot arm. The system is designed to support teleoperation via controller or laptop (WASD + leader arm), data collection pipelines, and streaming of joint angles and camera feeds.
Bill of Materials for Dynamixel LeKiwi
mainThe Bill of Materials (BOM) provides a comprehensive list of parts required to build the Dynamixel LeKiwi mobile manipulator. The project can be built as a complete mobile manipulator or as a base-only version.
Estimated Costs:
- Dynamixel LeKiwi (Full): ~$770.47 USD / €1021.60 / ¥6074
- Base only: ~$339.47 USD / €378.60 / ¥2127.28
Note: Prices and availability vary by location and time of purchase.
Hardware Specifications and Configuration Options
mainLeKiwi can be configured in different power and drive modes depending on your experience and requirements:
Power Options
- 5V Version: Uses a 65W Laptop power bank. Recommended for beginners as it is easier to assemble.
- 12V Version: Uses a 12V 5A Li-ion battery. Recommended for experienced users who need to lift heavier objects.
- Wired Version: The most cost-effective option.
Core Hardware
- Drive: 3-wheel Kiwi (holonomic) drive with omni wheels.
- Compute: Raspberry Pi 5 (with capability to stream to a laptop).
- Robot Arm: SO-ARM101.
- Sensors: Workspace RGB camera and a Wrist RGB camera.
- Base Plates: Standardized stacked base plates with 3.5mm diameter holes spaced 20mm apart (inspired by the open robotic platform).
Print the LeKiwi 3D parts
mainTo manufacture the LeKiwi robot, use generic PLA filament on a consumer-grade FDM printer. The project provides ready-to-print STL files.
Recommended Slicer Settings
When slicing the files, use the following settings for consistent results:
- Infill Density: 15%
- Layer Height: 0.2 mm
- Printing Speed: 150 mm/s
Printing Workflow
- Setup: Calibrate/level the printer, clean the bed, and load filament.
- Slicing: Upload STL files to your slicing software. Use auto-rotate and auto-arrange. Crucially, enable supports where specified in the parts list.
- Printing: Upload the G-code to the printer and start the print.
- Post-Processing: Remove parts from the printer, clean the bed, and remove any supports.
Infill Density: 15% Layer Height: 0.2 mm Printing Speed: 150 mm/sPerform Final Assembly
main- Wiring Pass-through: Feed the servo controller USB-C to USB-A cable, the 5V USB-C power cable, and the SO-101 servo wires through the hole in the top base plate.
- Plate Attachment: Mount the top base plate onto the motor mounts using 4
m3x12machine screws.
Assemble the Top Plate
main- Raspberry Pi 5: Place the Pi 5 into the Pi case bottom and snap on the top part of the case.
- Pi to Plate: Attach the Pi case to the top base plate using 2
m3x12machine screws. - Arm Mounting: Mount the SO-101 arm using 4
m3x20machine screws. The plate supports both the original and the modified SO-101 base. - Wired Version Cable Management:
- Print
3DPrintMeshes/wired_specific/cable_holder v0.stland3DPrintMeshes/wired_specific/usb_connector_case v1.stl. - CRITICAL: When plugging in the USB-C cable, ensure the
UGreenlogo is on the same side as the20GBS, 240Wlogo. The20GBS, 240Wside must face up into your laptop. If the USB-C extension cable fails to find the camera or motor controller, flip the orientation 180 degrees.
- Print
Assemble the LeKiwi Bottom Plate
mainFollow these steps to construct the base of the robot:
- Plate Construction: Attach the 3D-printed triangular insert to the TB3 plate. Align the outer holes and secure the insert using six
M3x8machine screws and matching nuts. - Motor Mounts: Screw each drive motor mount onto the bottom plate using 2
m3x12machine screws in the front and 2m2.5x12machine screws in the back. - Mounts and Wiring:
- Connect motor wires in series.
- Insert 2
m3nuts into the slots on both the battery mount and the base camera mount. - Attach the battery mount to the bottom plate using two
m3x12mmmachine screws. - Secure the camera mount to the plate using two
m3x16mmmachine screws.
- Electronics Wiring:
- Use Wago lever connectors to connect the ground and power battery wire leads to the leads of the
12v->5vconverter and the DC barrel plug adapter. - Mount the
12V to 5Vconverter to the bottom plate using twom4x16mmmachine screws and twom4nuts. - Connect the unconnected motor wire, the USB cable, and the power wires to the U2D2 power hub board.
- Attach standoffs to the U2D2 board and secure it to the base plate using three
m3x16mmmachine screws.
- Use Wago lever connectors to connect the ground and power battery wire leads to the leads of the
- Plate Construction: Attach the 3D-printed triangular insert to the TB3 plate. Align the outer holes and secure the insert using six
Build and Setup Guide for LeKiwi
mainTo build and initialize a LeKiwi robot, follow these sequential steps:
- Review Bill of Materials: Check
BOM.mdfor required components. - 3D Printing: Prepare parts using the instructions in
3DPrinting.md. - Assembly: Follow the physical assembly guide in
Assembly.md. - Software Setup: Get started with the software stack by following the LeRobot documentation.
- Review Bill of Materials: Check
Assemble the Bottom Plate
main- Mounts: Insert
m3nuts into the mounts for the servo controller and battery mounts. Secure both to the bottom base plate using 4m3x12machine screws. - Servo Driver: Add the servo driver and connect wires to the 3 drive servos.
- Electronics Wiring:
- 12V Version: Use Wago lever connectors to connect the ground and power battery wire leads to the
12v->5vconverter and the DC barrel plug adapter. Secure the12v to 5vconverter to the bottom base plate using 2m3x16machine screws and 2m3nuts. - 5V Version: Mount a powerbank in the back on the lower plate using the
3DPrintMeshes/5v_specific/5v_power_bank_holder.stlholder.
- 12V Version: Use Wago lever connectors to connect the ground and power battery wire leads to the
- Mounts: Insert
Use modified LeRobot code for Dynamixel teleoperation
mainThe Dynamixel version of LeKiwi uses a modified version of the original LeRobot code to support teleoperation.
Important: When using this modified code, you must update the configuration to match your specific hardware setup, including:
- Communication ports
- IP addresses
- Other hardware-specific identifiers
The specific changes made to the original LeRobot codebase can be found in this commit: Dynamixel Teleop.
Choose a LeKiwi build version
mainLeKiwi offers three main configuration options for motors and electronics. Choose based on your experience level and performance requirements:
- 5V Version: Recommended for first-time builders as it is easier to assemble.
- 12V Version: Recommended for experienced builders who need to lift heavier objects.
- Wired Version: The most cost-effective option, but lacks battery mobility.
Note that the Mobile Base Structure, Sensors, and Compute components are identical across all versions.
Assemble the LeKiwi Top Plate
mainFollow these steps to prepare the upper section of the robot:
- Raspberry Pi Setup: Place the Raspberry Pi 5 into the bottom half of the Pi case and snap on the top cover.
- Arm and Camera: Ensure you have a modified Koch arm base and modified static gripper. Attach the webcam as shown in the assembly diagrams.
- Mounting:
- Mount the Raspberry Pi to the top plate using two
M2x12machine screws and nuts. - Secure the Koch arm using four
M3x12machine screws and nuts.
- Mount the Raspberry Pi to the top plate using two