Skip to content

README.md

Machine-translated by Robotheca from the original in Chinese (opens in a new tab). License: MIT (opens in a new tab).

WheelLeg-FullStack-Challenge

Comprehensive full-stack development assessment for a small quadrupedal wheel-legged robot. The project covers mechanical design, robot description, ROS 2 simulation, C++ control, Linux development environment, MCU/CAN communication, visual perception, AI-assisted engineering, and GitHub collaboration.

Preface

This project was created by the author to assess and train the comprehensive development abilities of successors, covering multiple technical directions, team collaboration, version control, and the use of AI tools. The subsequent versions will continue to delve deeper into the technical directions and depth of the topics, with a focus on motion control and embodied intelligence.

Assessment Goals

Participants are required to establish a reproducible engineering closed-loop from CAD to URDF/Xacro, Gazebo/ROS 2, C++ controllers, Sim2Sim, MCU, CAN, and finally to Git version management. While building a physical robot is not required, verifiable simulation and communication demonstrations must be provided.

Module Entry Points

ModuleDirectoryFull Score
Mechanical Structure & CADmechanical/18
URDF/Xacro Robot Descriptionrobot_description/12
ROS 2 & Gazebo Simulationsimulation/25
C++ Controllercontroller/15
Ubuntu/Linux Development Environmentlinux/10
MCU & IMUembedded/15
CAN Communicationembedded/can/15
Vision Perception & Visual Closed-Loopvision/20
Git/GitHub Collaborationgit/10
Engineering Documentationdocs/5
AI Tools & Model Usageai_tools/5
Total150

The topics, deliverables, and scoring criteria for each module are detailed in the README.md file within the corresponding directory. For wheel-leg geometry and six-motor constraints, see docs/wheelleg_geometry.md. For mechanical CNC/Quanzhou platform acceptance, see mechanical/CNC/README.md. For vision topics, see vision/. For AI usage records, see ai_tools/ and docs/ai_usage.md. For remote control, subscribed topics, and demo inputs, see docs/remote_control.md. All modules must use the same set of dimensions, mass, coordinate systems, and interfaces; independent small experiments are not allowed.

Recommended Environment

  • Ubuntu 22.04 (can be a physical machine, virtual machine, x86 host computer, or ARM development board)
  • ROS 2 Humble
  • Gazebo or other simulators that can load ROS 2 URDF/Xacro files
  • C++17 or higher, CMake, colcon
  • MCU with CAN peripheral, or vcan0 virtual CAN

Recommended Workflow

  1. Read docs/requirements.md and the documentation for each module.
  2. Complete the CAD and parameter tables first, then generate the URDF/Xacro, ensuring consistency between the two.
  3. Verify the model in Gazebo/RViz, then connect to the C++ controller and complete forward, backward, steering, and jumping.
  4. Complete Sim2Sim through the abstract control interface, then connect to the MCU, IMU, and CAN for closed-loop control.
  5. Use feature branches, descriptive commits, tags, and pull requests to preserve the real development history.

Final Delivery

CAD/STEP files, per-part CNC upload list with Qianzhou preview screenshots, URDF/Xacro, ROS 2/Gazebo project, C++ controller, Linux configuration script, MCU firmware, vision nodes and data, docs/can_protocol.md, docs/remote_control.md, AI usage records, test scripts, demonstration videos, and the complete Git history are all acceptance materials. Technical implementations and environments are preserved in image form upon submission

Open Source License

This repository is released under the MIT License. You may use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Project, subject to the conditions of the license and provided that you include the copyright notice and license text. Contributors must ensure that any new code, models, images, data, and documentation added have a legitimate source and comply with the original licenses of third-party materials. The MIT license does not represent authorization from the QuanZhou platform, hardware manufacturers, or third-party models.

Participate in Testing and Submit Completed Work

You are welcome to participate in testing, simulation, CNC manufacturability verification, and real hardware commissioning. It is recommended to use the directory structure, interface conventions, submission specifications, and branch strategy of this repository as the implementation basis. Prioritize reusing existing documentation and test entry points, and record parameters, environments, and known limitations synchronously during modifications.

After completing a runnable simulation or physical product, you are welcome to submit the results to other branches of this repository for subsequent review and reproduction:

  1. Create a submission/<name>/<version> branch from develop; for collaborative work, use submission/<team>/<version>.
  2. Keep the real commit history; do not compress all results into a single final commit, nor directly overwrite main or develop.
  3. In the branch, add product documentation, build/flash commands, test logs, demo video links, CAD/URDF parameter consistency descriptions, and Quanzhou platform preview machining screenshots.
  4. Push the branch and create a Pull Request, with the target branch preferably develop; in the PR, describe the hardware version, control mode, known issues, and reproduction steps.

If you do not have write permissions to this repository, you can first Fork it and follow the same branch naming and Pull Request process. Project maintainers will review based on reproducibility, documentation completeness, and license compliance, and will merge or retain qualified results in the corresponding branch.

Deductions and Bonuses

Using git add . + final in a single submission, uncredited third-party code, inconsistencies between CAD and URDF, replacing core C++ controllers with Python, or lacking Sim2Sim or module development history will result in significant point deductions for the corresponding module. Automatic deployment, automated testing, Docker, CI/CD, and unified simulation/real-machine interfaces each earn 2 points, with a maximum bonus of 10 points.

Files by @wusi321, at commit b6b12b0, read from GitHub in your browser. Hardware license: MIT; software license: MIT. Robotheca doesn't review code: read it before running it.