ROS navigation stack Costmaps Localization Sending goal commands (from rviz) (C)2016 Roi Yehoshua

Similar documents
Teaching Assistant: Roi Yehoshua

ROBOT NAVIGATION ROBOTICS

Individual Lab Report #6. Pratik Chatrath. Team A / Team Avengers. Teammates: Tushar Agrawal, Sean Bryan. January 28, 2016

RoboCup Rescue Summer School Navigation Tutorial

Using the ikart mobile platform

ROS Navigation Tuning Guide

mmwave sensors in robotics: technical deep dive

Visual Navigation for Flying Robots. Motion Planning

F1/10 th Autonomous Racing. Localization. Nischal K N

Rigid Body Transformations

Navigation methods and systems

Autonomous Navigation of Humanoid Using Kinect. Harshad Sawhney Samyak Daga 11633

Robot Mapping. A Short Introduction to the Bayes Filter and Related Models. Gian Diego Tipaldi, Wolfram Burgard

Humanoid Robotics. Monte Carlo Localization. Maren Bennewitz

Monte Carlo Localization using Dynamically Expanding Occupancy Grids. Karan M. Gupta

Single robot coverage of the Piazza Bra map Artificial Intelligence project (2011/2012)

Spring Localization II. Roland Siegwart, Margarita Chli, Juan Nieto, Nick Lawrance. ASL Autonomous Systems Lab. Autonomous Mobile Robots

Robot Motion Control Matteo Matteucci

Today MAPS AND MAPPING. Features. process of creating maps. More likely features are things that can be extracted from images:

IROS 05 Tutorial. MCL: Global Localization (Sonar) Monte-Carlo Localization. Particle Filters. Rao-Blackwellized Particle Filters and Loop Closing

Basics of Localization, Mapping and SLAM. Jari Saarinen Aalto University Department of Automation and systems Technology

Spring Localization II. Roland Siegwart, Margarita Chli, Martin Rufli. ASL Autonomous Systems Lab. Autonomous Mobile Robots

Practical Course WS12/13 Introduction to Monte Carlo Localization

Advanced Robotics Path Planning & Navigation

NERC Gazebo simulation implementation

Probabilistic Robotics

Racing Robot Path Planning: Algorithmic Design and Experimental Validation

Localization and Map Building

Cognitive Robotics Robot Motion Planning Matteo Matteucci

COS Lecture 13 Autonomous Robot Navigation

Overview. EECS 124, UC Berkeley, Spring 2008 Lecture 23: Localization and Mapping. Statistical Models

Laser, Kinect, Gmapping, Localization, PathPlanning

Scan Matching. Pieter Abbeel UC Berkeley EECS. Many slides adapted from Thrun, Burgard and Fox, Probabilistic Robotics

Advanced Robotics Path Planning & Navigation

Revising Stereo Vision Maps in Particle Filter Based SLAM using Localisation Confidence and Sample History

Probabilistic Robotics

Final Project Report: Mobile Pick and Place

Robot Motion Planning

Localization and Map Building

Team Description Paper Team AutonOHM

3D Collision Avoidance for Navigation in Unstructured Environments

Kaijen Hsiao. Part A: Topics of Fascination

Probabilistic Robotics

W4. Perception & Situation Awareness & Decision making

Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS

Robotics. Chapter 25. Chapter 25 1

Robotics. Lecture 5: Monte Carlo Localisation. See course website for up to date information.

Final Exam Practice Fall Semester, 2012

Teaching Assistant: Roi Yehoshua

Robotics. Chapter 25-b. Chapter 25-b 1

Where s the Boss? : Monte Carlo Localization for an Autonomous Ground Vehicle using an Aerial Lidar Map

Proceedings of the 2016 Winter Simulation Conference T. M. K. Roeder, P. I. Frazier, R. Szechtman, E. Zhou, T. Huschka, and S. E. Chick, eds.

Mapping, Localization and Navigation Improvements by Using Manipulated Floor Plan and ROS-Based Mobile Robot Parameters

Matching Evaluation of 2D Laser Scan Points using Observed Probability in Unstable Measurement Environment

Robot Mapping. SLAM Front-Ends. Cyrill Stachniss. Partial image courtesy: Edwin Olson 1

Vision-Only Autonomous Navigation Using Topometric Maps

Probabilistic Robotics

Motion Planning. Howie CHoset

