예정일: 2023.03.02
성공: 2023.03.02
박준규, 박찬준, 정범진
<aside> ⚠️ ROS2 기준입니다. ROS1 관련 내용은 연세드론 깃헙을 참고하시거나 ROS1 스터디 노트 (2기, OLD) 를 참고해주세요.
</aside>
참고:
https://www.youtube.com/watch?v=HTyxRlDz4r0
<aside> <img src="/icons/gear_gray.svg" alt="/icons/gear_gray.svg" width="40px" /> Environment Ubuntu 20.04 ROS2 Foxy OR Humble (this test was conducted with ROS2 Foxy)
HW FC: Pixhawk 4 Companion PC: Khadas VIM4 Sensor: Orbbec Astra Pro (+ Lidar?)
</aside>
ROS 2 User Guide | PX4 오토파일럿 사용자 설명서
우선 Pixhawk FC와 드론 기체를 SITL(Software In The Loop)로 대체하여 카메라 연결 및 VIM4 통신에 익숙해지고자 함.
ROS2와 PX4 Autopilot, Gazebo를 사용하며, 우선 client(desktop & PX4 sitl) - agent(VIM4) 으로 세팅하여 둘 간의 통신을 해보고자 함.
Ubuntu 20.04 환경에서 위의 문서대로 PX4와 ROS2 foxy를 설치함.
git clone <https://github.com/PX4/PX4-Autopilot.git> --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
# 2월 28일 기준
code ~/PX4-Autopilot/Tools/setup/ubuntu.sh
# ubuntu.sh 파일을 직접 열어서 잘못 주석처리된 부분을 지워야 함.(아래 링크참조)
# <https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/ubuntu.sh#L87>
sudo reboot
ROS 2 Foxy Installation on Ubuntu
노트북이 Client 역할을 하므로 위 ROS2 User Guide 문서에서https://docs.px4.io/main/ko/middleware/xrce_dds.html#starting-the-client 부분 진행.
~/PX4-Autopilot$ make px4_sitl gazebo
# SITL 실행 후 Enter 입력하면 pxh> 커맨드라인으로 들어감.
pxh> microdds_client stop
pxh> microdds_client start -t udp -p 8888 -h *<IP ADDRESS OF VIM4>*
Agent 부분은 Start the micro-ros-agent 여기를 참고.
Client에서 SITL을 실행하고 Agent에서 ros2 topic도 받아오는 것을 확인함.
Offboard example로 Agent에서 기체를 조종할 수 있는지 테스트하기 위해 아래 링크를 foxy버전에 맞게 사용
PX4 와 ROS2 연동시켜보기 (PX4-Offboard)
위 페이지에서 Installing the px4-offboard
example 부분부터 진행하는 것이 빠름.
Troubleshooting
px4-offboard에서 colcon build하는 것이 계속 에러가 났음.
setuptools 버전문제인데, 최신 버전에서는 setup에서 ‘-’를 허용하지 않음.
따라서 px4-offboard에 있는 setup.cfg를 아래와 같이 변경해주자.
Fix colcon build error by ChanJoon · Pull Request #13 · Jaeyoung-Lim/px4-offboard
[develop]
script_dir=$base/lib/px4_offboard
[install]
install_scripts=$base/lib/px4_offboard