PX4 & ROS2 Setup

오늘은 드론과 ROS2를 공부하기 위한 시뮬레이션 셋업을 하고자 한다. (오늘은 설치만 할 예정이다. 내용은 다음 포스트에 정리하고자 한다.)

데스크탑 환경은 Ubuntu 22.04를 사용한다.

순서는 다음과 같다.

  1. PX4 설치
  2. ROS2 설치
  3. Micro XRCE-DDS Agent & Client 셋업
  4. ROS2 Workspace 빌드 및 실행

PX4 설치

cd
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl

ros2 humble 설치

cd
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt upgrade -y
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
source /opt/ros/humble/setup.bash && echo "source /opt/ros/humble/setup.bash" >> .bashrc
  • python dependencies 설치
pip install --user -U empy==3.3.4 pyros-genmsg setuptools

Micro XRCE-DDS Agent & Client 설치

cd
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/

ROS2 Workspace 설치 및 다운

cd
mkdir -p ~/ws_sensor_combined/src/
cd ~/ws_sensor_combined/src/
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git
cd ..
source /opt/ros/humble/setup.bash
colcon build

설치 테스트

그러면 이제 잘 설치가 되었는지 확인해보자. 목표는 드론을 띄우는 것이다.

먼저 터미널은 4개를 준비한다.

  1. Micro XRCE 실행
    cd ~/Micro-XRCE-DDS-Agent
    MicroXRCEAgent udp4 -p 8888
    
  2. gazebo simulation 실행
    cd ~/PX4-Autopilot
    make px4_sitl gz_x500
    
  3. 예제코드 돌려보기1: sensor_combined_listener
    cd ~/ws_sensor_combined
    source /opt/ros/humble/setup.bash
    source install/setup.bash
    ros2 launch px4_ros_com sensor_combined_listener.launch.py
    

    터미널에 아래와 같은 결과가 보이면 된다.

    Screenshot from 2024-04-29 18-44-39

  4. 예제코드 돌려보기2: offboard_control
    cd ~/ws_sensor_combined
    source /opt/ros/humble/setup.bash
    source install/setup.bash
    ros2 run px4_ros_com offboard_control
    

성공!

Screenshot from 2024-04-29 18-38-56

Referece

https://docs.px4.io/main/en/ros/ros2_comm.html