Week #6 #
Links #
Deployment: https://pypi.org/project/innocontrol/
API Docs: https://iu-capstone-project-2025.github.io/total_control/
PCB Design:
Demo: https://github.com/IU-Capstone-Project-2025/total_control/blob/Reports/Simple_controller_test.MOV
Final deliverables #
Project overview #
Our project is a Python-based control library for interacting with physical cart-pole mechanism. The library abstracts the complexity of serial communication and device management into a simple, user-friendly API.
The library supports both real hardware control, making it suitable for algorithm development and testing.
This solution targets robotics students, engineers and researchers working with physical lab devices, helping them simplify the process of cart-pole control and experimentation.
Features #
- Control library (
innocontrol
) for CartPole hardware interaction. - Device connection management:
connect()
disconnect()
- Joint state retrieval:
get_joint_state()
— returns positions and velocities.
- Force control:
set_joint_efforts()
— sends effort/force commands to motors.
- Experiment control:
start_experimnet()
stop_experiment()
- Public API documentation (via GitHub Pages).
Tech stack #
- Python 3.10+
- Serial communication via
pyserial
- Sphinx (for API documentation)
- Docker (optional, for packaging)
- Markdown / GitHub Pages (documentation hosting)
- ESP 32 dev board (main computaton of Controll Box)
- C/C++ for ESP32
Setup instructions #
- By clonning repository: Clone repository:
git clone https://github.com/iu-capstone-project-2025/total_control.git
cd total_control
Install dependencies:
pip install -r requirements.txt
Or by pip:
pip install innocontrol
Connect cartpole via USB
Example usage:
from inno_control.devices import CartPole
cart = CartPole('<your /dev port>')
cart.connect()
cart.start_experimnet()
state = cart.get_joint_state()
cart.set_joint_efforts(100)
cart.stop_experiment()
cart.disconnect()
- Access API documentation:
https://iu-capstone-project-2025.github.io/total_control/
Presentation draft #
https://docs.google.com/presentation/d/1-JeMrnjwtoxeAh8rwuWfYGbkSolINBjYeGRhfkOGHkk/edit?usp=sharing
Weekly commitments #
Individual contribution of each participant #
Artyom - dosc API and refactor
Evgenii - Hardware design and refactoring
Anastasia - Presentation and RL research
Petr - Write report and RL
Marat - Control system and RL
Plan for Next Week #
Final project presentation.
Release library and documentation.
Fix bugs and prepare presentation programms
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
).