explaingit

peng-zhihui/dummy-robot

14,954C

TLDR

Dummy-Robot is the author's personal project for a very small smart robotic arm, with the README written mostly in Chinese.

Mindmap

A visual breakdown will appear here once this repo is fully enriched.

In plain English

Dummy-Robot is the author's personal project for a very small smart robotic arm, with the README written mostly in Chinese. It links to a Bilibili and YouTube video that introduce the arm in action. The repository is not a polished kit, it is the design dump of a hobby build, including 3D models, PCB designs, firmware source, an upper computer application called DummyStudio, and the design files for a portable carrying case. The README explains that the original arm in the video is expensive to reproduce because it uses CNC machined aluminium parts and a Harmonic-brand strain wave reducer that the author bought second hand for around 600 yuan per joint. To make the project cheaper to replicate, a Dummy Youth Edition is being prepared that switches to 3D-printed parts, replaces the strain wave reducer with a cycloidal pin-wheel reducer the author designed, and aims for a total hardware cost under 2000 yuan. Software between the two versions will be the same. Four PCBs make up the electronics: the REF core board, the REF base board inside the arm, the stepper motor driver, and a separate teach pendant called Peak which lives in another repository as a submodule. The stepper driver is a redesigned closed-loop driver based on the open-source XDrive project, rewritten in C++11 and given CAN bus and UART protocols, simulated EEPROM storage, and bidirectional zero return. Pre-built binaries are provided. The REF firmware is organised into board support drivers, third-party libraries such as the U8G2 display library, FreeRTOS, ARM CMSIS drivers, the core robot algorithms, and a user application layer. A DummyRobot class needs the CAN node IDs of each motor, gearbox ratios, motion limits, and the arm's DH parameters, the standard table used to describe robot geometry. A clever zeroing trick uses the motor current loop to push joints gently against their mechanical limits, then refines the zero point with the single-turn absolute encoder. The last sections cover a Unity3D upper-computer application that is not open source yet, DH-based inverse kinematics that picks the joint configuration requiring the smallest movement, trapezoidal speed planning, and CAN synchronisation by broadcast ID. Three command modes are listed: sequential for pick-and-place, real time for motion sync, and a planned 200Hz trajectory tracking mode for 3D printing or drawing.

Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.