Project files
5 KB
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
| Module | Directory | Full Score |
|---|---|---|
| Mechanical Structure & CAD | mechanical/ | 18 |
| URDF/Xacro Robot Description | robot_description/ | 12 |
| ROS 2 & Gazebo Simulation | simulation/ | 25 |
| C++ Controller | controller/ | 15 |
| Ubuntu/Linux Development Environment | linux/ | 10 |
| MCU & IMU | embedded/ | 15 |
| CAN Communication | embedded/can/ | 15 |
| Vision Perception & Visual Closed-Loop | vision/ | 20 |
| Git/GitHub Collaboration | git/ | 10 |
| Engineering Documentation | docs/ | 5 |
| AI Tools & Model Usage | ai_tools/ | 5 |
| Total | 150 |
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
vcan0virtual CAN
Recommended Workflow
- Read
docs/requirements.mdand the documentation for each module. - Complete the CAD and parameter tables first, then generate the URDF/Xacro, ensuring consistency between the two.
- Verify the model in Gazebo/RViz, then connect to the C++ controller and complete forward, backward, steering, and jumping.
- Complete Sim2Sim through the abstract control interface, then connect to the MCU, IMU, and CAN for closed-loop control.
- 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:
- Create a
submission/<name>/<version>branch fromdevelop; for collaborative work, usesubmission/<team>/<version>. - Keep the real commit history; do not compress all results into a single
finalcommit, nor directly overwritemainordevelop. - 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.
- 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.