Dynamic CAMERA STABILIZATION SYSTEM
description
Transcript of Dynamic CAMERA STABILIZATION SYSTEM
DYNAMIC CAMERA STABILIZATION SYSTEM
Reegan Worobec & David SloanIn collaboration with UAARG
WHAT IS IT?
WHAT IS IT? An additional system intended to
enhance the image processing capabilities of UAARGs UAV
A dynamic stability controller that updates its position in real time based on aircraft pitch and roll
Has the potential to track ground targets given their GPS coordinates
WHAT DOES IT DO? Stabilizes a camera platform relative to
ground independent of aircraft pitch and rollGathers sensor data from an onboard GPS
and IMU (Inertial Measurement Unit) and stabilizes a camera platform by means of a pair of servo motors
OUR GOAL Develop a system utilizing an FPGA Keep platform stabilized
Read GPS data, send positional instructions to servo motors to adjust platform
GPS point trackingSet camera angle at fixed location as
opposed to relative ground plane
ACTION!
HOW DOES IT DO THIS? The IMU takes measurements at a rate of 50Hz and
calculates required servo positions This information is then forwarded to the PWM
controller to update the servo motor positions It constantly polls for these updates, sending speed
calibration data from the GPS to the IMU, and adjusts camera angle
HOW DOES IT DO THIS? (con’t) Essential Matrix math
Normalize input vectors (frame orientation, and gimble orientation)
Project onto the frame servo’s rotational plane Calculate first servo rotation Transform frame orientation with new servo
position Project onto the second servo’s rotational plane Calculate second servo rotation and update servo
positions GPS parsing*
Reads in NMEA sentences and parses for relevant information
*Function completed in a desktop environment but not implemented in demo project
THE FPGA The initial design utilized an
FPGA as a reconfigurable microcontrollerCommunicates with Inertial Measurement
Unit (IMU), GPS, Flight Computer, and two servo motors
Sends information to servos via PWM controllers
SYSTEM VIEW (WITH FPGA)
UART SERIAL
UART SERIAL
UART SERIALGPS STREAM
FLIGHTCOMPUTER
USB TO SERIAL MicroBlaze
PWMCONTROLLER
SERVO ROLL
IMU
SERVO PITCH
OPTO-ISOLATOR
OPTO-ISOLATOR
Interrupt Controller
FPGA
SERVO CONTROLLER
INTERRUPT CONTROLLER
OUT <= IN1 or IN2 or IN3 or IN4
GPS INVOLVEMENT GPS information is fed through a UART
connection as a continuous stream We have parsing routines written to extract vital
information we need for the microcontrollerFix (Latitude/Longitude) converted to radiansAltitude [m]Speed [m/s]Speed bearing (direction of travel)
NMEA sentence:$GPGGA,123519,4807.038,N,01131.000,E,1,08,
0.9,545.4,M,46.9,M,,*47
OBSTACLES Difficult development environment to
interface our componentsUnfamiliar environment to create custom
hardware Numerous operating issues with some of
our componentsTwo IMU chips became unusable
○ one DOA, and a second spontaneously shortedFPGA breakout board came with pins un-
soldered
SYSTEM VIEW (WITH PROPELLER)
PROPELLER CHIP
GPS STREAM
FLIGHTCOMPUTER
USB TO SERIAL
SERVO ROLL
IMU
SERVO PITCH
OPTO-ISOLATOR
OPTO-ISOLATOR
SOFTWARE FLOW DIAGRAMMAIN
IMU HANDLER (CORE 1)
FLIGHT COMMUNICATOR (CORE 6)
UART (CORE 2)
GPS_HANDLER (CORE 6)
SERVO_API (CORE 0)
MATH_lib (CORE 0)
IMU BACKUP HANDLER (CORE 1)
SERVO Y
OPTO-ISOLATORS
ACC/GYRO
ADC
IMU
SERVO CONTROL (CORE 5)
FPU (CORE 3|4)
SPI_ADC (CORE 2)
UART (CORE 7) GPS SERVO X
FLIGHT COMPUTER
slow UART(CORE 6)
or
QUESTIONS?