POSIMPlatform for Ocean Simulation · 문서
문서 메뉴
POSIM / 예제

ROV와 BlueROV2

namespace 인수로 패키지에 포함된 로봇 모델을 선택합니다. 이 인수는 ROS 토픽 이름만 바꾸는 옵션이 아니라 모델 디렉터리를 선택하는 값입니다.

모델 종류

모델 용도
rexrov Gazebo 추진기, 유체역학과 Odometry를 사용하는 ROV
bluerov2 ArduSub SITL·MAVROS가 연결된 BlueROV2
bluerov2_heavy Heavy 구성
bluerov2_heavy_multibeam_sonar CUDA 소나를 포함한 Heavy 구성

명령 실행 전에 작업 공간 환경을 불러옵니다. REXROV는 첫 시뮬레이션의 예제로 시작할 수 있습니다.

BlueROV2 실행

ros2 launch posim_demos posim_robot.launch.py \
  namespace:=bluerov2 world_name:=posim_ocean_waves z:=-0.5 paused:=false \
  gui:=false headless:=true use_teleop:=false use_web_joystick:=false \
  open_qgc:=false open_virtual_joystick:=false

Heavy 모델은 namespace:=bluerov2_heavy로 선택합니다. Launch 출력과 /mavros/state에서 autopilot 연결을 확인하세요. 소나가 포함된 모델에는 CUDA 설정이 필요합니다.

키보드 제어

데스크톱의 대화형 터미널에서 gui:=true headless:=false use_teleop:=true로 실행합니다. BlueROV 키는 다음과 같습니다.

키 동작
c / x Arm / disarm
w / s 전진 / 후진
a / d 좌회전 / 우회전
r / f 상승 / 하강
h / j ALT_HOLD / STABILIZE
Space 중립 명령

로컬 브라우저 조이스틱

별도 터미널에서 포함된 HTML을 제공합니다.

python3 -m http.server 8080 --bind 127.0.0.1 \
  --directory "$HOME/posim_ws/src/posim/extras"

Teleoperation을 켜고 BlueROV2를 시작합니다.

ros2 launch posim_demos posim_robot.launch.py \
  namespace:=bluerov2 world_name:=posim_ocean_waves z:=-0.5 paused:=false \
  gui:=true headless:=false use_teleop:=true use_web_joystick:=true \
  joystick_ws_host:=127.0.0.1 joystick_ws_port:=8765 \
  open_virtual_joystick:=true open_qgc:=false \
  virtual_joystick_url:='http://127.0.0.1:8080/virtual_joystick.html?host=127.0.0.1&port=8765'

WebSocket 브리지가 teleoperation Launch 안에 있으므로 use_teleop:=true를 유지합니다. 브라우저가 자동으로 열리지 않으면 같은 컴퓨터에서 위 URL을 여세요. QGroundControl은 별도 프로그램이며 open_qgc를 켜기 전에 실행 파일을 설치해야 합니다.

프로그램에서 센서를 구독하거나 명령을 보내려면 ROS 2와 제어로 이어가세요.

로봇 동작 살펴보기

REXROV의 수중 운항과 자세 변화
REXROV의 수중 운항과 자세 변화

그림·영상 출처: POSIM Notion Wiki. DAVE 문서에서 이어받은 그림의 저자 표시는 인용과 라이선스를 참고하세요. 실행 명령과 토픽 이름은 이 페이지의 코드 블록을 기준으로 사용하세요.