03. Pixhawk RaspberryPi3 Jetson nano 연결(Mavros 연동) - pineland/px4 GitHub Wiki

1. 하드웨어적으로 연결

아래 그림과 같이 픽스호크의 텔레메트리(1 또는 2)와 컴패니언 컴퓨터(라즈베리파이3 / Jetson nano) 시리얼의 GND, 6(TX), 8(RX)를 연결한다.

2. 픽스호크 시리얼 설정 확인

아래 그림과 같이 Firmware 업로드 후 Qgroundcontrol(QGC) 또는 Mission planner(MP)에서 Serial setting 값 확인

  • QGC : Setting > Parameters > Serial
  • MP : CONFIG/TUNING > Full Parameters Tree > Serial#

3. 컴패니언 컴퓨터 설정 확인

/boot/config.txt에서 시리얼 포트 enable 확인

enable_uart = 1

4. 컴패니언 컴퓨터 내 MAVROS 설치

먼저 풀버전의 ros가 아닌 lightweight한 ros를 설치한 후, 아래 처럼 MAVROS를 설치해준다.

4.1 Jetson nano의 설치스크립트 예제

sudo git clone https://github.com/JetsonHacksNano/installROS.git
cd installROS/
./installROS.sh -p ros-melodic-desktop -p ros-melodic-rgbd-launch

# MAVROS 설치
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

4.2 Raspberry의 설치스크립트 예제

# gazebo_ros_pkgs 설치
sudo apt-get install ros-melodic-gazebo-ros-pkgs

# MAVROS 설치
sudo apt-get update
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

5. 컴패니언 컴퓨터와 픽스호크를 연동하는 launch 파일에서 Serial 설정 맞춰주기

sudo vi /opt/ros/melodic/share/mavros/launch/px4.launch
  <arg name=”fcu_url” default=”/dev/ttyTHS1:115200” />   # ttyTHS1은 TELEM1, 115200은 픽스호크의 설정속도와 일치해야 한다.

6. MAVROS 연결 확인

Pixhawk - 컴패니언 컴퓨터 연결 후 각각 전원 연결, Jetson nano 에서 Terminal 실행후 아래 명령을 실행한다.

sudo chmod 666 /dev/ttyTHS1       # 일반유저도 TELEM1에 접근/실행할 수 있도록 권한 설정
roslaunch mavros px4.launch       # MAVROS를 통해 픽스호크와 컴패니언보드 연결
rostopic list                     # ros 토픽 리스트 확인
rostopic echo /mavros/imu/data    # 예시로 픽스호크의 IMU 데이터가 MAVROS를 통해 ros로 잘 넘어오는지 확인

7. GAZEBO의 SITL 환경에서 ROS Offboard 실행하기

Ubuntu 환경에서 가상의 시뮬레이션 환경으로 하드웨어 장비 없이 가제보, PX4, Offboard 코드를 실행하여 모의하기
기본적으로 Gazebo, PX4, ROS-Mavros 가 설치되어 있다는 가정 아래 세개의 터미널을 열고 각각 터미널에서 아래 순서대로 실행한다.

Terminal #1
roscore
Terminal #2
make px4_sitl_default gazebo
Terminal #3
roslaunch modudculab_ros ctrl_pos_gazebo.launch fcu_url:="udp://:[email protected]:14557"
Terminal #4
rosrun mavros mavsafety arm
rosrun mavros mavsys mode -c OFFBOARD