The template aims to provide a maintainable and testable foundation for robotics control systems while allowing flexibility for different teams to customize their components.
- Python 3.10+
- numpy
- yaml
- https://github.com/facebookresearch/home-robot/tree/main
- https://github.com/LeCAR-Lab/CoVO-MPC/tree/main
- https://github.com/stephane-caron/qpmpc/tree/main
- https://github.com/sea-bass/pyroboplan
- https://github.com/Simple-Robotics/aligator/tree/main
- https://github.com/LeCAR-Lab/dial-mpc/tree/main
- https://github.com/Physical-Intelligence/openpi
- https://github.com/krishauser/Klampt/tree/master/Python/klampt
- Assume each module (
src/control
,src/state_estimation
, etc) are maintained by different teams- We are fine with some code duplications (e.g.
ControllerParamsBuilder
) across these modules as each team might have customizations of their own - ...Unless the code structure becomes incomprehensible to certain degree
- We are fine with some code duplications (e.g.
- Should we keep config files in a separate folder instead of putting them in module folder?
- Use
tap
to hadle configs? so that type hint for config args can be simplified - Consider a ROS 2 system arch?
- Add Draft structure
- Implement factory pattern
- Write documents
- Testing
- Write tests for controller classes
- Write tests for factories
- Demo script
- mujoco_playground: Go1
- Unicycle MPC/PID
- mujoco_playground: Go1
- Exception Handling
- Add parameter validation exceptions
- Add runtime exceptions
- Draft observer structure
- Implement observer pattern
- Tessting
- Draft ??? structure
- Implement ??? pattern
- Tessting
- Integration Tests
- End-to-end controller tests
- Configuration loading tests
- GitHub Actions CI
- Add linting and code formatting (ruff)
- Add type checking (mypy)
- Set up code coverage reporting
- Package Management
- Set up setup.py/project.toml
- Define dependencies
- Provide minimal Docker environment
ruff format
ruff check
orruff check --fix