Gazebo-Classic 시뮬레이터와 MAVROS 실행
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
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 및 Gazebo Classic 설치
메모
ROS 는 Linux에서만 지원됩니다(macOS나 Windows는 지원되지 않음).
Ubuntu Linux에서 ROS로 PX4 시뮬레이션을 설정하는 가장 쉬운 방법은 Linux의 개발 환경 > ROS가 있는 Gazebo 에서 찾을 수 있는 표준 설치 스크립트를 사용하는 것입니다 . 스크립트는 PX4, ROS "Noetic", Gazebo Classic 11 시뮬레이터 및 MAVROS 등 필요한 모든 것을 설치합니다 .
스크립트는 표준 ROS "Noetic" 설치 지침을 따릅니다. 여기에는 Gazebo 11가 포함됩니다.
ROS/시뮬레이션 실행
아래 명령을 사용하여 시뮬레이션을 시작하고 MAVROS를 통해 ROS를 여기에 연결할 수 있습니다 . 여기서 fcu_url
시뮬레이션을 실행하는 컴퓨터의 IP/포트는 다음과 같습니다.
roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.36:14557"
localhost에 연결하려면 다음 URL을 사용하십시오.
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
메모
설정에서 종속성 누락에 대한 경고를 받으려면
-w NUM_WORKERS
(작업자 스레드 수 재정의) 또는-v
(상세)를 사용하여 roslaunch를 호출하는 것이 유용할 수 있습니다.
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
ROS 래퍼를 사용하여 Gazebo Classic 시작
Gazebo Classic 시뮬레이션은 Gazebo Classic ROS 레이저 플러그인과 같은 ROS 주제에 직접 게시되는 센서를 통합하도록 수정될 수 있습니다. 이 기능을 지원하려면 적절한 ROS 래퍼를 사용하여 Gazebo Classic을 시작해야 합니다.
ROS로 래핑된 시뮬레이션을 실행하는 데 사용할 수 있는 ROS 시작 스크립트가 있습니다.
posix_sitl.launch : 일반 SITL 시작
mavros_posix_sitl.launch : SITL과 MAVROS 시작
ROS로 래핑된 SITL을 실행하려면 ROS 환경을 업데이트한 후 실행해야 합니다.
~/.bashrc 파일에 아래 내용을 추가 하세요.
source ~/catkin_ws/devel/setup.bash
source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
터미널을 다시연후, 시뮬레이션에서 ROS 애플리케이션을 실행하세요.
roslaunch px4 mavros_posix_sitl.launch
시뮬레이션 및 MAVROS 수동 시작
이 섹션에서는 이전에 제공된 roslaunch 지침이 실제로 어떻게 작동하는지 보여줍니다(이 지침을 따라 시뮬레이션 및 ROS를 수동으로 시작할 수 있습니다).
세 개의 터미널이 필요하며, 모두 ros 환경을 소스로 제공해야 합니다.
먼저 아래 명령을 사용하여 시뮬레이터를 시작하십시오.
cd <PX4-Autopilot_clone>
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
roslaunch px4 px4.launch
결과는 다음과 같습니다:
INFO [px4] instance: 0
______ __ __ ___
| ___ \ \ \ / / / |
| |_/ / \ V / / /| |
| __/ / \ / /_| |
| | / /^\ \ \___ |
\_| \/ \/ |_/
px4 starting.
INFO [px4] startup script: /bin/sh etc/init.d-posix/rcS 0
INFO [init] found model autostart file as SYS_AUTOSTART=10016
INFO [param] selected parameter default file parameters.bson
INFO [param] importing from 'parameters.bson'
INFO [parameters] BSON document size 295 bytes, decoded 295 bytes (INT32:12, FLOAT:3)
INFO [param] selected parameter backup file parameters_backup.bson
INFO [dataman] data manager file './dataman' size is 7866640 bytes
etc/init.d-posix/rcS: 31: [: Illegal number:
INFO [init] PX4_SIM_HOSTNAME: localhost
INFO [simulator_mavlink] Waiting for simulator to accept connection on TCP port 4560
두 번째 터미널에서는 PX4-Autopilot에 정의된 월드 파일로 가제보를 시작할 수 있는지 확인하세요. 이렇게 하려면 적절한 sitl_gazebo-classic
폴더를 포함하도록 환경 변수를 설정하십시오.
cd ~/PX4-Autopilot
source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic
이제 ROS로 작업할 때처럼 Gazebo Classic을 시작하세요.
roslaunch gazebo_ros empty_world.launch world_name:=$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic/worlds/empty.world
세 번째 터미널에서 PX4-Autopilot에 정의된 sdf 파일을 사용하여 모델을 생성할 수 있는지 확인하세요. 이렇게 하려면 적절한 sitl_gazebo-classic
폴더를 포함하도록 환경 변수를 설정하십시오.
cd <PX4-Autopilot_clone>
source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic
이제 ROS로 작업할 때와 마찬가지로 Iris 쿼드콥터 모델을 삽입합니다. Iris가 로드되면 자동으로 px4 앱에 연결됩니다.
rosrun gazebo_ros spawn_model -sdf -file $(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic/models/iris/iris.sdf -model
Last updated