예정일: 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 오토파일럿 사용자 설명서

architecture_xrce-dds_ros2.fed61809.svg

우선 Pixhawk FC와 드론 기체를 SITL(Software In The Loop)로 대체하여 카메라 연결 및 VIM4 통신에 익숙해지고자 함.

ROS2와 PX4 Autopilot, Gazebo를 사용하며, 우선 client(desktop & PX4 sitl) - agent(VIM4) 으로 세팅하여 둘 간의 통신을 해보고자 함.

  1. 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

    Ubuntu (Debian) — ROS 2 Documentation: Foxy documentation

  2. 노트북이 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 여기를 참고.

  3. Client에서 SITL을 실행하고 Agent에서 ros2 topic도 받아오는 것을 확인함.

    Offboard example로 Agent에서 기체를 조종할 수 있는지 테스트하기 위해 아래 링크를 foxy버전에 맞게 사용

    PX4 ROS2 offboard tutorial

    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