乐灯 – 一个开源的表达型机器人
Le Lamp – an open source expressive robot

原始链接: https://github.com/humancomputerlab/LeLamp

## LeLamp:一个开源机器人台灯 LeLamp 是 [人机交互实验室] 的一个开源机器人台灯项目,灵感来自苹果的优雅设计,目前正在积极开发中。该项目欢迎社区通过 Discord 贡献。 目前有两个开发方向。第一个侧重于使用 The Robot Studio 的现有 SO-101 或 SO-100 机器人手臂进行快速原型设计,替换夹爪并减少手臂的自由度。提供可 3D 打印的修改文件。第二个方向旨在构建用于未来交互范式的核心模型,包括模仿学习,用于实际应用——OnShape 上提供了一个实时 CAD 模型。 SO10x 手臂的设置涉及电机设置、校准以及 3D 打印组件(电机支架、灯头、可选摄像头支架)。可以通过 LeRobot 的脚本或专用的 LeLamp 模块进行遥控操作,需要配置包含端口和 ID 设置的 `config.json` 文件。`main.py` 中包含一个使用 PID 循环的手势跟踪演示。 该项目采用 GNU GPL v3.0 许可,并预计很快会有进一步的更新。

## Le Lamp:一款富有表现力的机器人 由人机交互实验室开发的一款名为Le Lamp的新型开源机器人,旨在弥合功能性机器人与真正*富有表现力*的人机交互之间的差距。其创造者认为,机器人的未来在于那些使用起来自然直观的机器人,超越单纯的实用性。 该项目在Hacker News上分享,并附有其GitHub仓库的链接 ([https://github.com/humancomputerlab/LeLamp](https://github.com/humancomputerlab/LeLamp)),引发了关于“富有表现力”究竟意味着什么的讨论。评论者将皮克斯的《小台灯》作为机器人表现力的基准,要求展示Le Lamp的功能。 一位用户分享了苹果公司关于优雅且富有表现力的机器人研究的链接 ([https://machinelearning.apple.com/research/elegnt-expressive...](https://machinelearning.apple.com/research/elegnt-expressive...)),以此说明Le Lamp的目标。开发者计划继续迭代设计,以增强其表现力和实用性。
相关文章

原文

LeLamp Banner

An open source robot lamp based on Apple's Elegnt, made by [Human Computer Lab]

This repository is an early work in progress. We published our progress early on as we believe early feedback leads to better design iteration. To contribute ideas, you're welcome to join our Discord.

LeLamp is being developed on two parallel tracks:

Modified SO101

This version is for those who already own an SO-101 or SO-100 arm from The Robot Studio. We built it for quick prototyping.

3D files for modifications can be found in prints/modifications_for_so101/. You'll need a SO101 or SO100 for this modification or any STS3215 based robot. The modification is a replacement for the gripper on these arms, effectively reducing the arm DOF from 6 to 5.

Biggest thanks to Jennie and Lily for sponsoring the SO101 arms in this project. If you want to buy a kit at a discounted price, check out Seeed Studio

LeLamp

Currently in development. This version will be our main model in the future, where we'll build new interactive paradigms and even imitation learning or general policies for real world deployment.

You can view the live CAD model on OnShape

Set-up for LeLamp on SO10x

If you're using the SO10x arms, follow this to get LeLamp up and running.

If you're setting up the SO10x arms for the first time, best practice is to follow this tutorial first. There are 3 checkpoints you need to do:

  • Motor Set Up
  • Motor Calibration
  • Teleoperation

3D Printing and Modifications

After initial testing that the SO101 works. you can unscrew the gripper on the arm and start fitting the 3D printed lamp head. The 3D printed files are inside prints/modifications_for_so101/. You'll need to print all these files:

  • MotorMount: We designed a twist snap mechanism to quickly iterate on different lamp head designs. This will be attached to the motor horn on the robot arm.
  • LampHead: This is the lamp head to be attached to the motor mount through twist snap mechanism.
  • CameraMount: Camera mount for global shutter usb cameras. If you don't have a camera, you don't need to print this.

To calibrate the arms, here is what you'll need to run. The process is similiar to how you'd set up the SO101 arm:

# For uv init
uv sync

# For finding usb port
uv run -m lerobot.find_port

# For LeLampFollower
uv run -m lerobot.calibrate \
    --robot.type=lelamp_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --robot.id=lelamp # <- Give the robot a unique name

# For LeLampLeader
uv run -m lerobot.calibrate \
    --teleop.type=lelamp_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --teleop.id=lelamp # <- Give the robot a unique name

To teleop the lamp, there are 2 methods.

Method 1: Use LeRobot's Script

LeLamp is compatible with LeRobot's teleoperate module.

uv run -m lerobot.teleoperate \
    --robot.type=lelamp_follower \
    --robot.port=/dev/tty.usbmodem58760431541 \
    --robot.id=lelamp \
    --teleop.type=lelamp_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=lelamp

Method 2: Use LeLamp's teleop module

To use LeLamp, we provide a quick and easy to remember teleop method. First, you'll need to edit the config.json file in this repository to have your lamp's id and port.

# SO101 Arm Configuration
# Configuration file for leader and follower arm ports

arms:
  follower:
    port: "/dev/tty.usbmodem5A7A0178351" <- edit here
    id: "lelamp" <- edit here
    enabled: true

  leader:
    port: "/dev/tty.usbmodem5A7A0170321" <- edit here
    id: "lelamp" <- edit here
    enabled: true

# General settings
settings:
  calibration_timeout: 30 # seconds
  connection_timeout: 10 # seconds
  retry_attempts: 3

Then you only need to run our teleop module.

main.py contains a hand tracking demo that uses a PID loop to control the shoulder pan and wrist flex of the arm.

  1. Install uv: pip install uv
  2. Run: uv run main.py

Note: If you have trouble installing with GitLFS, try running export GIT_LFS_SKIP_SMUDGE=1

This project is actively being developed. Upcoming tasks:

More updates coming in the upcoming weeks!

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

联系我们 contact @ memedata.com