explaingit

peng-zhihui/dummy-robot

14,993CAudience · researcherComplexity · 5/5DormantSetup · hard

TLDR

Design dump for a small 6-axis hobby robot arm with 3D models, four PCBs, closed-loop stepper firmware, FreeRTOS application code, and a Unity teach pendant app.

Mindmap

mindmap
  root((Dummy-Robot))
    Inputs
      DH parameters
      CAN node IDs
      Motion commands
    Outputs
      Joint motion
      Pick and place
      Trajectory tracking
    Use Cases
      Build the arm
      Drive stepper joints
      Teach poses
    Tech Stack
      C
      Cpp11
      FreeRTOS
      Unity3D
      CAN bus
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a Dummy Youth Edition robot arm from the 3D-printed parts and PCB gerbers in the repo

USE CASE 2

Flash the REF firmware to drive six closed-loop stepper joints over CAN bus

USE CASE 3

Use the inverse kinematics code with custom DH parameters to control your own arm geometry

USE CASE 4

Reuse the redesigned XDrive-based closed-loop stepper driver for an unrelated motion project

Tech stack

CC++FreeRTOSUnity3DCAN

Getting it running

Difficulty · hard Time to first run · 1day+

This is a hobby build dump, not a kit. You need to fabricate four PCBs, 3D print parts, source motors, and flash firmware before any joint moves, and most docs are in Chinese.

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.

Copy-paste prompts

Prompt 1
Walk me through which files in Dummy-Robot I need to fabricate the four PCBs and order parts for the Youth Edition
Prompt 2
Show me how the DummyRobot class is configured with DH parameters and gearbox ratios in the firmware
Prompt 3
Explain the current-loop zeroing trick the firmware uses to find each joint's mechanical limit before refining with the absolute encoder
Prompt 4
Give me a CAN bus message example that commands the arm in real-time motion sync mode
Prompt 5
Help me port the XDrive-based stepper driver from Dummy-Robot to a different 3D printer mainboard
Open on GitHub → Explain another repo

← peng-zhihui on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.