Gazebo-Classic 시뮬레이터와 MAVROS 실행
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
ROS (로봇 운영 체제)는 PX4 및 Gazebo Classic 시뮬레이터 와 함께 사용할 수 있습니다. MAVROS MAVLink 노드를 사용하여 PX4와 통신합니다.
PX4와의 ROS/Gazebo Classic 통합은 아래 다이어그램의 패턴을 따릅니다(이는 일반적인 PX4 시뮬레이션 환경을 보여줍니다 ). PX4는 시뮬레이터(예: Gazebo Classic)와 통신하여 시뮬레이션된 세계에서 센서 데이터를 수신하고 모터 및 액추에이터 값을 보냅니다. GCS 및 Offboard API(예: ROS)와 통신하여 시뮬레이션된 환경에서 원격 측정을 보내고 명령을 받습니다.
"정상 동작"과 약간 다른 점은 ROS가 포트 14557에서 연결을 시작하는 반면 오프보드 API가 UDP 포트 14540에서 연결을 수신하는 것이 더 일반적이라는 것입니다 .
ROS 는 Linux에서만 지원됩니다(macOS나 Windows는 지원되지 않음).
Ubuntu Linux에서 ROS로 PX4 시뮬레이션을 설정하는 가장 쉬운 방법은 Linux의 개발 환경 > ROS가 있는 Gazebo 에서 찾을 수 있는 표준 설치 스크립트를 사용하는 것입니다 . 스크립트는 PX4, ROS "Noetic", Gazebo Classic 11 시뮬레이터 및 MAVROS 등 필요한 모든 것을 설치합니다 .
스크립트는 표준 ROS "Noetic" 설치 지침을 따릅니다. 여기에는 Gazebo 11가 포함됩니다.
localhost에 연결하려면 다음 URL을 사용하십시오.
설정에서 종속성 누락에 대한 경고를 받으려면
-w NUM_WORKERS
(작업자 스레드 수 재정의) 또는-v
(상세)를 사용하여 roslaunch를 호출하는 것이 유용할 수 있습니다.
Gazebo Classic 시뮬레이션은 Gazebo Classic ROS 레이저 플러그인과 같은 ROS 주제에 직접 게시되는 센서를 통합하도록 수정될 수 있습니다. 이 기능을 지원하려면 적절한 ROS 래퍼를 사용하여 Gazebo Classic을 시작해야 합니다.
ROS로 래핑된 시뮬레이션을 실행하는 데 사용할 수 있는 ROS 시작 스크립트가 있습니다.
ROS로 래핑된 SITL을 실행하려면 ROS 환경을 업데이트한 후 실행해야 합니다.
~/.bashrc 파일에 아래 내용을 추가 하세요.
터미널을 다시연후, 시뮬레이션에서 ROS 애플리케이션을 실행하세요.
이 섹션에서는 이전에 제공된 roslaunch 지침이 실제로 어떻게 작동하는지 보여줍니다(이 지침을 따라 시뮬레이션 및 ROS를 수동으로 시작할 수 있습니다).
세 개의 터미널이 필요하며, 모두 ros 환경을 소스로 제공해야 합니다.
먼저 아래 명령을 사용하여 시뮬레이터를 시작하십시오.
결과는 다음과 같습니다:
두 번째 터미널에서는 PX4-Autopilot에 정의된 월드 파일로 가제보를 시작할 수 있는지 확인하세요. 이렇게 하려면 적절한 sitl_gazebo-classic
폴더를 포함하도록 환경 변수를 설정하십시오.
이제 ROS로 작업할 때처럼 Gazebo Classic을 시작하세요.
세 번째 터미널에서 PX4-Autopilot에 정의된 sdf 파일을 사용하여 모델을 생성할 수 있는지 확인하세요. 이렇게 하려면 적절한 sitl_gazebo-classic
폴더를 포함하도록 환경 변수를 설정하십시오.
이제 ROS로 작업할 때와 마찬가지로 Iris 쿼드콥터 모델을 삽입합니다. Iris가 로드되면 자동으로 px4 앱에 연결됩니다.
아래 명령을 사용하여 시뮬레이션을 시작하고 통해 ROS를 여기에 연결할 수 있습니다 . 여기서 fcu_url
시뮬레이션을 실행하는 컴퓨터의 IP/포트는 다음과 같습니다.
: 일반 SITL 시작
: SITL과 MAVROS 시작