Week #4 #
Testing and QA #
We have started implementing tests for both the control system and Hardware. The strategy is to:
- Use unit tests for physics-based system classes (e.g. CartPole, EnvInterface)
- Use hardware test to ckeck hardware system status.
- Verifying response of hardware to predicted action and check connectivity
All tests for python lib are written using pytest, and can be run via in inno_controll/
folder:
pytest
or by docker:
docker compose up -build tests
Evidence of test execution #
https://github.com/user-attachments/assets/b06a4906-5335-4083-8c14-2901c59c6f0c
CI/CD #
We configured GitHub Actions as our CI tool. It:
- Automatically runs unit tests on every push to the main and dev branches
- Lints the code using black and flake8
- Check style of documentation according to Google style
- Automaticly build documentation according new code structure
- Push this documentation on GitHub Pages
Links to CI/CD configuration files #
https://github.com/IU-Capstone-Project-2025/total_control/.github/workflows/docs.yml
https://github.com/IU-Capstone-Project-2025/total_control/.github/workflows/linters.yml
https://github.com/IU-Capstone-Project-2025/total_control/blob/main/.clang-tidy
https://github.com/IU-Capstone-Project-2025/total_control/blob/main/.ruff.toml
Deployment #
Staging #
For ease of use, there are two options for deploying software:
A Docker image that is uploaded to the Docker Hub and automatically downloaded from the cloud to a local computer, where it is deployed using Docker Compose (this solution is primarily suitable for development, taking into account the use of additional tools for preparation, configuration, and management)
A self-contained Python library that can automatically download additional dependencies and is currently being prepared for upload to the cloud for quick installation via Pip (currently only works locally)
Production #
(Planned for Week #6, when the full stack is stable and safe for hardware control)
Vibe Check #
Progress: Team is moving forward with hardware design integration and RL. The DQN agent is functional in simulation, and environment interfaces are maturing.
Roadblocks: Hardware integration and accurate reward shaping are pending. Limited real-time feedback testing due to incomplete API.
Team dynamics: Good communication. Everyone has clear tasks, but we need to ensure syncing frontend/backend progress with the ML environment timeline and documentation
General summary: All team members are very excited about the direction we are taking, especially the technologies we need to use and the future results
Weekly commitments #
Individual contribution of each participant #
- Evgenii - Make PCB, box and tests for py
- Artyom - Make CI/CD pipeline and docs
- Anastasia - Read and write pipeline and data processing
- Marat - Firmware optimization and tests
- Petr - RL and Report
Plan for Next Week #
- Add real-time hardware data processing
- Finish deployment pipeline with automatic container builds and docs processing
- Tune hyperparameters of RL agent
- Finalize reward shaping logic
- Expand unit and integration test coverage
- Refactor entire code (Py, c++ and other)
- Imporove assembly
Confirmation of the code’s operability #
We confirm that the code in the main branch:
- In working condition.
- Run via docker-compose (or another alternative described in the README.md).