ROS 2 + AI Vision + 음성 제어 기반 군 사격 훈련 전 과정 자동화 시스템
ArmyBot은
기존 군 사격 훈련 과정에서 발생하는 표적 분석의 수작업 의존성,
탄피 및 탄알집 수거 인력 소모,
훈련 데이터의 비정량적 관리 문제를 해결하기 위해 개발된
지능형 로봇 자동화 시스템입니다.
본 프로젝트는
두산 로보틱스의 M0609 협동로봇을 기반으로,
- 🎙 음성 인식 제어 시스템
- 👁 YOLO 기반 객체 탐지
- 🧠 VLM 기반 표적 분석
- 🔌 Arduino 엣지 디바이스 연동
을 통합하여 사격 준비 → 격발 감지 → 탄피/탄알집 수거 → 표적 분석 → 결과 저장까지
전 과정을 자동화했습니다.
- 표적지 분석을 인력이 수동 수행
- 탄피 및 탄알집 정리에 시간 소모
- 사격 결과 데이터의 정량적 축적 어려움
- 훈련 자동화 시스템 부재
ArmyBot은 다음을 목표로 설계되었습니다:
- 🔄 훈련 프로세스 자동화
- 📊 AI 기반 표적 분석 정량화
- 🤖 로봇을 활용한 물리적 작업 자동 수행
- 🗣 음성 기반 직관적 인터페이스 제공
| 구성 요소 | 역할 |
|---|---|
| ROS 2 Humble | 전체 노드 통신 및 시스템 제어 |
| Jarvis Voice Node | 음성 인식 및 명령 트리거 |
| YOLO + RealSense | 탄피 / 탄알집 객체 탐지 |
| Gemini VLM | 표적지 AI 분석 |
| Arduino | 격발 신호 감지 |
| M0609 Robot Arm | 물리적 수거 작업 수행 |
| Flask | User Interface 구현 |
- "자비스, 준비" 음성 명령
- 로봇 사격 준비 자세 이동
- Arduino 격발 감지
- YOLO 객체 탐지
- Depth → Robot 좌표 변환
- 로봇 탄피/탄알집 수거
- 표적지 촬영
- Gemini VLM 분석
- 결과 저장
- Ubuntu 22.04 LTS
- ROS 2 Humble
- Python 3.10
- JavaScript
- HTML
- Doosan Robotics M0609
- DSR_ROBOT2 Python API
- Onrobot RG2 Gripper
ultralytics(YOLOv8)- :contentReference[oaicite:2]{index=2} RealSense D435i
- Gemini API (VLM 분석)
- OpenCV
- Arduino (격발 감지)
- PySerial
- SpeechRecognition
- gTTS
- ROS 2 기반 로봇 제어 노드 설계 및 구현
- RealSense Depth → Robot 좌표계 변환 알고리즘 구현
- YOLO 기반 객체 탐지 파이프라인 구축
- Arduino-ROS2 시리얼 통신 프로토콜 설계
- 음성 명령 기반 자동 실행 로직 설계
- 전체 시스템 통합 및 디버깅
- ✅ 사격 후 정리 자동화 구현
- ✅ 객체 탐지 및 로봇 픽업 파이프라인 완성
- ✅ 음성 명령 기반 무인 자동화 시스템 구축
- ✅ Vision-AI-Robot-Embedded 통합 아키텍처 설계 경험 확보
armybot/ ├── robot_control.py ├── yolo_node.py ├── ai_count.py └── onrobot.py
arduino_bridge/ └── switch_edge_pub.py
jarvis_project/ └── jarvis.py
resource/ ├── brass_magazine.pt ├── calibration_matrix.yaml └── result/
od_msg/srv/ └── SrvDepthPosition.srv
armbot_web/ ├── commander.py ├── shooter.py ├── templates/ ├───── commander.html └───── shooter.html
cd ir_gunshot_staff colcon build --packages-select armybot arduino_bridge source install/setup.bash ros2 run arduino_bridge switch_edge_pub
cd ir_gunshot_staff/src/jarvis_project python3 jarvis.py
─── Terminal 1 ros2 launch dsr_bringup2 dsr_bringup2_rviz.launch.py mode:=real host:=192.168.1.100 port:=12345 model:=m0609
─── Terminal 2 ros2 launch realsense2_camera rs_align_depth_launch.py depth_module.depth_profile:=848x480x30 rgb_camera.color_profile:=1280x720x30 initial_reset:=true align_depth.enable:=true enable_rgbd:=true enable_infra:=true enable_infra1:=true enable_infra2:=true depth_module.emitter_enabled:=1 pointcloud.enable:=true
─── Terminal 3 realsense-viewer └──realsenseIRconfig.json
─── Terminal 4 cd ir_gunshot_staff colcon build --packages-select armybot source install/setup.bash ros2 launch armybot armybot.launch.py
─── Terminal 5 cd ir_gunshot_staff/src/armbot_web python3 commander.py
─── Terminal 6 cd ir_gunshot_staff/src/armbot_web python3 shooter.py
ROS 2 기반 분산 노드 아키텍처 설계 경험
Vision-Depth 좌표 변환 실전 적용
로봇 제어에서의 정밀도와 안정성 문제 해결
임베디드-로봇 간 실시간 통신 설계
AI 모델을 실제 물리 시스템에 통합하는 방법
멀티 타겟 동시 분석 기능
사격 점수 자동 정량화 알고리즘 개선
UI 기반 실시간 모니터링 시스템 구축
실시간 대시보드 시각화
ROKEY D-3조 | 이강인 · 주진 · 최순일 · 최재형