Building Reliable 2D Maps from 3D Features

AUTONOMOUS SYSTEMS. LOCALIZATION, MAPPING & SIMULTANEOUS LOCALIZATION AND MAPPING Part V Mapping & Occupancy Grid Mapping

Zürich. Roland Siegwart Margarita Chli Martin Rufli Davide Scaramuzza. ETH Master Course: L Autonomous Mobile Robots Summary

SLAM: Robotic Simultaneous Location and Mapping

Lecture: Autonomous micro aerial vehicles

A ROS REACTIVE NAVIGATION SYSTEM FOR GROUND VEHICLES BASED ON TP-SPACE TRANSFORMATIONS

CANAL FOLLOWING USING AR DRONE IN SIMULATION

REPORT OF ROBOTICS, VOL. 6, NO. 1, JANUARY Full Speed Jackal

Particle Filter Localization

Localization, Mapping and Exploration with Multiple Robots. Dr. Daisy Tang

IMPROVED LASER-BASED NAVIGATION FOR MOBILE ROBOTS

Implementation of Odometry with EKF for Localization of Hector SLAM Method

Particle Filters. CSE-571 Probabilistic Robotics. Dependencies. Particle Filter Algorithm. Fast-SLAM Mapping

Long-Term Online Multi-Session Graph-Based SPLAM with Memory Management

Artificial Intelligence for Robotics: A Brief Summary

Investigating Simultaneous Localization and Mapping for AGV systems

Probabilistic Robotics. FastSLAM

PROMETHEUS: WPI s 2012 ENTRY TO IGVC. Authors: Craig DeMello Robotics Engineering. Eric Fitting. Taskin Padir. Samson King.

L17. OCCUPANCY MAPS. NA568 Mobile Robotics: Methods & Algorithms

Simultaneous Localization and Mapping (SLAM)

Multi-robot collision avoidance with localization uncertainty

Autonomous Mobile Robots, Chapter 6 Planning and Navigation Where am I going? How do I get there? Localization. Cognition. Real World Environment

Planning for Simultaneous Localization and Mapping using Topological Information

Introduction to Mobile Robotics Path Planning and Collision Avoidance

Introduction to Mobile Robotics Techniques for 3D Mapping

Robotic exploration for mapping and change detection

Introduction to the Robot Operating System (ROS)

CS 309: Autonomous Intelligent Robotics FRI I. Lecture 18: Coordinate Frames TF2 Alvar. Instructor: Justin Hart

Set up and Foundation of the Husky

L10. PARTICLE FILTERING CONTINUED. NA568 Mobile Robotics: Methods & Algorithms

Introduction to Mobile Robotics Path Planning and Collision Avoidance. Wolfram Burgard, Maren Bennewitz, Diego Tipaldi, Luciano Spinello

DEALING WITH SENSOR ERRORS IN SCAN MATCHING FOR SIMULTANEOUS LOCALIZATION AND MAPPING

Autonomous Navigation of Nao using Kinect CS365 : Project Report

Simultaneous Localization and Mapping

Introduction to robot algorithms CSE 410/510

CSE 490R P1 - Localization using Particle Filters Due date: Sun, Jan 28-11:59 PM

Dude, Where s My Robot? A Localization Challenge for Undergraduate Robotics

Managing a Fleet of Autonomous Mobile Robots (AMR) using Cloud Robotics Platform

COMPLETE AND SCALABLE MULTI-ROBOT PLANNING IN TUNNEL ENVIRONMENTS. Mike Peasgood John McPhee Christopher Clark

Motion Planning. Howie CHoset

EKF Localization and EKF SLAM incorporating prior information

LAIR. UNDERWATER ROBOTICS Field Explorations in Marine Biology, Oceanography, and Archeology

Transcription:

ROS navigation stack Costmaps Localization Sending goal commands (from rviz)

Robot Navigation One of the most basic things that a robot can do is to move around the world. To do this effectively, the robot needs to know where it is and where it should be going This is usually achieved by giving the robot a map of the world, a starting location, and a goal location We ll look at how to make your robot autonomously navigate from one part of the world to another, using the map and the ROS navigation packages

ROS Navigation Stack http://wiki.ros.org/navigation The goal of the navigation stack is to move a robot from one position to another position safely (without crashing or getting lost) It takes in information from the odometry and sensors, and a goal pose and outputs safe velocity commands that are sent to the robot ROS Navigation Introductory Video

