드론 시뮬레이션 환경 구축 #3

PX4는 Gazebo Classic용 헥사 모델 Typhoon H480을 제공합니다.  헥사콥터를 시뮬레이션하기 위해서는 아래와 같은 명령어를 실행하여 새로운 드론 모델을 컴파일 해야 합니다. 컴파일 전에 위치 조기화를 export 하여 사용할 수 있습니다. 

export PX4_HOME_LAT=37.4396727
export PX4_HOME_LON=127.1746944
export PX4_HOME_ALT=114.272330
cd ~/PX4-Autopilot
make px4_sitl gazebo-classic_typhoon_h480

위의 그림과 같이 정상적으로 실행될 경우 gazebo에 헥사콥터 드론이 출력됩니다.

다음른 헥사콥터 드론의 ROS2 제어 샘플코드를 테스트 해 보겠습니다. 아래의 압축 파일을 ~/ros2_ws/src에 복사하여 압축을 해제합니다.

simple_takeoff_land.tar.gz

cd Downloads/
cp simple_takeoff_land.tar.gz ~/ros2_ws/src/
cd ~/ros2_ws/src/
ls
tar zxvf simple_takeoff_land.tar.gz
ls

압축이 해제된 sample_takeoff_land 폴더에는 src, launch 폴더가 있고 컴파일 관련된 CMakeLists.txt, package.xml 파일이 있습니다. 해당 파일의 내용은 ros2 관련 강좌나 기타 자료를 참고해 주시기 바랍니다.

실행 시 필요한 launch 파일과 c++ 프로그램 소스 파일도 있습니다.

아래의 명령어를 순서대로 실행하여 sample_takeoff_land를 컴파일 합니다.

cd ~/ros2_ws
colcon build --symlink-install --packages-select simple_takeoff_land
source ~/ros2_ws/install/local_setup.bash

컴파일이 완료되었으면 simple_takeoff_land 패키지를 실행합니다.

3개의 터미널을 이용하여 실행합니다.

# 터미널 A (PX4 SITL)
cd ~/PX4-Autopilot
make px4_sitl gazebo-classic

# 터미널 B (uXRCE-DDS Agent)
source /opt/ros/foxy/setup.bash
source ~/ros2_ws/install/setup.bash
MicroXRCEAgent udp4 -p 8888

# 터미널 C (ROS 2)
source /opt/ros/foxy/setup.bash
source ~/ros2_ws/install/setup.bash
ros2 launch simple_takeoff_land simple_takeoff_land.launch.py

추가로 ROS 2용 Gazebo Classic ROS 플러그인을 설치합니다.

echo $ROS_DISTRO
sudo apt update
sudo apt install ros-$ROS_DISTRO-gazebo-ros-pkgs

정상적으로 설치되었는지 아래의 명령어를 실행하여 확인할 수 있습니다.

ls /opt/ros/$ROS_DISTRO/lib/libgazebo_ros_init.so
ls /opt/ros/$ROS_DISTRO/lib/libgazebo_ros_factory.so

Leave a Comment