Robot Building Lab: Off-board Map Building and Path Planning Demo: Find Goal, Build Map  Record initial position  Head toward goal light, avoiding and.

Slides:



Advertisements
Similar presentations
Reactive and Potential Field Planners
Advertisements

Lecture 7: Potential Fields and Model Predictive Control
Sensor Based Planners Bug algorithms.
Motion Planning for Point Robots CS 659 Kris Hauser.
Sonar and Localization LMICSE Workshop June , 2005 Alma College.
The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering.
CSE 380 – Computer Game Programming Pathfinding AI
University of Amsterdam Search, Navigate, and Actuate - Quantitative Navigation Arnoud Visser 1 Search, Navigate, and Actuate Quantative Navigation.
Motion planning, control and obstacle avoidance D. Calisi.
DESIGN OF A GENERIC PATH PATH PLANNING SYSTEM AILAB Path Planning Workgroup.
Active SLAM in Structured Environments Cindy Leung, Shoudong Huang and Gamini Dissanayake Presented by: Arvind Pereira for the CS-599 – Sequential Decision.
Understand the football simulation source code. Understand the football simulation source code. Learn all the technical specifications of the system components.
Autonomous Robot Navigation Panos Trahanias ΗΥ475 Fall 2007.
Robotics R&N: ch 25 based on material from Jean- Claude Latombe, Daphne Koller, Stuart Russell.
Efficient Path Determining Robot Jamie Greenberg Jason Torre.
Autonomous Mobile Robots CPE 470/670 Lecture 8 Instructor: Monica Nicolescu.
Randomized Motion Planning for Car-like Robots with C-PRM Guang Song, Nancy M. Amato Department of Computer Science Texas A&M University College Station,
City College of New York 1 Dr. John (Jizhong) Xiao Department of Electrical Engineering City College of New York Robot Motion Planning.
Extended Potential Field Method Adam A. Gonthier MEAM 620 Final Project 3/19/2006.
CS 326A: Motion Planning Basic Motion Planning for a Point Robot.
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
Behavior- Based Approaches Behavior- Based Approaches.
Efficient Path Determining Robot RIT Computer Engineering Senior Design Project Jamie Greenberg Jason Torre October 26, 2004 A motorized robot will navigate.
STC Robot Optimally Covering an Unknown Indoor Environment Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein.
Introduction to Robot Motion Planning. Example A robot arm is to build an assembly from a set of parts. Tasks for the robot: Grasping: position gripper.
The City College of New York 1 Dr. John (Jizhong) Xiao Department of Electrical Engineering City College of New York Mobile Robot Mapping.
Geometric Probing with Light Beacons on Multiple Mobile Robots Sarah Bergbreiter CS287 Project Presentation May 1, 2002.
June 12, 2001 Jeong-Su Han An Autonomous Vehicle for People with Motor Disabilities by G. Bourhis, O.Horn, O.Habert and A. Pruski Paper Review.
ROBOT LOCALISATION & MAPPING: MAPPING & LIDAR By James Mead.
Abstract Design Considerations and Future Plans In this project we focus on integrating sensors into a small electrical vehicle to enable it to navigate.
Lab 3 How’d it go?.
Localisation & Navigation
9/14/2015CS225B Kurt Konolige Locomotion of Wheeled Robots 3 wheels are sufficient and guarantee stability Differential drive (TurtleBot) Car drive (Ackerman.
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
© Manfred Huber Autonomous Robots Robot Path Planning.
Autonomous Robot Project Lauren Mitchell Ashley Francis.
CS 8903 Demo Wireless Interface for the Bioloid Robot Chetna Kaur.
Path Planning for a Point Robot
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
The George Washington University Department of ECE ECE 1010 Intro: Electrical & Computer Engineering –Introducing KIPR Link/Interface and Set-up –Continuation.
Robot Building Lab: Localization and Mapping Collision Detection and Obstacle Avoidance Using Sonar  Have continuously running task update obstacle state:
Wandering Standpoint Algorithm. Wandering Standpoint Algorithm for local path planning Description: –Local path planning algorithm. Required: –Local distance.
Robot Building Lab: Localization DEMO  Show us your working differential drive robot  Start it running a fixed pattern that includes –Forward –Backward.
Real-Time Simultaneous Localization and Mapping with a Single Camera (Mono SLAM) Young Ki Baik Computer Vision Lab. Seoul National University.
UNC Chapel Hill M. C. Lin Introduction to Motion Planning Applications Overview of the Problem Basics – Planning for Point Robot –Visibility Graphs –Roadmap.
Robotics Club: 5:30 this evening
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4/Lab3.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Robotics Chapter 5 – Path and Trajectory Planning
Autonomous Robots Robot Path Planning (3) © Manfred Huber 2008.
ROBOTC Software EV3 Robot Workshop
BEGINNER FLL PROGRAMMING WORKSHOP BY DROIDS ROBOTICS & EV3LESSONS.
Autonomous Mobile Robots Autonomous Systems Lab Zürich Probabilistic Map Based Localization "Position" Global Map PerceptionMotion Control Cognition Real.
Electronic instrumentation Digitization of Analog Signal in TD
CS b659: Intelligent Robotics
Schedule for next 2 weeks
Real-time Wall Outline Extraction for Redirected Walking
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Motion Planning for a Point Robot (2/2)
Locomotion of Wheeled Robots
Robust Belief-based Execution of Manipulation Programs
Probabilistic Map Based Localization
Compiled from various Internet sources Presented by Mr. Hatfield
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Robotics meet Computer Science
Planning.
Classic Motion Planning Methods
Presentation transcript:

Robot Building Lab: Off-board Map Building and Path Planning Demo: Find Goal, Build Map  Record initial position  Head toward goal light, avoiding and reacting to obstacles  Take sonar sweeps and odometry readings and build map as you move  Fix odometry errors with landmarks (using ground sensors)  Keep track of landmarks and stop after counting 4 landmarks  Output map to host  View graphically  Graded based on quality of map in successive regions 4ft 5ft

Robot Building Lab: Off-board Map Building and Path Planning Lab 9 Off-board Map Building and Path Planning es/robotlab/labs/lab09.pdf

Robot Building Lab: Off-board Map Building and Path Planning In-Class: Find Goal, Build Map  Record initial position  Head toward goal light, avoiding and reacting to obstacles  Take sonar sweeps and odometry readings and build map as you move –Send readings to PC (sweep of readings plus x,y, theta) –Build map on PC  Fix odometry errors with landmarks (using ground sensors)  Keep track of landmarks and stop after counting 4 landmarks  View map graphically on PC 4ft 5ft

Robot Building Lab: Off-board Map Building and Path Planning Final Exam Demo: Build Map Dynamically and Use to Find Best Path to Target 4ft 5ft  Record initial position  Head toward target location  Take sonar sweeps and odometry readings and build map as you move –Send readings to PC (sweep of readings plus x,y, theta) –Build map on PC  Fix odometry errors with landmarks (using ground sensors)  Use map on PC to continually send new movement vectors to robot  Head toward new movement direction, avoiding and reacting to obstacles (if needed)  Stop at target location  View map graphically on PC (extra credit for showing changes to map dynamically, in real-time)

Robot Building Lab: Off-board Map Building and Path Planning Today  Review global sonar maps  Review kinematics  Full duplex serial communication for off- board planning and control  Dynamic path planning with global maps

Robot Building Lab: Off-board Map Building and Path Planning Grid-based Algorithm  Superimpose “grid” on robot field of view  Indicate some measure of “obstacleness” in each grid cell based on sonar readings

Robot Building Lab: Off-board Map Building and Path Planning Using Sonar to Create Local Maps What should we conclude if this sonar reads 10 feet? there is something somewhere around here there isn’t something here 10 feet Local Map unoccupied occupied or... no information (Courtesy of Dodds) (From Borenstein et. Al.)

Robot Building Lab: Off-board Map Building and Path Planning Building a Global Map The key to making accurate maps is combining lots of data. But combining these numbers means we have to know what they are ! What should our map contain ? small cells each represents a bit of the robot’s environment larger values => obstacle smaller values => free (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Building a Global Map with Vector Field Histogram  Faster than using probabilities  Makes assumptions and approximations  Uses certainty values in each grid cell rather than occupancy probabilities  Rather than update all cells in range, only those on line of sight of sensor are updated with increment if near range reading and decrement below range reading  Cells bounded below and above (eg 0,10)  Key observation: by taking rapid readings, this method approximates a probability distribution by sampling the real world

Robot Building Lab: Off-board Map Building and Path Planning Global Map Building Process  Re-evaluate position with odometry as robot moves  Decay values over time (From Borenstein et. Al.)

Robot Building Lab: Off-board Map Building and Path Planning Displaying Global Map of Occupancy Values on Host bin/legorobots/occgrid.cgi bin/legorobots/occgrid.cgi

Robot Building Lab: Off-board Map Building and Path Planning Today  Review global sonar maps  Review kinematics  Full duplex serial communication for off- board planning and control  Dynamic path planning with global maps

Robot Building Lab: Off-board Map Building and Path Planning Review: Forward Kinematics  Given: Starting pose (x,y,theta), Motor commands  Compute: Ending pose (x’,y’,theta’)  Assume encoders mounted on drive motors  Let –Cm = encoder count to linear displacement conversion factor –Dn = wheel diameter –Ce = encoder pulses per revolution –N = gear ratio  Cm =  Dn / N Ce  Incremental travel distance for left wheel = Cm NL (NL = encoder counts on left wheel)  Incremental travel distance for right wheel = Cm NR (NR = encoder counts on right wheel)  That’s all we need for determining horizontal displacement and rotation from encoder counts

Robot Building Lab: Off-board Map Building and Path Planning Differential Drive Odometry/Kinematics  DL = distance traveled by left wheel  DR = distance traveled by right wheel Distance traveled by center point of robot is then D = (DR+DL)/2 Change in orientation Dtheta is then (DR – DL)/base New orientation is then theta’=theta + Dtheta If old robot position is x,y new robot position is now x’ = x + D cos theta’ y’ = y + D sin theta’

Robot Building Lab: Off-board Map Building and Path Planning Review: Localization using Kinematics  Need to know robot location during sonar sweep in order to know how to update Global Map  Issue: We can’t tell direction from encoders alone  Solution: Keep track of forward/backward motor command sent to each wheel  Localization program: Build new arrays into behavior/priority-based controller and use to continually update location

Robot Building Lab: Off-board Map Building and Path Planning Today  Review global sonar maps  Review kinematics  Full duplex serial communication for off- board planning and control  Dynamic path planning with global maps

Robot Building Lab: Off-board Map Building and Path Planning Review: Serial Communication Modes  Collect sensor data on Handy Board  Upload to PC host, either 1.Batch mode: program stores data on Handy Board and later writes to host using serial line 2.Real-time data collection: program on Handy Board writes data directly to serial line during data collection activities 3.On-line interaction: programs active on both Handy Board and Host communicate with each other over serial line (copyright Prentice Hall 2001)

Robot Building Lab: Off-board Map Building and Path Planning Real-Time Interaction  No longer using terminal program  Replacing terminal program with C++ code to monitor serial port and send/receive data  Adding functions to HandyBoard to implement communications protocol with new Host program  (We also have Java code available)

Robot Building Lab: Off-board Map Building and Path Planning Andrew’s Serial Comms API PC-side - Setup  Include “pcSerial.h” into your c++ program.  Constructor: pcSerial();  Destructor: ~pcSerial();

Robot Building Lab: Off-board Map Building and Path Planning Andrew’s Serial Comms API PC-side – Write to HandyBoard  Write byte (unsigned char) or integer to Handyboard over serial line. –void writeByte(BYTE c); –void writeInt(int i); // not working   Write an Array to the Handyboard (not yet working) –void writeArray(int data[], int sizeOf);

Robot Building Lab: Off-board Map Building and Path Planning Andrew’s Serial Comms API PC-side – Read from HandyBoard  Read byte (unsigned char) or integer from Handyboard over serial line. –BYTE readByte(); –int readInt();  Read an Array of integers from the Handyboard  Needs array and size of array –void readArray(int data[], int sizeOf);

Robot Building Lab: Off-board Map Building and Path Planning Andrew’s Serial Comms API HandyBoard-side – Read from PC  Read a char or int from the PC –char serial_readByte() –int serial_readInt() (not working yet!)  Read an Array from the PC (Not yet working) –void serial_readArray(int data[], int sizeOf)

Robot Building Lab: Off-board Map Building and Path Planning Andrew’s Serial Comms API HandyBoard-side – Write to PC  Write a char or int to the PC –void serial_writeByte(int A) –void serial_writeInt(int A)  Write an Array to the PC –void serial_writeArray(int A[], int sizeOf)

Robot Building Lab: Off-board Map Building and Path Planning To Read/Write One Int at a Time This code goes into the handyboard main() int c = 500; start_press(); while(1){ serial_writeInt(c); msleep(5L);} This code goes into the pc main() int b; pcSerial S; while(1){ b = S.readInt(); cout << "b = " << b << endl;}

Robot Building Lab: Off-board Map Building and Path Planning To Read/Write Array of Ints This code goes into the handyboard main() char c; int i; int a[90] ; start_press(); for(i=0;i<90;i++){ a[i] =1000+i;} printf("writeArray"); serial_writeArray(a, 90); This code goes into the pc main() int A[90]; pcSerial S; cout << "S.readArray " << endl; S.readArray(A,90); cout << "S.readArray done " << endl; for(int j =0; j<90; j++){ cout << "A[" <<j << "] = " << A[j] << endl;}

Robot Building Lab: Off-board Map Building and Path Planning Running the code: sending data from the handyboard to the pc  Start the handyboard. –Handyboard sends garbage over the serial line when it is first turned on.  Start the PC program.  Press Start on the handyboard and the data will be sent to the PC

Robot Building Lab: Off-board Map Building and Path Planning Running the code: sending data from the pc to the handyboard  Start the Handyboard.  Press the start button. –Handyboard will wait for data to be sent to it.  Start the PC program and the data will be sent to the handyboard.

Robot Building Lab: Off-board Map Building and Path Planning Today  Review global sonar maps  Review kinematics  Full duplex serial communication for off- board planning and control  Dynamic path planning with global maps

Robot Building Lab: Off-board Map Building and Path Planning Off-board Map Building and Path Planning  How does the robot use Global Map + Target location to choose current heading?  Closing the Loop

Robot Building Lab: Off-board Map Building and Path Planning Review: Closed-loop Control  Drive parallel to wall  Feedback from proximity sensors (e.g. bump, IR, sonar)  Feedback loop, continuous monitoring and correction of motors -- adjusting distance to wall to maintain goal distance (Courtesy of Bennet)

Robot Building Lab: Off-board Map Building and Path Planning Host-HandyBoard Map Building, Path Planning and Control

Robot Building Lab: Off-board Map Building and Path Planning Path Planning Using Maps The motion planning problem consists of the following: InputOutput geometric descriptions of a robot and its environment (obstacles) initial and goal configurations a path from start to finish (or the recognition that none exists) q goal q robot Applications Robot-assisted surgery Automated assembly plans Drug-docking and analysis Moving pianos around... (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Roadmap approaches Visibility graphs In a polygonal (or polyhedral) configuration space, construct all of the line segments that connect vertices to one another (and that do not intersect the obstacles themselves). Converts the problem into one of graph search. Dijkstra’s algorithm O(N^2) N = the number of vertices in C. Space (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Roadmap approaches Full visibility graph Reduced visibility graph, i.e., not including segments that extend into obstacles on either side. Visibility graphs (but keeping endpoints’ roads) (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Visibility graph drawbacks Visibility graphs do not preserve their optimality in higher dimensions: In addition, the paths they find are “semi-free,” i.e. in contact with obstacles. shortest path shortest path within the visibility graph (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Local techniques Potential Field methods compute a repulsive force away from obstacles (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Local techniques Potential Field methods compute a repulsive force away from obstacles compute an attractive force toward the goal (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Local techniques Potential Field methods compute a repulsive force away from obstacles compute an attractive force toward the goal let the sum of the forces control the robot To a large extent, this is computable from sensor readings (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Local planning Usually assumes some knowledge at the global level The goal is known; the obstacles sensed Each contributes forces, and the robot follows the resulting gradient. (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Another view of reactive control Direct mapping from the environment to a control signal goal-seeking behaviorobstacle-avoiding behavior (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Behavior Summer vector sum of the avoid and goal motor schemas path taken by a robot controlled by the resulting field (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Another primitive Direct mapping from the environment to a control signal larger composite task random motion schema (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Local minima Noise allows a system to “jump out” of local minima. the problem a solution (Courtesy of Dodds)

Robot Building Lab: Off-board Map Building and Path Planning Path Planning in Evidence Grids Reduces to a search problem within the graph of cells, and the graph is created on the fly. Search for a minimum- cost path, depending on length probability of collision (Courtesy of Dodds) Can use many different path planning algorithms We will use potential-field- like force summing Note: need to compute vectors for sequence of moves around robot’s current location (policy)

Robot Building Lab: Off-board Map Building and Path Planning Lab 9 Off-board Map Building and Path Planning es/robotlab/labs/lab09.pdf

Robot Building Lab: Off-board Map Building and Path Planning In-Class: Find Goal, Build Map  Record initial position  Head toward goal light, avoiding and reacting to obstacles  Take sonar sweeps and odometry readings and build map as you move –Send readings to PC (sweep of readings plus x,y, theta) –Build map on PC  Fix odometry errors with landmarks (using ground sensors)  Keep track of landmarks and stop after counting 4 landmarks  View map graphically on PC 4ft 5ft

Robot Building Lab: Off-board Map Building and Path Planning Final Exam Demo: Build Map Dynamically and Use to Find Best Path to Target 4ft 5ft  Record initial position  Head toward target location  Take sonar sweeps and odometry readings and build map as you move –Send readings to PC (sweep of readings plus x,y, theta) –Build map on PC  Fix odometry errors with landmarks (using ground sensors)  Use map on PC to continually send new movement vectors to robot – using local path planning method  Head toward new movement direction, avoiding and reacting to obstacles (if needed)  Stop at target location  View map graphically on PC (extra credit for showing changes to map dynamically, in real-time)

Robot Building Lab: Off-board Map Building and Path Planning Final Projects and Reports  Significant portion of grade (~3 labs or so)  Due Wednesday of Finals Week  Undergraduates: Report on Final Exam Robot, including: –Code –… to be filled in soon  Graduate Students: Demo of Final Project, Report on Final Project, including: –Code –… to be filled in soon

Robot Building Lab: Off-board Map Building and Path Planning References  ab/labs/lab09.pdf ab/labs/lab09.pdf  ab/readings/hbmanual.pdf ab/readings/hbmanual.pdf  gs gs