Overview of ROS Navigation

ROS Navigation Stack

Navigation Stack Main Components Package/Component map_server gmapping amcl global_planner local_planner move_base Description offers map data as a ROS Service provides laser-based SLAM a probabilistic localization system implementation of a fast global planner for navigation implementations of the Trajectory Rollout and Dynamic Window approaches to local robot navigation links together the global and local planner to accomplish the navigation task

Navigation Main Steps Goal AMCL Path Planner move_base /cmd_vel + /odom Base Controller

Install Navigation Stack The navigation stack is not part of the standard ROS Indigo installation To install the navigation stack type: $ sudo apt-get install ros-indigo-navigation

Navigation Stack Requirements Three main hardware requirements The navigation stack can only handle a differential drive and holonomic wheeled robots It can also do certain things with biped robots, such as localization, as long as the robot does not move sideways A planar laser must be mounted on the mobile base of the robot to create the map and localization Alternatively, you can generate something equivalent to laser scans from other sensors (Kinect for example) Its performance will be best on robots that are nearly square or circular

Navigation Planners Our robot will move through the map using two types of navigation global and local The global planner is used to create paths for a goal in the map or a far-off distance The local planner is used to create paths in the nearby distances and avoid obstacles

Global Planner NavFn provides a fast interpolated navigation function that creates plans for a mobile base The global plan is computed before the robot starts moving toward the next destination The planner operates on a costmap to find a minimum cost plan from a start point to an end point in a grid, using Dijkstra s algorithm The global planner generates a series of waypoints for the local planner to follow

Local Planner Chooses appropriate velocity commands for the robot to traverse the current segment of the global path Combines sensory and odometry data with both global and local cost maps Can recomputethe robot's path on the fly to keep the robot from striking objects yet still allowing it to reach its destination Implements the Trajectory Rollout and Dynamic Window algorithm

Trajectory Rollout Algorithm Taken from ROS Wiki http://wiki.ros.org/base_local_planner

Trajectory Rollout Algorithm 1. Discretely sample in the robot's control space (dx,dy,dθ) 2. For each sampled velocity, perform forward simulation from the robot's current state to predict what would happen if the sampled velocity were applied for some (short) period of time 3. Evaluate each trajectory resulting from the forward simulation, using a metric that incorporates characteristics such as: proximity to obstacles, proximity to the goal, proximity to the global path, and speed 4. Discard illegal trajectories (those that collide with obstacles) 5. Pick the highest-scoring trajectory and send the associated velocity to the mobile base 6. Rinse and repeat

Local Planner Parameters The file base_local_planner.yaml contains a large number of ROS Parameters that can be set to customize the behavior of the base local planner Grouped into several categories: robot configuration goal tolerance forward simulation trajectory scoring oscillation prevention global plan

Map Grid In order to score trajectories efficiently, a Map Grid is used. For each control cycle, a grid is created around the robot (the size of the local costmap), and the global path is mapped onto this area. This means certain of the grid cells will be marked with distance 0 to a path point, and distance 0 to the goal. A propagation algorithm then efficiently marks all other cells with their Manhattan distance to the closest of the points marked with zero. (C)2013 Roi Yehoshua

Oscillation Suppression Oscillation occur when in either of the x, y, or theta dimensions, positive and negative values are chosen consecutively. To prevent oscillations, when the robot moves in any direction, for the next cycles the opposite direction is marked invalid, until the robot has moved beyond a certain distance from the position where the flag was set. (C)2013 Roi Yehoshua

Scoring Trajectories

Costmap A data structure that represents places that are safe for the robot to be in a grid of cells It is based on the occupancy grid map of the environment and user specified inflation radius There are two types of costmaps in ROS: Global costmap is used for global navigation Local costmap is used for local navigation Each cell in the costmaphas an integer value in the range [0 (FREE_SPACE), 255 (UNKNOWN)] Managed by the costmap_2d package

Costmap Example Taken from ROS Wiki http://wiki.ros.org/costmap_2d

Inflation Inflation is the process of propagating cost values out from occupied cells that decrease with distance

Map Updates The costmapperforms map update cycles at the rate specified by theupdate_frequency parameter In each cycle: sensor data comes in marking and clearing operations are perfomed in the underlying occupancy structure of the costmap this structure is projected into the costmap where the appropriate cost values are assigned as described above obstacle inflation is performed on each cell with a LETHAL_OBSTACLE value This consists of propagating cost values outwards from each occupied cell out to a user-specified inflation radius

