1 of 23

AERIAL ROBOTICS

2 of 23

SUBSYSTEMS

  1. Flight Mechanics
    1. Motions of UAV
    2. Controls of aircraft
    3. Controls of rotorcraft
  2. Avionics
    • Electronics
    • Autopilot
      1. IMU
      2. Onboard Processor
    • Communications
  3. Vision based sensing
    • Image Processing
    • OpenCV
  4. Controller design
    • Basic control theory
    • PID controller
  5. Integration

SUBSYSTEMS

3 of 23

MOTIONS

UAV Axes of motion (NED frame)

MOTIONS

4 of 23

DRIVING FORCES

Forces on Aircraft

DRIVING FORCES

5 of 23

CONTROLS

of

ROTORCRAFT

CONTROLS of ROTORCRAFT

6 of 23

QUADROTOR

QUADROTOR

7 of 23

Inertial measurement unit

INERTIAL MEASUREMENT UNIT

Accelerometer

IMU

8 of 23

Inertial measurement unit

INERTIAL MEASUREMENT UNIT

Gyroscope

IMU

9 of 23

VISION

Computer Vision:

Input: Images

Output: Knowledge of the scene

Method: Image Processing, Machine Learning etc.

Image Processing:

Input: Images

Output: Images

Method: Differential Filtering, Thresholding etc.

VISION

10 of 23

  • Open source computer vision library.
  • Implemented in C/C++, python and Java.
  • Modules:
    • core module
    • imgproc module
    • highgui module
    • imgcodes module

https://docs.opencv.org/2.4/doc/tutorials/tutorials.html

OPENCV

11 of 23

  • Storage:
    • Mat img;
  • Input:
    • Img = imread(“/path_to_file”, CV_LOAD_IMAGE_COLOR);
  • Conversion:
    • cvtColor(img, img, CV_BGR2HSV);
  • GUI:
    • namedWindow(“image”, WINDOW_AUTOSIZE);
  • Output:
    • imwrite(“filename.jpg”, img);
    • imshow(“image”, img);

OPENCV

12 of 23

  • blur:
    • blur(img1, img2, kernel_size);
  • GaussianBlur:
    • GaussianBlur(img1,img2, kernel_size);
  • medianBlur:
    • medianBlur(img1, img2, kernel_size);
  • erode:
    • erode(img1, img2, kernel_size);
  • dilate:
    • dilate(img1, img2, kernel_size);

FILTERING

OPENCV

13 of 23

  • Thresholding creates binary images by turning all pixels below some threshold to zero and all pixels above to one.
  • threshold(img_gray, img_thresh, threshold_value, max_BINARY_value, threshold_type);
  • inRange(img_gray,img_thresh, lower_thresh, upper_thresh, frame_threshold);

THRESHOLDING

OPENCV

14 of 23

CONTROLLER

CONTROLLER

15 of 23

PID CONTROLLER

16 of 23

PID CONTROLLER

17 of 23

PID CONTROLLER

Effect of changing Kp

18 of 23

PID CONTROLLER

Effect of changing Kd

19 of 23

PID CONTROLLER

Effect of changing Ki

20 of 23

Servo Motor

SERVO CONTROLLER

21 of 23

  • Open-Source and freely available
  • Huge community and collaborative environment.
  • Language Independent (Python, C++, Java, JS, more…)
  • Thousands of available packages to use for robotics!!
  • Seamless integration with most of the open-source projects and libraries. Eg: OpenCV, Gazebo, Matlab(using Robotics System Toolbox), etc.
  • ROS is a distributed framework of processes (aka Nodes) that enables executables to be individually designed and loosely coupled at runtime.

ROBOT OS

But not an OS

ROBOT OS

22 of 23

ROS Computation Graph Level

Nodes

Master

Parameter Server

Bags

Topics

Services

Messages

ROBOT OS

23 of 23

Thank You!

For more information visit : https://aeromodelling-club.github.io/