HNUYueLuRM/basic_framework
framework for developing RoboMaster Electric Control programmes
해결하는 문제
로보마스터 대회를 대상으로 표준화되고 모듈형의 임베디드 제어 프레임워크를 제공합니다. 학생 로봇 팀에서 흔히 발생하는 분산되고 문서화가 부족하며 일관성 없는 코드베이스 문제를 해결하며, 복잡한 Linux/ROS 스택을 대체해 초보자도 쉽게 배우고 이식할 수 있는 더 접근성 높은 C++ SDK를 제공합니다.
작동 방식
프레임워크는 하드웨어와 고수준 로직을 분리하기 위해 3계층 구조를 사용합니다.
- BSP (보드 지원 패키지): USART, SPI, I2C, CAN 등 하드웨어 주변기기를 추상화하여 시스템의 나머지 부분이 하드웨어에 종속되지 않도록 합니다.
- 모듈 레이어: BSP를 사용하여 특정 하드웨어 드라이버(모터, IMU, 센서) 및 소프트웨어 알고리즘(PID, 필터, 관측기)을 구현합니다.
- App 레이어: 로봇 고유의 로직(차체 제어, 조준기 이동, 사격 메커니즘 등)을 FreeRTOS 태스크로 구현하는 최상위 계층입니다.
앱 간의 결합을 해소하기 위해 발행-구독(pub-sub) 메시지 메커니즘을 사용하여 서로 직접적인 의존성을 가지지 않고도 로봇 모듈 간 통신이 가능합니다.
대상 사용자
- 구조화된 임베디드 프레임워크를 찾는 로보마스터 대회 팀
- 로봇 제어용 모듈형 SDK를 원하는 임베디드 개발자
- 전통적인 IDE(예: Keil)에서 벗어나 현대적인 임베디드 개발 워크플로우를 배우고 싶은 학생
주요 특징
- 현대적인 워크플로우: VSCode, CLion, Segger Ozone/Systemviewer와 함께 arm-gnu 툴체인을 지원하여 고효율 디버깅 및 성능 분석이 가능합니다.
- 하드웨어 추상화: 하드웨어 특화 코드와 애플리케이션 로직 간 명확한 분리로, 다양한 로봇 구성으로의 이식이 용이합니다.
- 포괄적인 도구 지원: 다양한 DJI 모터, 센서(BMI088, IST8310), 통신 프로토콜에 내장된 지원을 제공합니다.
- 풍부한 문서: PID 튜닝, 버그 진단, 개발 환경 설정에 대한 상세 가이드를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트