LeKiwi Mobile Manipulator Documentation

repository·main·Indexed 23 days ago

https://github.com/sigrobotics-uiuc/lekiwi

An 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.

Tokens
6.8K
Snippets
3
Records
35
Agent score
79%

What's inside LeKiwi

  1. Overview of LeKiwi Low-Cost Mobile Manipulator

    main
    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.
  2. Bill of Materials for Dynamixel LeKiwi

    main

    The 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.

  3. Hardware Specifications and Configuration Options

    main

    LeKiwi 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).
  4. Print the LeKiwi 3D parts

    main

    To manufacture the LeKiwi robot, use generic PLA filament on a consumer-grade FDM printer. The project provides ready-to-print STL files.

    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

    1. Setup: Calibrate/level the printer, clean the bed, and load filament.
    2. Slicing: Upload STL files to your slicing software. Use auto-rotate and auto-arrange. Crucially, enable supports where specified in the parts list.
    3. Printing: Upload the G-code to the printer and start the print.
    4. 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/s
  5. Perform Final Assembly

    main
    1. 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.
    2. Plate Attachment: Mount the top base plate onto the motor mounts using 4 m3x12 machine screws.
  6. Assemble the Top Plate

    main
    1. Raspberry Pi 5: Place the Pi 5 into the Pi case bottom and snap on the top part of the case.
    2. Pi to Plate: Attach the Pi case to the top base plate using 2 m3x12 machine screws.
    3. Arm Mounting: Mount the SO-101 arm using 4 m3x20 machine screws. The plate supports both the original and the modified SO-101 base.
    4. Wired Version Cable Management:
      • Print 3DPrintMeshes/wired_specific/cable_holder v0.stl and 3DPrintMeshes/wired_specific/usb_connector_case v1.stl.
      • CRITICAL: When plugging in the USB-C cable, ensure the UGreen logo is on the same side as the 20GBS, 240W logo. The 20GBS, 240W side 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.
  7. Assemble the LeKiwi Bottom Plate

    main

    Follow these steps to construct the base of the robot:

    1. Plate Construction: Attach the 3D-printed triangular insert to the TB3 plate. Align the outer holes and secure the insert using six M3x8 machine screws and matching nuts.
    2. Motor Mounts: Screw each drive motor mount onto the bottom plate using 2 m3x12 machine screws in the front and 2 m2.5x12 machine screws in the back.
    3. Mounts and Wiring:
      • Connect motor wires in series.
      • Insert 2 m3 nuts into the slots on both the battery mount and the base camera mount.
      • Attach the battery mount to the bottom plate using two m3x12mm machine screws.
      • Secure the camera mount to the plate using two m3x16mm machine screws.
    4. Electronics Wiring:
      • Use Wago lever connectors to connect the ground and power battery wire leads to the leads of the 12v->5v converter and the DC barrel plug adapter.
      • Mount the 12V to 5V converter to the bottom plate using two m4x16mm machine screws and two m4 nuts.
      • 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 m3x16mm machine screws.
  8. Build and Setup Guide for LeKiwi

    main

    To build and initialize a LeKiwi robot, follow these sequential steps:

    1. Review Bill of Materials: Check BOM.md for required components.
    2. 3D Printing: Prepare parts using the instructions in 3DPrinting.md.
    3. Assembly: Follow the physical assembly guide in Assembly.md.
    4. Software Setup: Get started with the software stack by following the LeRobot documentation.
  9. Assemble the Bottom Plate

    main
    1. Mounts: Insert m3 nuts into the mounts for the servo controller and battery mounts. Secure both to the bottom base plate using 4 m3x12 machine screws.
    2. Servo Driver: Add the servo driver and connect wires to the 3 drive servos.
    3. Electronics Wiring:
      • 12V Version: Use Wago lever connectors to connect the ground and power battery wire leads to the 12v->5v converter and the DC barrel plug adapter. Secure the 12v to 5v converter to the bottom base plate using 2 m3x16 machine screws and 2 m3 nuts.
      • 5V Version: Mount a powerbank in the back on the lower plate using the 3DPrintMeshes/5v_specific/5v_power_bank_holder.stl holder.
  10. Use modified LeRobot code for Dynamixel teleoperation

    main

    The 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.

  11. Choose a LeKiwi build version

    main

    LeKiwi 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.

  12. Assemble the LeKiwi Top Plate

    main

    Follow these steps to prepare the upper section of the robot:

    1. Raspberry Pi Setup: Place the Raspberry Pi 5 into the bottom half of the Pi case and snap on the top cover.
    2. Arm and Camera: Ensure you have a modified Koch arm base and modified static gripper. Attach the webcam as shown in the assembly diagrams.
    3. Mounting:
      • Mount the Raspberry Pi to the top plate using two M2x12 machine screws and nuts.
      • Secure the Koch arm using four M3x12 machine screws and nuts.