Advanced Mobile Robotics Syllabus/Introduction/Review Prof. Jizhong Xiao Department of Electrical Engineering CUNY City College jxiao@ccny.cuny.edu City College of New York 1 Outline • Syllabus – – – – – Course Description Prerequisite, Expected Outcomes Primary Topics Textbook and references Grading, Office hours and contact • How to … – How to read a research paper – How to write a reading report • G5501 Review – What is a Robot? – Why use Robots? – Mobile Robotics City College of New York 2 Syllabus Course Description • This course is an in depth study of state-of-theart technologies and methods of mobile robotics. • The course consists of two components: lectures on theory, and course projects. • Lectures will draw from textbooks and current research literature with several reading discussion classes. • In project component of this class, students are required to conduct simulation study to implement, evaluate SLAM algorithms. City College of New York 3 Syllabus Primary Topics • Mobile Robotics Review – Locomotion/Motion Planning/Mapping – Odometry errors • Probabilistic Robotics – Mathematic Background, Bayes Filters • Kalman Filters (KF, EKF, UKF) • Particle Filters • SLAM (simultaneous localization and mapping) • Data Association Problems City College of New York 4 Syllabus Textbooks: • Probabilistic ROBOTICS, Sebastian Thrun, Wolfram Burgard, Dieter Fox, The MIT Press, 2005, ISBN 0-262-20162-3. Available at CCNY Book Store Reference Material: • Introduction to AI Robotics, Robin R. Murphy, The MIT Press, 2000, ISBN 0-262-13383-0. • Introduction to Autonomous Mobile Robots, Roland Siegwart, Illah R. Nourbakhsh, The MIT Press, 2004, ISBN 0-262-19502-X • Computational Principles of Mobile Robotics, Gregory Dudek, Michael Jenkin, Cambridge University Press, 2000, ISBN 0-52156876-5 • Papers from research literature City College of New York 5 Syllabus • Contact Information – Office: T-534, Tel: 212-650-7268 – E-mail: jxiao@ccny.cuny.edu – Website: http://robotics.ccny.cuny.edu/blog – Office Hours: • Mon: 5:00~6:00pm, Friday: 3:00~5:00pm • Expected outcomes: – Knowledge – Abilities • Be able to read technical papers • Be able to write technical papers • Be able to conduct independent research City College of New York 6 • How to … – How to read a research paper • Conference papers (ICRA, IROS) • Journal papers – IEEE Transactions on Robotics – Autonomous Robots – International Journal of Robotics Research CCNY resource: http://www.ccny.cuny.edu/library/Menu.html IEEE Xplorer – How to write a reading report City College of New York 7 G5501 Course Review City College of New York 8 Mobile Robotics Locomotion/Motion Planning/Mapping Prof. Jizhong Xiao Department of Electrical Engineering CUNY City College jxiao@ccny.cuny.edu City College of New York 9 Contents • Review • Classification of wheels – Fixed wheel, Centered orientable wheel, Off-centered orientable wheel, Swedish wheel • Mobile Robot Locomotion – Differential Drive, Tricycle, Synchronous Drive, Omni-directional, Ackerman Steering • Motion Planning Methods – Roadmap Approaches (Visibility graphs, Voronoi diagram) – Cell Decomposition (Trapezoidal Decomposition, Quadtree Decomposition) – Potential Fields • Mapping and Localization City College of New York 10 Review • What are Robots? – Machines with sensing, intelligence and mobility (NSF) • To qualify as a robot, a machine must be able to: 1) Sensing and perception: get information from its surroundings 2) Carry out different tasks: Locomotion or manipulation, do something physical–such as move or manipulate objects 3) Re-programmable: can do different things 4) Function autonomously and/or interact with human beings • Why use Robots? – Perform 4A tasks in 4D environments 4A: Automation, Augmentation, Assistance, Autonomous 4D: Dangerous, Dirty, Dull, Difficult City College of New York 11 Review z • Robot Manipulator – Kinematics – Dynamics – Control z z y y x z x y x y x • Mobile Robot – – – – Kinematics/Control Sensing and Sensors Motion planning Mapping/Localization City College of New York 12 Mobile Robot Examples ActivMedia Pioneer II Sojourner Rover NASA and JPL, Mars exploration City College of New York 13 Wheeled Mobile Robots • Locomotion — the process of causing an robot to move. – In order to produce motion, forces must be applied to the robot – Motor output, payload • Kinematics – study of the mathematics of motion without considering the forces that affect the motion. – Deals with the geometric relationships that govern the system – Deals with the relationship between control parameters and the behavior of a system. • Dynamics – study of motion in which these forces are modeled – Deals with the relationship between force and motions. City College of New York 14 Notation Posture: position(x, y) and orientation City College of New York 15 Wheels Rolling motion Lateral slip City College of New York 16 Wheel Types Centered orientable wheel Fixed wheel Off-centered orientable wheel (Castor wheel) Swedish wheel:omnidirectional property City College of New York 17 Mobile Robot Locomotion Locomotion: the process of causing a robot to move Differential Drive Tricycle R Synchronous Drive Ackerman Steering City College of New York Swedish Wheel Omni-directional 18 Differential Drive • Posture of the robot • Control input (x,y) : Position of the robot : Orientation of the robot City College of New York v : Linear velocity of the robot w : Angular velocity of the robot (notice: not for each wheel) 19 Differential Drive VR (t ) – linear velocity of right wheel VL (t ) – linear velocity of left wheel r – nominal radius of each wheel R – instantaneous curvature radius (ICR) of the robot trajectory (distance from ICC to the midpoint between the two wheels). Property: At each time instant, the left and right wheels must follow a trajectory that moves around the ICC at the same angular rate , i.e., L L ( R ) VR ( R ) VL 2 2 City College of New York 20 Differential Drive Property: At each time instant, the left and right wheels must follow a trajectory that moves around the ICR at the same angular rate , i.e., L L ( R ) VR ( R ) VL 2 2 • Kinematic equation 90 • Nonholonomic Constraint x sin cos x sin y cos 0 y Physical Meaning? City College of New York 21 Non-holonomic constraint A non-holonomic constraint is a constraint on the feasible velocities of a body So what does that mean? Your robot can move in some directions (forward and backward), but not others (sideward). The robot can instantly move forward and backward, but can not move sideward Parallel parking, Series of maneuvers City College of New York 22 Differential Drive • Basic Motion Control R : Radius of rotation Instantaneous center of curvature (ICC) • Straight motion R = Infinity • Rotational motion R= 0 City College of New York VR = VL VR = -VL 23 Differential Drive • Velocity Profile 3 3 0 2 0 2 1 1 : Radius of rotation : Length of path : Angle of rotation City College of New York 24 Tricycle • Steering and power are provided through the front wheel • control variables: – angular velocity of steering wheel ws(t) – steering direction α(t) d: distance from the front wheel to the rear axle City College of New York 25 Tricycle Kinematics model in the world frame ---Posture kinematics model City College of New York 26 Synchronous Drive • All the wheels turn in unison – All wheels point in the same direction and turn at the same rate – Two independent motors, one rolls all wheels forward, one rotate them for turning • Control variables (independent) – v(t), ω(t) City College of New York 27 Omidirectional Swedish Wheel City College of New York 28 Ackerman Steering (Car Drive) • The Ackerman Steering equation: – : d cot i cot o l cos cot sin cot i cot o Rd /2 Rd /2 l l d l R City College of New York 29 Ackerman Steering Equivalent: City College of New York 30 Car-like Robot Driving type: Rear wheel drive, front wheel steering R u1 l u1 tan Rear wheel drive car model: ICC Y R x u1 cos y u1 sin l u1 tan l u2 X non-holonomic constraint: x sin y cos 0 x, y u1 : forward velocity of the rear wheels u2 : angular velocity of the steering wheels l : length between the front and rear wheels City College of New York 31 Robot Sensing • Collect information about the world • Sensor - an electrical/mechanical/chemical device that maps an environmental attribute to a quantitative measurement • Each sensor is based on a transduction principle - conversion of energy from one form to another • Extend ranges and modalities of Human Sensing City College of New York 32 Electromagnetic Spectrum Visible Spectrum 700 nm 400 nm City College of New York 33 Sensors Used in Robot • Resistive sensors: – bend sensors, potentiometer, resistive photocells, ... • Tactile sensors: contact switch, bumpers… • Infrared sensors – Reflective, proximity, distance sensors… • Ultrasonic Distance Sensor • Motor Encoder • Inertial Sensors (measure the second derivatives of position) – Accelerometer, Gyroscopes, • Orientation Sensors: Compass, Inclinometer • Laser range sensors • Vision, GPS, … City College of New York 34 Mobot System Overview high-level Motion Planning: Given a known world and a cooperative mechanism, how do I get there from here ? Localization: Given sensors and a map, where am I ? Vision: If my sensors are eyes, what do I do? Mapping: Given sensors, how do I create a useful map? Abstraction level Bug Algorithms: Given an unknowable world but a known goal and local sensing, how can I get there from here? Kinematics: if I move this motor somehow, what happens in other coordinate systems ? Control (PID): what voltage should I set over time ? low-level Motor Modeling: what voltage should I set now ? City College of New York 35 What is Motion Planning? • Determining where to go without hit obstacles City College of New York 36 References • G. Dudek, M. Jenkin, Computational Principles of Mobile Robots, MIT Press, 2000 (Chapter 5) • J.C. Latombe, Robot Motion Planning, Kluwer Academic Publishers, 1991. • Additional references – Path Planning with A* algorithm • S. Kambhampati, L. Davis, “Multiresolution Path Planning for Mobile Robots”, IEEE Journal of Robotrics and Automation,Vol. RA-2, No.3, 1986, pp.135-145. – Potential Field • O. Khatib, “Real-Time Obstacle Avoidance for Manipulators and Mobile Robots”, Int. Journal of Robotics Research, 5(1), pp.90-98, 1986. • P. Khosla, R. Volpe, “Superquadratic Artificial Potentials for Obstacle Avoidance and Approach” Proc. Of ICRA, 1988, pp.11781784. • B. Krogh, “A Generalized Potential Field Approach to Obstacle Avoidance Control” SME Paper MS84-484. City College of New York 37 Motion Planning Motion Planning: Find a path connecting an initial configuration to goal configuration without collision with obstacles Assuming the environment is known! – Configuration Space – Motion Planning Methods • Roadmap Approaches • Cell Decomposition • Potential Fields City College of New York 38 The World consists of... • Obstacles – Already occupied spaces of the world – In other words, robots can’t go there • Free Space – Unoccupied space within the world – Robots “might” be able to go here – To determine where a robot can go, we need to discuss what a Configuration Space is City College of New York 39 Configuration Space Notation: A: single rigid object –(the robot) W: Euclidean space where A moves; W R2 or R3 B1,…Bm: fixed rigid obstacles distributed in W • FW – world frame (fixed frame) • FA – robot frame (moving frame rigidly associated with the robot) Configuration q of A is a specification of the physical state (position and orientation) of A w.r.t. a fixed environmental frame FW. Configuration Space is the space of all possible robot configurations. City College of New York 40 Configuration Space Configuration Space of A is the space (C )of all possible configurations of A. Point robot (free-flying, no constraints) C Cfree qslug Cobs qrobot For a point robot moving in 2-D plane, C-space is R 2 City College of New York 41 Configuration Space C y Z Cfree qgoal Cobs qstart x For a point robot moving in 3-D, the C-space isR 3 What is the difference between Euclidean space and C-space? City College of New York 42 Configuration Space Y A robot which can translate in the plane C-space: 2-D (x, y) X Euclidean space:R 2 Y A robot which can translate and rotate in the plane C-space:3-D (x, y, ) Y X City College of New York x 43 Configuration Space b b a a 2R manipulator Configuration space City College of New York 44 topology Configuration Space 360 qrobot 270 b 180 b a 90 qslug 0 45 Two points in the robot’s workspace a 90 135 180 Torus (wraps horizontally and vertically) City College of New York 45 Configuration Space If the robot configuration is within the blue area, it will hit the obstacle 360 qrobot 270 b 180 b a 90 qslug 0 An obstacle in the robot’s workspace What is dimension of the C-space of puma robot (6R)? 45 a 90 135 180 a “C-space” representation Visualization of high dimension C-space is difficult City College of New York 46 Motion Planning Revisit Find a collision free path from an initial configuration to goal configuration while taking into account the constrains (geometric, physical, temporal) C-space concept provide a generalized framework to study the motion planning problem A separate problem for each robot? City College of New York 47 What if the robot is not a point? The Pioneer-II robot should probably not be modeled as a point... City College of New York 48 What if the robot is not a point? Expand obstacle(s) Reduce robot not quite right ... City College of New York 49 Obstacles Configuration Space C-obstacle Point robot City College of New York 50 C-obstacle in 3-D What would the configuration space of a 3DOF rectangular robot (red) in this world look like? (The obstacle is blue.) 180º y can we stay in 2d ? 3-D x City College of New York 0º 51 One slice Taking one slice of the C-obstacle in which the robot is rotated 45 degrees... PR R y 45 degrees P x City College of New York How many slices does P R have? 52 2-D projection y x why not keep it this simple? City College of New York 53 Projection problems qinit qgoal City College of New York too conservative! 54 Motion Planning Methods Roadmap approaches • Visibility Graph • Voronoi Diagram Cell decomposition • Trapezoidal decomposition Full-knowledge motion planning • Quadtree decomposition Potential Fields City College of New York 55 Full-knowledge motion planning Roadmaps Cell decompositions visibility graph exact free space represented via convex polygons voronoi diagram approximate free space represented via a quadtree City College of New York 56 Roadmap: Visibility Graphs 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). Formed by connecting all “visible” vertices, the start point and the end point, to each other. For two points to be “visible” no obstacle can exist between them Paths exist on the perimeter of obstacles From Cfree, a graph is defined Converts the problem into graph search. Dijkstra’s algorithm O(N^2) N = the number of vertices in Cspace City College of New York 57 Visibility graph drawbacks Visibility graphs do not preserve their optimality in higher dimensions: shortest path shortest path within the visibility graph In addition, the paths they find are “semi-free,” i.e. in contact with obstacles. No clearance City College of New York 58 Roadmap: Voronoi diagrams “official” Voronoi diagram (line segments make up the Voronoi diagram isolates a set of points) Property: maximizing the clearance between the points and obstacles. Generalized Voronoi Graph (GVG): locus of points equidistant from the closest two or more obstacle boundaries, including the workspace boundary. City College of New York 59 Roadmap: Voronoi diagrams • GVG is formed by paths equidistant from the two closest objects • maximizing the clearance between the obstacles. • This generates a very safe roadmap which avoids obstacles as much as possible City College of New York 60 Voronoi Diagram: Metrics • Many ways to measure distance; two are: – L1 metric • (x,y) : |x| + |y| = const – L2 metric • (x,y) : x2 +y2 = const City College of New York 61 Voronoi Diagram (L1) Note the lack of curved edges City College of New York 62 Voronoi Diagram (L2) Note the curved edges City College of New York 63 Motion Planning Methods Roadmap approaches • Visibility Graph • Voronoi Diagram Cell decomposition • Exact Cell Decomposition (Trapezoidal) • Approximate Cell Decomposition (Quadtree) Potential Fields Hybrid local/global City College of New York 64 Exact Cell Decomposition Trapezoidal Decomposition: Decomposition of the free space into trapezoidal & triangular cells Connectivity graph representing the adjacency relation between the cells (Sweepline algorithm) City College of New York 65 Exact Cell Decomposition Trapezoidal Decomposition: Search the graph for a path (sequence of consecutive cells) City College of New York 66 Exact Cell Decomposition Trapezoidal Decomposition: Transform the sequence of cells into a free path (e.g., connecting the midpoints of the intersection of two consecutive cells) City College of New York 67 Optimality Trapezoidal Decomposition: 15 cells 9 cells Trapezoidal decomposition is exact and complete, but not optimal Obtaining the minimum number of convex cells is NP-complete. there may be more details in the world than the task needs to worry about... City College of New York 68 Approximate Cell Decomposition Quadtree Decomposition: Quadtree: recursively subdivides each mixed obstacle/free (sub)region into four quarters... City College of New York 69 further decomposing... Quadtree Decomposition: Quadtree: recursively subdivides each mixed obstacle/free (sub)region into four quarters... City College of New York 70 further decomposing... Quadtree Decomposition: • The rectangle cell is recursively decomposed into smaller rectangles • At a certain level of resolution, only the cells whose interiors lie entirely in the free space are used • A search in this graph yields a collision free path Again, use a graph-search algorithm to find a path from the start to goal Quadtree is this a complete path-planning algorithm? i.e., does it find a path when one exists ? City College of New York 71 Motion Planning Methods Roadmap approaches Cell decomposition • Exact Cell Decomposition (Trapezoidal) • Approximate Cell Decomposition (Quadtree) Potential Fields Hybrid local/global City College of New York 72 Potential Field Method Potential Field (Working Principle) – The goal location generates an attractive potential – pulling the robot towards the goal – The obstacles generate a repulsive potential – pushing the robot far away from the obstacles – The negative gradient of the total potential is treated as an artificial force applied to the robot -- Let the sum of the forces control the robot C-obstacles City College of New York 73 Potential Field Method • Compute an attractive force toward the goal C-obstacles Attractive potential City College of New York 74 Potential Field Method • Compute a repulsive force away from obstacles Repulsive Potential Create a potential barrier around the C-obstacle region that cannot be traversed by the robot’s configuration It is usually desirable that the repulsive potential does not affect the motion of the robot when it is sufficiently far away from C-obstacles City College of New York 75 Potential Field Method • Compute a repulsive force away from obstacles • Repulsive Potential City College of New York 76 Potential Field Method • Sum of Potential Attractive potential Repulsive potential C-obstacle Sum of potentials City College of New York 77 Potential Field Method • After get total potential, generate force field (negative gradient) • Let the sum of the forces control the robot Negative gradient Equipotential contours Total potential To a large extent, this is computable from sensor readings City College of New York 78 Potential Field Method Pros: • Spatial paths are not preplanned and can be generated in real time • Planning and control are merged into one function • Smooth paths are generated • Planning can be coupled directly to a control algorithm Cons: • Trapped in local minima in the potential field • Because of this limitation, commonly used for local path planning • Use random walk, backtracking, etc to escape the local minima random walks are not perfect... City College of New York 79 Motion Planning Summary • Motion Planning Methodololgies – Roadmap – Cell Decomposition – Potential Field Global methods Local methods • Roadmap – From Cfree a graph is defined (Roadmap) – Ways to obtain the Roadmap • Visibility graph • Voronoi diagram • Cell Decomposition – The robot free space (Cfree) is decomposed into simple regions (cells) – The path in between two poses of a cell can be easily generated • Potential Field – The robot is treated as a particle acting under the influence of a potential field U, where: • the attraction to the goal is modeled by an additive field • obstacles are avoided by acting with a repulsive force that yields a negative field City College of New York 80 Mapping/Localization • Answering robotics’ big questions – How to get a map of an environment with imperfect sensors (Mapping) – How a robot can tell where it is on a map (localization) – SLAM (Simultaneous Localization and Mapping) • It is an on-going research • It is the most difficult task for robot – Even human will get lost in a building! City College of New York 81 Using sonar to create maps What should we conclude if this sonar reads 10 feet? there isn’t something here 10 feet there is something somewhere around here Local Map unoccupied or ... no information occupied City College of New York 82 Using sonar to create maps What should we conclude if this sonar reads 10 feet... 10 feet 10 feet and how do we add the information that the next sonar reading (as the robot moves) reads 10 feet, too? City College of New York 83 Combining sensor readings • 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 what is in each cell of this sonar model / map ? City College of New York 84 What is it a map of? Several answers to this question have been tried: pre ‘83 It’s a map of occupied cells. oxy cell (x,y) is occupied oxy cell (x,y) is unoccupied What information should this map contain, given that it is created with sonar ? Each cell is either occupied or unoccupied -- this was the approach taken by the Stanford Cart. City College of New York 85 What is it a map of ? Several answers to this question have been tried: cell (x,y) is occupied pre ‘83 It’s a map of occupied cells. ‘83 - ‘88 It’s a map of probabilities: p( o | S1..i ) oxy p( o | S1..i ) It’s a map of odds. oxy cell (x,y) is unoccupied The certainty that a cell is occupied, given the sensor readings S1, S2, …, Si The certainty that a cell is unoccupied, given the sensor readings S1, S2, …, Si The odds of an event are expressed relative to the complement of that event. evidence = log2(odds) probabilities The odds that a cell is occupied, given the sensor readings S1, S2, …, Si odds( o | S1..i ) = City College of New York p( o | S1..i ) p( o | S1..i ) 86 An example map units: feet Evidence grid of a tree-lined outdoor path lighter areas: lower odds of obstacles being present darker areas: higher odds of obstacles being present how to combine them? City College of New York 87 Combining probabilities How to combine two sets of probabilities into a single map ? City College of New York 88 Conditional probability Some intuition... The probability of event o, given event S . p( o | S ) = p( S | o ) = The probability that a certain cell o is occupied, given that the robot sees the sensor reading S . The probability of event S, given event o . The probability that the robot sees the sensor reading S , given that a certain cell o is occupied. • What is really meant by conditional probability ? p( o | S ) = p(S | o) ?? • How are these two probabilities related? City College of New York 89 Bayes Rule - Joint probabilities/Conditional probabilities p( o S ) = p( o | S ) p( S ) City College of New York 90 Bayes Rule - Joint probabilities/Conditional probabilities p( o S ) = p( o | S ) p( S ) - Bayes rule relates conditional probabilities p( o | S ) = p( S | o ) p( o ) p( S ) City College of New York Bayes rule 91 Bayes Rule - Joint probabilities/Conditional probabilities p( o S ) = p( o | S ) p( S ) - Bayes rule relates conditional probabilities p( o | S ) = p( S | o ) p( o ) p( S ) Bayes rule - So, what does this say about odds( o | S2 S1 ) ? Can we update easily ? City College of New York 92 Combining evidence So, how do we combine evidence to create a map? What we want -odds( o | S2 S1) the new value of a cell in the map after the sonar reading S2 What we know -the old value of a cell in the map (before sonar reading S2) odds( o | S1) p( Si | o ) & p( Si | o ) the probabilities that a certain obstacle causes the sonar reading Si City College of New York 93 Combining evidence odds( o | S2 S1) = p( o | S2 S1 ) p( o | S2 S1 ) City College of New York 94 Combining evidence odds( o | S2 S1) = . = p( o | S2 S1 ) p( o | S2 S1 ) def’n of odds p( S2 S1 | o ) p(o) p( S2 S1 | o ) p(o) City College of New York 95 Combining evidence odds( o | S2 S1) = p( o | S2 S1 ) p( o | S2 S1 ) . = p( S2 S1 | o ) p(o) p( S2 S1 | o ) p(o) . = p( S2 | o ) p( S1 | o ) p(o) p( S2 | o ) p( S1 | o ) p(o) City College of New York def’n of odds Bayes’ rule (+) 96 Combining evidence odds( o | S2 S1) = p( o | S2 S1 ) p( o | S2 S1 ) def’n of odds . = p( S2 S1 | o ) p(o) p( S2 S1 | o ) p(o) . = p( S2 | o ) p( S1 | o ) p(o) p( S2 | o ) p( S1 | o ) p(o) conditional independence of S1 and S2 = p( S2 | o ) p( o | S1 ) p( S2 | o ) p( o | S1 ) Bayes’ rule (+) . City College of New York Bayes’ rule (+) 97 Combining evidence odds( o | S2 S1) = p( o | S2 S1 ) p( o | S2 S1 ) def’n of odds . = p( S2 S1 | o ) p(o) p( S2 S1 | o ) p(o) . = p( S2 | o ) p( S1 | o ) p(o) p( S2 | o ) p( S1 | o ) p(o) conditional independence of S1 and S2 = p( S2 | o ) p( o | S1 ) p( S2 | o ) p( o | S1 ) Bayes’ rule (+) . precomputed values the sensor model Bayes’ rule (+) previous odds Update step = multiplying the previous odds by a precomputed weight. City College of New York 98 Mapping Using Evidence Grids Evidence Grids... represent space as a collection of cells, each with the odds (or probability) that it contains an obstacle evidence = log2(odds) Lab environment likely obstacle not sure likely free space lighter areas: lower evidence of obstacles being present darker areas: higher evidence of obstacles being present City College of New York 99 Localization Methods • Markov Localization: – Represent the robot’s belief by a probability distribution over possible positions and uses Bayes’ rule and convolution to update the belief whenever the robot senses or moves • Monte-Carlo methods • Kalman Filtering • SLAM (simultaneous localization and mapping) • …. City College of New York 100 Class Schedule Homework 1 posted on the web. City College of New York 101 Thank you! City College of New York 102