PX4 & ROS2 Setup
오늘은 드론과 ROS2를 공부하기 위한 시뮬레이션 셋업을 하고자 한다. (오늘은 설치만 할 예정이다. 내용은 다음 포스트에 정리하고자 한다.)
데스크탑 환경은 Ubuntu 22.04를 사용한다.
순서는 다음과 같다.
- PX4 설치
- ROS2 설치
- Micro XRCE-DDS Agent & Client 셋업
- 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개를 준비한다.
- Micro XRCE 실행
cd ~/Micro-XRCE-DDS-Agent MicroXRCEAgent udp4 -p 8888
- gazebo simulation 실행
cd ~/PX4-Autopilot make px4_sitl gz_x500
- 예제코드 돌려보기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
터미널에 아래와 같은 결과가 보이면 된다.
- 예제코드 돌려보기2: offboard_control
cd ~/ws_sensor_combined source /opt/ros/humble/setup.bash source install/setup.bash ros2 run px4_ros_com offboard_control