Skip to content

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).

Photo and 3D model

D1 Quadruped, photo from its repository
Photo:@NavBotHub (opens in a new tab)GPL-3.0-onlysource file (opens in a new tab)
Try it in the browser

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.