Pixhawk와 Jetson NX UART 통신

회로도

Jetson NX

출처: https://jetsonhacks.com/nvidia-jetson-xavier-nx-gpio-header-pinout

→ 6,8,10 활용하여 UART1에 해당하는 ttyTHS0과 연결(RTS,CTS 연결불필요)

이후, port 충돌을 막기 위하여 아래 command를 terminal 창에 기입한다.(Thanks to 박찬준 인턴님)

sudo systemctl disable nvgetty.service

Pixhawk

출처: http://www.holybro.com/manual/Pixhawk4Mini_Pinouts.pdf

→ SCL/SDA는 연결하지 않아도 괜찮음.(I2C)


소프트웨어 setup

  • PX4 parameter (참고자료)
    • MAV_1_CONFIG:104: TELEM/SERIAL 4”
      • TELEM4(UART+I2C)에 해당하는 설정
      • 최우선 설정 parameter→ reboot 해야지만 이와 연관된 설정 값을 변경할 수 있음.
    • MAV_1_FLOW_CTRL: 2: Auto-detected”0: Force off”
      • RTS/CTS를 활용할지에 대한 parameter
      • 동기화된 Serial 통신인 USART port가 있다면 어차피 RTS/CTS 라인이 필요하지 않고, UART인 경우 사용할 수도 있음.
      • Pixhawk 6C, 6C mini와 Jetson Orin NX를 활용하는 경우 Auto detected로는 작동하지 않음을 확인함.
      • 신경쓰지 않고 싶다면 Pixhawk 6C의 경우 TELEM3 port 가 USART 이므로 이를 활용하면 되지만 Pixhawk 6C mini는 debug port 에만 USART 기능이 있는데 이는 onboard 연결에 활용할 수 없음.
    • MAV_1_MODE:2: Onboard”
    • SER_TEL4_BAUD: “921600: 921600 8N1”

      → 기본은 57600 8N1이고 그대로 써도 되지만 mavros 에서 921600을 쓰고 싶다면 변경해야함.

  • MAVROS
    • fcu_url 값의 device 정보를 ttyACM0에서 ttyTHS0로 변경해야함.
    • fcu_url의 baudrate는 위 PX4 parameter (SER_TEL4_BAUD)의 설정값에 맞추어 설정

※ Pixhawk data Hz 설정

Comments