Project files
- config14 files
- docs4 files
- hardware20 files
- openk25 files
- scripts8 files
- test5 files
- utils6 files
- .gitignore2 KB
- LICENSE11 KB
- pyproject.toml1 KB
- README.md5 KB
README.md
Machine-translated by Robotheca from the original in Japanese (opens in a new tab). License: Apache-2.0 (opens in a new tab).
OpenK on lerobot
An open-source, low-cost AI robot arm, OpenK. It can be built for around 100,000 yen.
No sheet metal required. All body parts can be 3D printed. URDF included.
It uses DAMIAO motors and runs on the lerobot codebase.
Develop and run locally with .venv and uv.
It is a general-purpose arm born in the process of developing the toilet-cleaning robot CleanK (opens in a new tab).
DEMO
Dataset Visualizer
Because it follows the LeRobot dataset format, it can be visualized in the same way as the SO-ARM101. https://huggingface.co/spaces/lerobot/visualize_dataset?path=%2FHodaka0706%2Fcleank_test_dataset_cam%2Fepisode_0 (opens in a new tab)
https://github.com/user-attachments/assets/60f25825-fb9d-405b-99c9-d5dd31f4e1e4 (opens in a new tab)
CAD
Actuators
Actuator configuration:
- Shoulders ×2: DM-J6006
- Upper arm, elbow, forearm: DM-J4310
- Wrist and gripper: STS3215
- Leader arm: STS3215 on all axes
Core Members
- @sabamiso-rrsc (opens in a new tab) Almost all hardware, embedded development, and DAMIAO initialization software
- @UedaKenji (opens in a new tab) lerobot code integration, main software development
- @shunyatadano (opens in a new tab) URDF and simulation
- @shinshin0706, @Ryosuke520 (opens in a new tab), @deBroglieeeen (opens in a new tab) Field-level integration, hardware and software tuning, simulation development
Setup
-
Prerequisites: Python 3.10 / uv (opens in a new tab)
-
First time:
git clone <repo-url> lerobot_OpenK cd lerobot_OpenK uv venv .venv --python 3.10 source .venv/bin/activate uv pip install -e . -
For subsequent work, only
source .venv/bin/activateis needed.
Testing
-
Regular (no hardware required):
UV_CACHE_DIR=.uv_cache uv run pytest -
Optional HIL tests with the robot connected:
OPENK_HIL=1 \ OPENK_FOLLOWER_PORT=/dev/ttyUSB0 \ OPENK_LEADER_PORT=/dev/ttyUSB1 \ UV_CACHE_DIR=.uv_cache uv run pytest test/test_openk_hil.py -q※Disable the cameras; only connect, then fetch one observation/action.
Main scripts
-
If the port is unknown, first search for ports:
uv run lerobot-find-portwith
ttyUSB*and confirm before running the following. -
Teleoperation:
uv run openk-teleoperate \ --robot.type=openk-1-alpha_follower --robot.port=<follower-port> --robot.id=follower \ --teleop.type=openk_leader --teleop.port=<leader-port> --teleop.id=leader \ --log_file=logs/openk_teleoperate.log- Stop with Ctrl + C
-
Recording:
uv run openk-record \ --robot.type=openk-1-alpha_follower --robot.port=<follower-port> --robot.id=follower \ --teleop.type=openk_leader --teleop.port=<leader-port> --teleop.id=leader \ --dataset.repo_id=<user>/<dataset> --dataset.num_episodes=2 --dataset.single_task="Describe task" \ --log_file=logs/openk_record.log -
Replay:
uv run lerobot-replay \ --robot.type=openk-1-alpha_follower --robot.port=<follower-port> --robot.id=follower \ --dataset.repo_id=<user>/<dataset> --dataset.episode=0 -
Calibration:
uv run lerobot-calibrate --teleop.type=openk_leader --teleop.port=<leader-port> --teleop.id=leader -
Other utilities:
lerobot-find-port,lerobot-find-cameras,lerobot-info.
Running from a config file
-
Example YAML bundled:
configs/teleop_example.yamlconfigs/record_example.yaml
-
Example run:
uv run openk-teleoperate --config_path=config/teleop_example.yaml uv run openk-record --config_path=config/record_example.yaml -
Keys written in the YAML are applied as-is; keys left out keep their defaults (to keep
camerasunchanged, do not write the key at all).
Logs
- Teleoperation and recording output go to
logs/openk_teleoperate.log/logs/openk_record.logby default (parent directories are created automatically). Override with--log_file.
Notes
- The
pyproject.tomllerobotdependency references the local../lerobotas editable. If your path differs, adjust it accordingly.
Acknowledgments
- LeRobot by HuggingFace, Inc.
- SO-100 by TheRobotStudio
- Members of the Rakuseiお Robot Research Club https://robot.rakusei.net/ (opens in a new tab)
- OpenArm by Enactic, inc.
- Robo⭐︎Studion and its members
- DMM.make TIB FAB
Files by @CleanKDev, at commit 26b149e, read from GitHub in your browser. Hardware license: Apache-2.0; software license: Apache-2.0. Robotheca doesn't review code: read it before running it.