Costmap Parameters Files Configuration of the costmaps consists of three files: costmap_common_params.yaml global_costmap_params.yaml local_costmap_params.yaml http://wiki.ros.org/costmap_2d/hydro/obstacles

Navigasyon Video

Localization Localization is the problem of estimating the pose of the robot relative to a map Localization is not terribly sensitive to the exact placement of objects so it can handle small changes to the locations of objects ROS uses the amcl package for localization (C)2015 Roi Yehoshua

AMCL amcl is a probabilistic localization system for a robot moving in 2D It implements the adaptive Monte Carlo localization approach, which uses a particle filter to track the pose of a robot against a known map The algorithm and its parameters are described in the book Probabilistic Robotics by Thrun, Burgard, and Fox (http://www.probabilistic-robotics.org/) Currently amcl works only with laser scans However, it can be extended to work with other sensors (C)2015 Roi Yehoshua

AMCL amcl takes in a laser-based map, laser scans, and transform messages, and outputs pose estimates Subscribed topics: scan Laser scans tf Transforms initialpose Mean and covariance with which to (re-) initialize the particle filter map the map used for laser-based localization Published topics: amcl_pose Robot's estimated pose in the map, with covariance. Particlecloud The set of pose estimates being maintained by the filter (C)2015 Roi Yehoshua

move_base The move_base package lets you move a robot to desired positions using the navigation stack The move_base node links together a global and local planner to accomplish its navigation task It may optionally perform recovery behaviors when the robot perceives itself as stuck

P3AT Navigation Navigation package includes demos of map building using gmapping and localization with amcl, while running the navigation stack In nav_params subdirectory it contains configuration files for P3AT navigation Sizin uygulamanızda nav_params klasöründeki parametreler değiştirilerek testler yapılacak.

Navigation Configuration Files Configuration File global_planner_params.yaml navfn_global_planner_params.ya ml dwa_local_planner_params.yaml costmap_common_params.yaml global_costmap_params.yaml local_costmap_params.yaml move_base_params.yaml amcl.launch.xml Description global planner configuration navfn configuration local planner configuration costmap configuration files move base configuration amcl configuration

rviz allows you to: rviz with Navigation Stack Provide an approximate location of the robot (when starting up, the robot doesn t know where it is) Send goals to the navigation stack Display all the visualization information relevant to the navigation (planned path, costmap, etc.)

rviz with Navigation Stack

Localize the Robot When starting up the robot doesn't know where it is For example, let s move the robot in Gazebo to (-1,-2) Now to provide it its approximate location on the map: Click the "2D Pose Estimate" button Click on the map where the robot approximately is and drag in the direction the robot is pointing You will see a collection of arrows which are hypotheses of the position of the robot The laser scan should line up approximately with the walls in the map If things don't line up well you can repeat the procedure

Localize the Robot

Localize the Robot

Localize the Robot

Localize the Robot You can change the current view (on right panel):

Particle Cloud in rviz The Particle Cloud display shows the particle cloud used by the robot's localization system The spread of the cloud represents the localization system's uncertainty about the robot's pose As the robot moves about the environment, this cloud should shrink in size as additional scan data allows amcl to refine its estimate of the robot's position and orientation To watch the particle cloud in rviz: Click Add Display and choose Pose Array Set topic name to /particlecloud

Send a Navigation Goal With the robot localized, it can then autonomously plan through the environment To send a goal: Click the "2D NavGoal" button Click on the map where you want the robot to drive and drag in the direction where it should be pointing at the end If you want to stop the robot before it reaches it's goal, send it a goal at it's current location

Send a Navigation Goal

Robot Moves to Destination

Final Pose

Final Pose In Gazebo

Navigation Plans in rviz NavFn Plan Displays the full plan for the robot computed by the global planner Topic: /move_base_node/navfnros/plan Global Plan Shows the portion of the global plan that the local planner is currently pursuing Topic: /move_base_node/trajectoryplannerros/global_plan Local Plan Shows the trajectory associated with the velocity commands currently being commanded to the base by the local planner Topic: /move_base_node/trajectoryplannerros/local_plan

Navigation Plans in rviz NavFn Plan Local Plan Global Plan