D1 Quadruped
D1 is an open-source quadruped robot project whose repository provides hardware resources such as mechanical models, manufacturing drawings, BOM and BMS resources.
- Quadruped
- Open source
- 3D model (URDF)
- 3D printable
Suggested by Robotheca, created by @NavBotHub (opens in a new tab), from github.com/NavBotHub/D1 (opens in a new tab). Pinned to commit 696df69 (opens in a new tab).
- Hardware license
- GPL-3.0-only (opens in a new tab)
- Software license
- GPL-3.0-only (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (8 scripts, 1 firmware image)
- code/src/legged_common/scripts/generate_urdf.sh (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.gs_usb.ko.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.gs_usb.mod.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.gs_usb.mod.o.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.gs_usb.o.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.Module.symvers.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/.modules.order.cmd (opens in a new tab)
- code/src/legged_examples/legged_damiao/5.15/can.sh (opens in a new tab)
- Hardware/BMS/Stm32_Code/bms.hex (opens in a new tab)
Photo and 3D model

3D preview converted from github.com/NavBotHub/D1 at 696df69, under GPL-3.0-only. View the original files from GitHub (36 KB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Controls a quadruped (four-legged) robot using nonlinear model predictive control with a centroidal dynamics model.
- Runs velocity-commanded locomotion with gait selection such as trot from a controller terminal.
- Supports joystick control in simulation using mappings shown in src/docs/handle.png.
- Can be tested in Gazebo and RViz simulation before real-robot use.
- Uses a replacement contact estimation path because the real D1 hardware has no foot-end contact sensors.
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @NavBotHub (README.md), under GPL-3.0-only.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Damiao motors, one per joint, addressed by can_id and mst_id, set to 5 Mbps baud rate.
- DM6248P motors with required parameters configured before torque is enabled.
- CAN bus interface (SocketCAN) to communicate with the motors.
- An x86_64 computer running Ubuntu 20.04 and ROS1 Noetic as the controller host.
- An IMU for body orientation, and serial packages for hardware interfacing.
Connections
- Motors are connected over a CAN bus; each motor's can_id and mst_id must match the wiring diagram.
- Motor zero positions are calibrated per leg: yaw, thigh pitch, and calf pitch joints each have a reference alignment.
- A CAN setup script (can.sh in src/legged_examples/legged_damiao/5.15) configures the CAN interface before hardware launch.