lecture 8 part 1

18
Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 8.1: Visual Navigation with a Parrot Ardrone Jürgen Sturm Technische Universität München

Upload: akshay-babbar

Post on 06-Sep-2015

217 views

Category:

Documents


1 download

DESCRIPTION

autorobo

TRANSCRIPT

  • 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 2

  • 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 3

  • 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 4

  • 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 5

  • Example Architecture for Navigation

    Jrgen Sturm Autonomous Navigation for Flying Robots 6

    Robot Hardware

    Actuator driver(s) Sensor driver(s)

    Sensor interface(s) Actuator interface(s)

    Localization module Local path planning

    + collision avoidance

    Global path planning

    User interface / mission planning

  • Robot Operating System (ROS)

    http://www.ros.org/

    Installation instructions, tutorials, docs

    Jrgen Sturm Autonomous Navigation for Flying Robots 7

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    Jrgen Sturm Autonomous Navigation for Flying Robots 8

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    Jrgen Sturm Autonomous Navigation for Flying Robots 9

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

  • 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

    Jrgen Sturm Autonomous Navigation for Flying Robots 10

    Thread 1 (real-time)

    Thread 2 (not real-time)

    Track camera

    Optimize map Optimize map

    Track camera Track camera

    image image image

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    Jrgen Sturm Autonomous Navigation for Flying Robots 11

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

    3D feature positions and camera poses

    Visual features

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    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

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    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

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

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

    Jrgen Sturm Autonomous Navigation for Flying Robots 14

    Last visual observation

    Last IMU observation

    Now Command received

  • Camera-based Navigation [Engel, Sturm, Cremers; IROS 2012; RAS 2014]

    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

    Monocular SLAM Extended Kalman

    Filter PID Control

    Quadrocopter

    Control @100Hz

    Video @18Hz

    IMU @200Hz

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

    Jrgen Sturm Autonomous Navigation for Flying Robots 16

    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

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

    Jrgen Sturm Autonomous Navigation for Flying Robots 17

    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

  • 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