일단 저장
Pixhawk2 Calibration
- Mission Planner 설치 (윈도우) / Qgroundcontrol (우분투)
- Firmware 설치
- 인터넷에서 다른 firmware 다운로드 옵션을 통해 FMUv3 용의 ardurover firmware을 다운로드 후 설치 (Pixhawk1 버전은 안됨)
- Mission Planner의 지시에 따라 가속도계, 나침반, radio, esc (필수 x) 를 calibration
- radio calibration에서 mission planner는 최소 4개의 채널(poll, pitch, yaw, throttle)을 요구하지만, 사용하고 있는 컨트롤러는 기본적으로 2개의 채널만 사용.
- AUX1~3 채널을 임의로 할당하여 사용(기본 2개의 채널을 rover 제어에 필요한 poll, throttle에 할당)
- 기본적으로 mission planner에서는 channel 3의 신호를 throttle 제어에 사용하도록 설정되어 있으므로, parameter 변경을 통해 channel 2가 throttle을 제어할 수 있도록 한다.
TK1에 MAVROS 설치
- TK1 에 ros-indigo 설치
- roswiki 참고
- TK2 에 MAVROS 설치
sudo apt-get install python-catkin-tools
sudo apt-get install ros-indigo-mavros ros-indigo-mavros
Serial, USB
그림1 |
- TK1 보드에서 Pixhwak를 제어하기 위해 Pixhwak의 TELEM2 포트를 USBtoTTL 장치를 통해 그림 1과 같이 연결
- Qgroundcontrol 에서 SYS_COMPANION 파라메터를 “Companion Link(921600 baudrate 8N1)으로 수정(Mission Planner에서는 기본적으로 57600)
ls /dev/ttyUSB* sudo chmod 666 /dev/ttyUSB* #for permission roscore rosrun mavros mavros_node _fcu_url:="/dev/ttyUSB*:921600"
- 이때 TK1의 경우 serial to usb 드라이버가 설치되어 있지 않음(보통은 우분투 운영체제 기본 내장이다)
- USBtoTTL 장치의 제조 회사에 따라 드라이버가 다름(이 경우는 CP210X 드라이버를 설치해야 한다)
제조사에서 드라이버 다운로드 후
make 할 때 tk1 에서는 genmask 매크로가 정의되어 있지 않아 에러가 발생(genmask는 커널 버전 3.19 부터 정의되어 지는데 tk1은 3.13이다)make
Cp cp210x.ko /lib/modules/<kernel-version>/kernel/drivers/usb/serial
Inmode /lib/modules/<kernel-version>/kernel/drivers/usb/serial/usbserial.ko #이 경우에는 없었음
Insmod cp210.ko # 드라이버 실행 코드
(따라서 에러가 발생하는 파일에 genmask를 정의 해주어야 한다)
(genmask의 코드는 인터넷에 나온다)
뒤 앞 |
Arming
Pixhawk를 작동시키기 위해 pixhawk 를 arming 하는 과정이 필요하다. 이때 오류가 날 경우 parameter 중 arming단계에서 preflight (시동전 점검)단계를 생략하는 parameter를 설정한다.
roscore
rosrun mavros mavros_node _fcu_url:="/dev/ttyUSB0:57600"
rosservice call /mavros/set_mode “base_mode: 0 cumtom_mode:”GUIDED”” #GUIDED(외부 보드에서 pixhawk를 제어할 수 있는 모드)로 변환
rosservice call /mavros/cmd/arming “value: Ture” #arming
# Arming 스위치를 누른다(깜박임 -> 유지)
# 이후 여러 topic을 통해 제어 할 수 있다.
No comments:
Post a Comment