삼성전자 미래로봇추진단 — 로봇 SW 인프라
CareerSamsung
Access restricted. Admin login required.
삼성전자 미래로봇추진단에서 로봇 SW 인프라 엔지니어를 뽑고 있다. 휴머노이드 소프트웨어 빌드/배포 시스템 구축과 테스트 자동화 인프라 개발이 주 업무다.
수행업무
- 휴머노이드 소프트웨어 빌드 및 배포 시스템 구축
- 바이너리 구성 및 버전 관리 체계 설계
- CI/CD 파이프라인 구축 및 자동화
- 로봇 플랫폼 배포 환경 설계 및 구현
- 테스트 자동화 인프라 개발
- 로봇 소프트웨어 테스트 프레임워크 설계 및 구현
- HIL(Hardware-in-the-Loop) 테스트 환경 구축
- 시뮬레이션 기반 자동화 테스트 시스템 개발
내 경험 매칭
CI/CD 파이프라인 — 6개 GitHub Actions 워크플로우 운영
| 워크플로우 | 내용 |
|---|---|
| v1-firmware-build | ESP32 펌웨어 빌드 + 시큐어부트 서명 + S3 배포 |
| v1-factory-build | 공장 프로비저닝 펌웨어 빌드 |
| docker-build | ROS2 멀티플랫폼 Docker 이미지 빌드 (amd64/arm64) |
| cloud-deploy | Lambda, Grafana, Shadow UI 병렬 배포 + 헬스체크 |
| rvt-deb-publish | Debian 패키지 GPG 서명 + Aptly 레포 S3 배포 |
| rvt-monitor-publish | PyPI 패키지 OIDC 기반 배포 |
빌드 대상이 ESP32 펌웨어, ROS2 Docker 이미지, Debian 패키지, Python 패키지, AWS Lambda까지 다양하다. 멀티 타겟 매트릭스 빌드, 시크릿 관리, 경로 기반 트리거, 자동 태깅 등을 실무에서 구축하고 운영했다.
바이너리 버전 관리 체계
- V1 펌웨어: 시맨틱 버저닝 (MAJOR.MINOR.PATCH),
firmware_version.h에서 관리 - V2 Debian 패키지:
DEBIAN/control버전 변경 감지 → 자동 빌드/배포 - 클라우드 서비스:
YYYY.MM.DD-{short-sha}포맷, git 태그 자동 생성
로봇 플랫폼 배포 환경 — Docker 멀티스테이지
ROS2 Jazzy 기반 로봇 소프트웨어를 Docker로 배포한다.
- 멀티스테이지 빌드: base → dev → builder → prod → local
- 멀티플랫폼: linux/amd64 (개발), linux/arm64 (로봇 실물)
- 레지스트리: GitHub Container Registry (GHCR)
- 개발환경: docker-compose로 볼륨 마운트 + X11 포워딩 + GPU 가속
OTA 펌웨어 업데이트 시스템
AWS IoT Core Job 기반 OTA 시스템을 직접 구축했다.
- S3에 바이너리 업로드 → CloudFront URL 생성 → IoT Job 생성
- 디바이스별 타겟 배포 (Ceily/Wally)
- Job 라이프사이클 관리 (IN_PROGRESS → COMPLETED/CANCELED)
- 디바이스 상태 추적 및 모니터링
시뮬레이션 기반 테스트 — Gazebo Harmonic
ROS2 + Gazebo Harmonic으로 로봇 시뮬레이션 환경을 구축했다.
- Differential drive, LiDAR 센서 시뮬레이션
- URDF/Xacro 기반 로봇 모델
- ROS2 Bridge로 실물과 동일한 토픽 구조 (/cmd_vel, /odom, /scan)
테스트 자동화
- V1 유닛테스트: C 기반 (speed_control, circular_buffer, input_pattern_detector)
- V2 ROS2 테스트: Google Test 프레임워크 (stream health check, 상태 머신, 타임아웃 시나리오)
디바이스 프로비저닝 + 보안
- 시리얼 번호 eFuse 프로그래밍 (write-once)
- AWS IoT X.509 인증서 자동 발급
- 시큐어부트 ECDSA P-256 서명
- 플래시 암호화
부족한 부분
- HIL 테스트 환경 구축: 시뮬레이션은 해봤지만, CI에 실물 보드를 연결한 자동화된 HIL 환경은 구축하지 않았다
- Yocto/Buildroot: 임베디드 Linux 이미지를 처음부터 빌드한 경험은 없다. Debian 패키지 기반 배포는 해봤다
프로젝트 아이디어
부족한 부분을 채울 수 있는 프로젝트: ROS2 로봇 소프트웨어 통합 배포 파이프라인
코드 푸시
→ Docker 이미지 빌드 (ROS2 + 앱)
→ Gazebo 시뮬레이션 테스트 자동 실행
→ 통과 시 실물 보드에 컨테이너 배포 (HIL)
→ 하드웨어 테스트 (모터, 센서)
→ 통과 시 레지스트리에 릴리즈
→ 디바이스가 새 이미지 pull + 재시작
기존에 만들어둔 CI/CD, Docker 배포, Gazebo 시뮬레이션을 하나의 파이프라인으로 통합하고, HIL 단계만 추가하면 된다.