Skip to content

Self-paced learning and playground for robotics control software architecture and design patterns

License

Notifications You must be signed in to change notification settings

shaoanlu/control_system_project_template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

controller_project_template

The template aims to provide a maintainable and testable foundation for robotics control systems while allowing flexibility for different teams to customize their components.

Requirements

  • Python 3.10+
  • numpy
  • yaml

References

Considerations

  • 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
  • Should we keep config files in a separate folder instead of putting them in module folder?

Note

  • Use tap to hadle configs? so that type hint for config args can be simplified
  • Consider a ROS 2 system arch?

Todo

Control module template

  • Add Draft structure
  • Implement factory pattern
  • Write documents
  • Testing
    • Write tests for controller classes
    • Write tests for factories
  • Demo script
    • mujoco_playground: Go1 Open In Colab
    • Unicycle MPC/PID
  • Exception Handling
    • Add parameter validation exceptions
    • Add runtime exceptions

Estimation module template

  • Draft observer structure
  • Implement observer pattern
  • Tessting

Planning module template

  • Draft ??? structure
  • Implement ??? pattern
  • Tessting

System Integration

  • 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

Memo

  • ruff format
  • ruff check or ruff check --fix

About

Self-paced learning and playground for robotics control software architecture and design patterns

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages