참조 : https://support.unitree.com/main
Unitree 로봇의 상품화 역량이 매우 뛰어난 것 같습니다.
단순히 HW만 잘 만드는 것이 아니라, 구매한 고객들이 응용 SW 를 쉽게 개발할 수 있는 SDK와 개발 문서를 잘 제공하고 있습니다.
https://support.unitree.com/main
宇树科技 文档中心
support.unitree.com
Unitree 4족 보행로봇을 구매 시 개발 방향성에 대해 설명합니다.
1단계: 개발 환경 구축 및 기본 제어
이 단계의 목표는 Go2 로봇의 포장을 풀고, 개발용 PC와 연결하여 ROS2를 통해 로봇을 움직여보는 것입니다.
- 준비물:
- 로봇: Unitree Go2 Pro (전방 카메라 및 3D LiDAR 기본 장착 모델)
- PC: Ubuntu 22.04가 설치된 노트북 또는 데스크탑
- 네트워크: 로봇과 PC를 연결할 유무선 공유기
- 구체적인 실행 절차:
- ROS2 설치: PC에 ROS2 Humble 버전을 설치합니다. 아래 명령어를 터미널에 입력합니다.
-
Bash
sudo apt update && sudo apt install ros-humble-desktop - Unitree ROS2 드라이버 설치: Unitree가 제공하는 공식 ROS2 패키지를 다운로드하고 빌드합니다.
-
Bash
# 1. 작업용 폴더(워크스페이스) 생성 mkdir -p ~/unitree_ws/src cd ~/unitree_ws/src # 2. 공식 GitHub 저장소에서 소스 코드 복제 git clone https://github.com/unitreerobotics/unitree_ros2_to_real.git # 3. 워크스페이스 루트로 이동하여 빌드 cd ~/unitree_ws colcon build --symlink-install # 4. 터미널에 ROS2 환경 설정 적용 source install/setup.bash - 네트워크 설정: Go2 로봇과 개발용 PC를 동일한 네트워크(공유기)에 연결합니다. Go2의 IP 주소를 확인합니다 (보통 192.168.123.x 대역).
- 로봇 구동 및 테스트: 터미널에서 아래 명령어를 실행하여 로봇과의 연결을 시작합니다.
-
Bash
# 위에서 생성한 워크스페이스의 setup.bash를 먼저 실행해야 합니다. ros2 launch unitree_bringup go2.launch.py - 결과 확인: 새 터미널을 열고 아래 명령어를 입력했을 때, 로봇의 각종 센서 데이터(IMU, 관절 상태 등)가 실시간으로 출력되면 성공입니다.
-
Bash
ros2 topic list # /imu/data, /joint_states 등의 토픽이 보이는지 확인 ros2 topic echo /imu/data # IMU 센서 데이터가 수신되는지 확인
- 이 단계의 결과물: ROS2를 통해 로봇의 기본 상태를 모니터링하고 제어할 수 있는 개발 환경 완성.
2단계: 센서 데이터 시각화 및 분석
이 단계의 목표는 Go2에 내장된 3D LiDAR와 카메라의 데이터를 PC에서 실시간으로 확인하고 분석하는 것입니다. 이는 자율 주행의 기초가 됩니다.
- 구체적인 실행 절차:
- RViz2 실행: ROS2의 3D 시각화 도구인 RViz2를 실행합니다.
-
Bash
rviz2 - 데이터 시각화:
- RViz2 좌측 하단의 'Add' 버튼을 클릭합니다.
- 'By topic' 탭에서 /laser_scan 또는 /pointcloud 토픽을 선택하여 3D LiDAR 데이터를 추가합니다. 로봇 주변 환경이 3D 점으로 표시되는 것을 볼 수 있습니다.
- 마찬가지로 /camera/color/image_raw 토픽을 선택하여 전방 카메라 영상을 추가합니다. 로봇이 보는 시야를 PC에서 실시간으로 확인할 수 있습니다.
- 외부 센서 추가 (선택 사항): 만약 야간 정찰을 위해 열화상 카메라(예: FLIR Boson)를 추가한다면,
- 물리적 연결: Go2 로봇 몸체 상단의 확장 포트(J5)에서 12V 전원을 인가하고, 이더넷 포트를 통해 카메라와 연결합니다.
- 소프트웨어 설정: 열화상 카메라 제조사가 제공하는 ROS 드라이버를 설치하고, 실행하여 /thermal/image_raw 와 같은 새로운 토픽으로 데이터를 수신합니다.
- 이 단계의 결과물: 정찰 임무에 필요한 핵심 센서(LiDAR, 카메라) 데이터를 ROS2 환경에서 실시간으로 시각화하고 사용할 수 있는 상태.
3단계: SLAM을 이용한 자율 주행 및 지도 생성
가장 핵심적인 단계로, 로봇이 스스로 주변 환경을 인식하여 지도를 만들고(SLAM), 그 지도를 기반으로 목표 지점까지 자율적으로 이동하는 기능을 구현합니다.
- 구체적인 실행 절차:
- SLAM 패키지 설치: ROS2에서 널리 사용되는 slam_toolbox 패키지를 설치합니다.
-
Bash
sudo apt-get install ros-humble-slam-toolbox - SLAM 실행 및 지도 작성:
- slam_toolbox를 실행하는 launch 파일을 작성합니다. 이 파일에는 LiDAR 토픽 이름(pointcloud 또는 laser_scan)을 slam_toolbox가 요구하는 입력 형식에 맞게 **리맵핑(remapping)**하는 설정이 포함되어야 합니다.
- 로봇을 조종기(기본 제공 컨트롤러)로 천천히 움직여 정찰할 공간을 돌아다닙니다. RViz2 화면에 실시간으로 지도가 그려지는 것을 확인할 수 있습니다.
- 지도 저장: 지도 작성이 완료되면, 아래 명령어로 지도를 파일(my_map.yaml, my_map.pgm)로 저장합니다.
-
Bash
ros2 run nav2_map_server map_saver_cli -f ~/maps/my_map - 자율 주행(Navigation) 패키지 설치 및 설정:
- ROS2의 내비게이션 스택인 Nav2를 설치합니다.
- Nav2를 실행하는 launch 파일을 작성합니다. 이 파일에는 위에서 저장한 지도를 불러오고, 로봇의 크기, 최대 속도 등 정찰 임무에 맞는 파라미터를 설정하는 내용이 포함됩니다.
- 자율 주행 테스트:
- RViz2를 실행하고 저장된 지도를 불러옵니다.
- RViz2 상단의 'Nav2 Goal' 버튼을 클릭하고 지도상의 목표 지점을 클릭합니다.
- Go2 로봇이 장애물을 피해 스스로 목표 지점까지 이동하는지 확인합니다.
- 이 단계의 결과물: 특정 공간의 2D 지도가 완성되고, 로봇이 해당 지도 내에서 원하는 지점으로 자율적으로 이동할 수 있는 능력 확보.
4단계: 정찰 애플리케이션 개발
앞선 단계에서 구현한 자율 주행 플랫폼 위에 실제 정찰 임무를 수행하는 애플리케이션을 개발합니다.
- 구체적인 실행 절차:
- 정찰 경로 설정: 지도 위에 순찰할 여러 경유지(Waypoint) 좌표를 미리 지정합니다.
- 경로 순찰 노드 작성 (Python):
- nav2_simple_commander API를 사용하여 지정된 경유지를 순서대로 로봇에게 목표 지점으로 보내는 Python 스크립트를 작성합니다.
- 로봇이 각 경유지에 도착하면 잠시 대기하며 주변을 촬영하도록 프로그래밍합니다.
- 이상 상황 감지 및 보고 노드 작성 (Python):
- /camera/color/image_raw 토픽을 구독(subscribe)하는 새로운 Python 스크립트를 작성합니다.
- OpenCV, YOLOv8과 같은 AI 모델을 활용하여 실시간 영상에서 특정 객체(예: 사람, 차량)를 탐지합니다.
- 객체가 탐지되면, 해당 이미지와 탐지 시간, 로봇의 현재 위치(좌표)를 로그 파일로 저장하거나 원격 관제소로 전송하는 기능을 구현합니다.
- 최종 결과물: "지정된 경로를 자율적으로 순찰하며, 이동 중 특이 객체를 발견하면 사진과 위치를 기록하여 보고하는" 완전한 형태의 정찰 로봇 애플리케이션.
반응형
'로봇' 카테고리의 다른 글
| Figure AI 휴머노이드 로봇 회사 (0) | 2025.10.18 |
|---|---|
| Boston Dynamic(보스톤다이내믹스), 대규모 행동 모델(Large Behavior Model)과 아틀라스(Atlas) (2) | 2025.09.28 |
| 로봇 물리 시뮬레이터 MuJoCo (0) | 2025.09.28 |
| NVIDA Isaac Omniverse, Isaac Sim, Issac Lab, GR00T 등 비교 정리 (0) | 2025.09.28 |
| Gemini Robotics 1.5 brings AI agents into the physical world(한국어) (0) | 2025.09.28 |