Lecture 8 Part 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Computer Vision Group

Prof. Daniel Cremers

Autonomous Navigation for Flying Robots


Lecture 8.1:
Visual Navigation
with a Parrot Ardrone
Jrgen Sturm
Technische Universitt Mnchen

Parrot Ardrone

Low-cost platform (300 USD)


Controllable via wifi
API is open-source
Many language bindings
C/C++
Python
JavaScript

Jrgen Sturm

Autonomous Navigation for Flying Robots

Software Architecture for Robotics


Robots became rather complex systems
Often, a large set of individual capabilities is needed
Flexible composition of different capabilities for different
tasks

Jrgen Sturm

Autonomous Navigation for Flying Robots

Best Practices for Robot Architectures

Modular
Robust
De-centralized
Facilitate software re-use
Hardware and software abstraction
Provide introspection
Data logging and playback
Easy to learn and to extend

Jrgen Sturm

Autonomous Navigation for Flying Robots

Robotic Middleware

Provides infrastructure
Communication between modules
Data logging facilities
Tools for visualization
Several systems available
Open-source: ROS (Robot Operating System),
Player/Stage, CARMEN, YARP, OROCOS
Closed-source: Microsoft Robotics Studio

Jrgen Sturm

Autonomous Navigation for Flying Robots

Example Architecture for Navigation


User interface /
mission planning

Global path planning

Localization module

Local path planning


+ collision avoidance

Sensor interface(s)

Actuator interface(s)

Sensor driver(s)

Actuator driver(s)

Robot Hardware
Jrgen Sturm

Autonomous Navigation for Flying Robots

Robot Operating System (ROS)


http://www.ros.org/
Installation instructions, tutorials, docs

Jrgen Sturm

Autonomous Navigation for Flying Robots

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

Jrgen Sturm

IMU
@200Hz
Extended Kalman
Filter

Autonomous Navigation for Flying Robots

Control
@100Hz
PID Control

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

Jrgen Sturm

IMU
@200Hz
Extended Kalman
Filter

Autonomous Navigation for Flying Robots

Control
@100Hz
PID Control

Monocular SLAM
Based on PTAM library [Klein and Murray, ISMAR 2007]
Visual SLAM
Match visual features between keyframes
Optimize camera poses and 3D feature points
Optimized for dual cores, highly efficient, open-source
image

Thread 1 (real-time)
Thread 2 (not real-time)
Jrgen Sturm

image

Track camera
Optimize map

Track camera

image

Track camera
Optimize map

Autonomous Navigation for Flying Robots

10

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

Visual features

Jrgen Sturm

IMU
@200Hz
Extended Kalman
Filter

Control
@100Hz
PID Control

3D feature positions
and camera poses

Autonomous Navigation for Flying Robots

11

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

IMU
@200Hz
Extended Kalman
Filter

Control
@100Hz
PID Control

Based on PTAM
Our contributions:
Enhanced reliability by incorporating IMU into PTAM
Maximum likelihood scale estimation from ultrasound
altimeter and IMU
Jrgen Sturm

Autonomous Navigation for Flying Robots

12

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

IMU
@200Hz
Extended Kalman
Filter

Control
@100Hz
PID Control

Input: PTAM estimate, IMU, controls


Output: pose estimate
State vector:
Full, calibrated model of the flight dynamics
Delay compensation (~200ms)

Jrgen Sturm

Autonomous Navigation for Flying Robots

13

Time Delays
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]

Last visual
observation
Jrgen Sturm

Last IMU
observation

Autonomous Navigation for Flying Robots

Now

Command
received
14

Camera-based Navigation
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]
Quadrocopter
Video
@18Hz
Monocular SLAM

IMU
@200Hz
Extended Kalman
Filter

Control
@100Hz
PID Control

Based on predicted state from EKF


Approach and hold target position
High level control:
Hold position, assisted control,
follow waypoints
Jrgen Sturm

Autonomous Navigation for Flying Robots

15

Results
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]

Camera-Based Navigation of a Low-Cost Quadrocopter (J. Engel, J. Sturm, D. Cremers), In Proc. of the International Conference on Intelligent Robot Systems (IROS),
2012. http://youtu.be/tZxlDly7lno

Jrgen Sturm

Autonomous Navigation for Flying Robots

16

Results
[Engel, Sturm, Cremers; IROS 2012; RAS 2014]

Camera-Based Navigation of a Low-Cost Quadrocopter (J. Engel, J. Sturm, D. Cremers), In Proc. of the International Conference on Intelligent Robot Systems (IROS),
2012. http://youtu.be/eznMokFQmpc

Jrgen Sturm

Autonomous Navigation for Flying Robots

17

Lessons Learned

Parrot Ardrone
ROS as a middleware
Monocular SLAM with PTAM
Example: Visual navigation with the Parrot Ardrone
Fast & accurate navigation (with up to 2 m/s)
Source code available on
http://www.ros.org/wiki/tum_ardrone

Jrgen Sturm

Autonomous Navigation for Flying Robots

18

You might also like