Walking the Grid: Robotics in CS 2
|
|
- Timothy Baldwin
- 6 years ago
- Views:
Transcription
1 Walking the Grid: Robotics in CS 2 Myles F. McNally Department of Mathematics and Computer Science Alma College Alma, MI, 48801, USA mcnally@alma.edu Abstract This paper describes the use of inexpensive robotics platforms to create engaging student projects for a second course in computer programming. These projects employ the stack and queue data structures, reinforce basic concepts such as two dimensional arrays, and are situated in the context of modern, object-oriented programming. Advanced concepts from autonomous mobile robotics are introduced in a gentle manner, including occupancy grids, path planning, and sensor fusion. The fundamentals of depth and breadth first search are used in the solutions to the various projects described.. Keywords: Data structures, graph search, robotics, path planning. 1 Introduction The goal of the GridWalker project is to create engaging object-oriented programming projects that introduce themes from Artificial Intelligence and Robotics into the second programming course, often referred to as CS2. These projects can be used once students have been introduced to the stack and queue data structures, and reinforce material usually covered in an earlier course such as classes, interfaces, and inheritance, two dimensional arrays, and exception handling. Students find projects employing robotics motivating, leading to increased time on task and enhanced learning. Such projects also allow students to see the practical applications of programming, often overlooked in introductory courses. Many different robot designs can be used in the solutions to the following projects, but whatever design is chosen it must employ differential drive the left and right side wheels must be able to turn independently, hence allowing the robot to rotate in place by turning its wheels in opposite directions. In our course we use Lego Mindstorms robots and the Java programming language, in particular LeJOS (well described in Bagwell 2002), but these projects could be easily adapted to other robotic platforms and programming languages. We choose Mindstorms because of its inexpensive cost, easy of Copyright 2006, Australian Computer Society, Inc. This paper appeared at the Eighth Australasian Computing Education Conference (ACE2006), Hobart, Tasmania, Australia, January Conferences in Research in Practice in Information Technology, Vol. 52. Denise Tolhurst and Samuel Mann Eds. Reproduction for academic, not-for profit purposes permitted provided this text is included. customisation, and its widespread adoption among computer science educators (cf. Barnes 2002, Kay 2003, and Lawhead et al 2003 for good discussions and a number of references). We call our robot the GridWalker and optionally equip it with a sonar sensor to allow it to detect obstacles at a distance. The laboratory projects described below are available on our website, and sample solutions will be provided to instructors on request. 2 Occupancy Grids Each of the projects has at its foundation the use of an occupancy grid. This notion, drawn from work in autonomous mobile robots (cf. Murphy 2000, Siegwart and Nourbakhsh 2004), is often used in the solution of navigation (How do I get where I want to go?) and localization (Where am I?) problems. Such a grid is a discrete approximation of the environment the robot finds itself in. Each cell represents an area of the environment and is either marked free (the corresponding area contains no obstacles) or occupied. If any part of the area the cell represents contains an obstacle the cell is considered occupied. Robots cannot move into occupied cells. Figure 1 shows an example occupancy grid. The black shapes are obstacles, the grey grid cells are considered occupied, and the white cells free. Figure 1: An Occupancy Grid Grids representing real world environments are often fine grained, representing areas 4 to 6 inches square. The finer the grain of the occupancy grid the better it represents the environment. But fine grained grids lead to computational challenges and require large amounts of memory, two challenges the RCX (the Mindstorms computer control brick) cannot easily handle. On the other hand, coarse grids can mask a number of environmental features, such as narrow passageways. So in real world applications robots (and their designers) must take these trade offs into consideration. Our GridWalker projects will avoid these issues by using simplified environments such as that shown in Figure 1.
2 Using a large scale printer, we have printed a grid for the GridWalker to roam around in that is the physical embodiment of the occupancy grid the GridWalker will use when computing its movements. Blocks from a children s toy set are used to define the occupied cells. Figure 2 shows the GridWalker placed on the grid with occupied cells defined by blocks. Figure 2: Basic GridWalker Environment In the advanced projects the goal will be path planning: the computation of a path from a starting point to goal point in a known (or in one project an unknown) environment. But to begin we need to be able to move reliably from cell to cell, which is a major goal of Project 1. 3 Project 1: A Random Walk (and Back!) The goal of the first project is easy to state: Placed on the grid in an arbitrary (but known) starting position, the GridWalker goes on a random walk for a fixed number of steps, and then retraces its steps back to its starting point. The GridWalker is only permitted to move one cell to the north, south, east, or west at a time (the so-called 4-rule). No diagonal or other movements are permitted. The solution of this project involves the straightforward use of a stack. During the random walk phase, the direction of each movement is in turn pushed on the stack. When the GridWalker returns it pops items off of the stack and travels a single square in the opposite direction. When the stack is empty the GridWalker has returned to its starting point. Often during the random walk phase the robot will move forward and then immediately back. On the return trip the robot can skip this oscillation by peeking onto the stack after each pop. If the peek reveals a movement in the opposite direction from that which was just popped, both are ignored. Such an improvement is considered in Johnson-Laird We chose not to use the Java collection classes in our course. Students implement a simple stack class and a single stack exception class in their solution. An instructor might prefer to have their students implement separate underflow and overflow exception classes. The more difficult part of this assignment is getting the GridWalker to accurately move from cell to cell. This requires the solution of the odometry problem: getting a robot to move around in an environment while reliably tracking its location. We ask students to define a GridWalker class that contains: A constructor that specifies the number of rows and columns in grid, the grid cell size, and the starting location of the robot. A goto method that takes as a parameter a grid location and causes the robot to move from its current location to that location. Parameterless methods north, east, south, and west that cause the robot to move one cell in the respective direction. These methods use the goto method in their solution. A first approach to a solution might use timing. Students would measure how long it takes their robot to move a fixed distance, and then use that amount to compute required travelling times. Similarly they would measure turn times. Experience shows that this is not a particularly accurate approach, as robot speed depends on battery strength, which erodes over time. However this approach could be used. A more accurate approach uses axle encoders (also know as rotation sensors), which measure wheel rotations. Such sensors are not part of the standard Mindstorms kit, but can be inexpensively purchased from Lego. One threads an axle through the sensor, and each revolution of the axle is 16 clicks on the sensor, which means that the sensor can measure a change in axle orientation of 22.5 degrees. This would be a rather coarse reading if it was a direct wheel reading. So the sensor is usually connected to a gear train that gears it down. In our experience a 1 to 5 reduction is sufficient, giving 80 clicks for each revolution of the wheel, for a sensitivity of 4.5 degrees. Figure 3 shows a modification of the standard Roverbot design (found in the Lego Constructopedia which comes with the Mindstorms Invention 2.0 kit) that has a rotation sensor connected to each wheel. The RCX then sits on top. Figure 3: Chassis with Rotation Sensors Using such sensors, once the wheel size, distance between the wheels, and gear ratio is known, the robot can be made to both accurately travel distances and make turns by the solution of well-known kinematic equations. Such equations are a topic better left to a later robotics course. Fortunately the Java system LeJOS for Mindstorms provides a Rotation Navigator class in which
3 these equations are already implemented (cf. Bagnall 2002). Students are merely asked to extend this class in their solution. The constructor for the RotationNavigator takes as its parameters the wheel diameter, the axle width, and the ratio of encoder revolutions to wheel revolutions. Important RotationNavigator methods for this project are the following: public void gotopoint(float x, float y). Rotates the RCX robot towards the target point and moves the required distance. public float getx(). Returns the current x coordinate of the RCX. public float gety(). Returns the current y coordinate of the RCX. public float getangle(). Returns the current angle the RCX robot is facing. The student extends this class, maintaining instance variables for the current grid location, the size of the grid, and the size of a grid cell. In implementing the goto method, the student needs to check that the new location is legal (i.e., in the grid). If it is not, an exception should be thrown (optional, but a good opportunity to reinforce the use of programmer defined exceptions). The student also needs to convert grid locations to absolute locations. The RotationNavigator assumes the robot starts at 0,0 with an orientation of 0 degrees. The GridWalker allows the programmer to specify any cell as the starting location, but still assumes orientation of 0 degrees. 4 Project 2: Wavefront Propagation The Path Planning Problem is the determination of a path from a starting position to a goal position in an environment containing obstacles. Numerous solutions to this problem exist (cf. Murphy 2000, Siegwart and Nourbakhsh 2004). In a later project we consider using classical graph searching algorithms on the implicit adjacency graph defined by the occupancy grid. But in this project we employ a technique well known in the robotics community but not as well known elsewhere. To solve this problem, imagine a wavefront moving out from the goal cell. The wave moves according to the 4- rule. When the wave first reaches a cell it is labelled with the amount of time it took to reach it. If there are obstacles the wave simply flows around them. Figure 4 shows the distance values in our occupancy grid after the wavefront propagates from the bottom-right cell. Each cell label represents the number of steps required to reach the goal from the so labelled cell. For a robot to reach the goal from any starting location, it repeatedly moves to an adjacent cell with a lesser label until the goal is reached. Figure 4 shows a solution path in light grey from the cell at the bottom left. There are usually many equivalent but different solution paths. Figure 4: Wavefront Times and a Solution Path from Starting Point (bottom-left) to Goal (bottom-right) Labelling the occupancy grid cells employs an algorithm that is corresponds to breadth-first search, using a queue of points as the basic data structure. Here are the basics: Allocate a new two dimensional array D the size of the occupancy grid. Set cells in D which correspond to occupied cells to high values and all others to -1. Set the value of the goal cell to 0. Enqueue the location of the goal cell (a point). While (queue is not empty) Dequeue a point L. Find the value V associated with point L in D. Find the neighbours of L with a -1 value. Set the values of these neighbours to V+1. Enqueue each of these points. Once the distance array D has been populated the robot can easily move to the goal cell as described above. However, if the starting cell still has a -1 value after initialisation the goal cell is unreachable and no solution path exists. Students are asked to implement the queue class and an associated queue exception class, and a separate grid class that encapsulates the details of the occupancy grid. They hard code the starting and ending locations, and which cells in the occupancy grid are occupied, among other things. It would be easy to extend this assignment so that this information was supplied to the RCX by a remote program on a base computer (cf. Scholz 2005), but issues of data communication are not really goals of this project. 5 Project 3: Adding Sonar Sonar sensors are not part of the basic Mindstorms kit, but can be inexpensively purchased from third party vendors. With such a sensor mounted on our robot, obstacles can be sensed from a distance, and hence the robot can decide which cells in the grid are occupied as it moves about its environment. Figure 5 shows our GridWalker robot augmented with a sonar unit.
4 free or occupied, it is marked with the degree of confidence the robot has that it is occupied, based on past sensor readings. A threshold value is set and the robot considers any cell with such a value or higher to be occupied. Each time the robot employs its sonar it updates its confidence factors. Students can experiment with the range of confidence values and the associated threshold value to see what works best in their environment. 6 Project 4: Classical Search Algorithms Figure 5: GridWalker with Sonar Project 3 extends the previous project by beginning with an occupancy grid in which all cells are marked free, and dynamically recomputes its route as it encounters obstacles during its travel. Here is the outline of the approach: Perform the wavefront labelling routine using an occupancy grid with all cells marked free. Do Determine a direction to travel. Orient robot in that direction. Use sonar to check if next cell in that direction is occupied. If it is, update occupancy grid and rerun labelling routine. If it is not, move to that cell. while (goal not reached and the cell label not -1) Simple orientation of the robot is not part of the original GridWalker specification, so students will need to add that capability. As stated here, students are only asked to check if the next cell in the desired travel direction is occupied. But most sonar systems available for robotic system are reasonably accurate up to about eight feet (cf. Mindsensors 2005 for the specifications of the sonar system we employed). Students can thus be asked to experiment with detecting occupied cells at further distances. Since the sonar beam spreads at an approximately 30 angle, false readings due to adjacent occupied cells occur as distances increase, and distance readings can be inaccurate as well. A cell that appears to be occupied may not be, and students need to take this into consideration, perhaps only considering obstacles detected close by. An advanced option for this project is to model the uncertainty of sonar readings by combining their results over time an instance of the so-called sensor fusion problem. See Murphy 2000 for a survey of such approaches. We have found the HIMM method of Borenstein and Koren 1991 to be simple enough for good students in a second programming course to handle. This straightforward approach uses confidence factors to model uncertainty. Instead of a cell being either marked Any of the well known graph search algorithms can be used by the GridWalker to do plan planning. Depth-first and breadth-first recommend themselves due to their simplicity, but best-first or hill-climbing could be implemented. Details of these search algorithms can be found in almost any artificial intelligence textbook (e.g., Russell and Norvig 2002) and in many data structures texts (e.g., Goodrich and Tamassia 2003). Since the adjacency graph is implicit in the occupancy grid, no explicit graph needs to be represented and the data structure requirements are limited to arrays, stacks, and queues. This project is independent of project 2, requiring only the successful completion of project 1. It can also be extended in basically the same way the project 3 extends project 2. Since these are very well known algorithms we only sketch an example here, namely a variation of depth-first search. Students are asked to write the class definition for the search algorithm that has A constructor that takes an occupancy grid as a parameter. A findpath method, which takes as parameters starting and ending points and returns the solution path in a vector. The findpath method uses a stack of points as the basic data structure, and a two dimensional array of points in which the path is labelled. Allocate a new two dimensional array of points F the size of the occupancy grid. Set each of the point references in F to null. Push the location of the start cell (a point). While (stack is not empty and goal not found) Pop a point L. If L is the goal, break. Find the unoccupied neighbours of L with a null value in F. Set the values of these neighbours in F to L. Push each of these points. If the goal is found, the path can be found in array F. Since each visited cell contains the location of the cell it was visited from, the path is retrieved by working back from the goal cell to the start cell using the recorded locations.
5 It is recommended that students be asked to formally implement a search interface, so that later other implementations, say breadth-first search, can be compared and contrasted. Students at this level need to be well scaffolded on the search algorithms, so we provide rather explicit pseudocode in the laboratory write-up. In particular we discuss recording the found path, which is glossed over in many textbooks. Once the path is found, the GridWalker merely needs to traverse that path to the goal cell using the methods the students developed in their solution to project 1. 7 Conclusion This paper described a series of laboratory projects that introduce robotics themes in a second course in computer programming. These projects provide examples of practical applications of computer programming in a realm students find motivating. They employ basic data structures such as arrays, stacks and queues, and reinforce the object-oriented approach to programming by having students define classes, use inheritance, implement interfaces, and handle exceptions. The laboratories themselves are available at our website (Klassner, Lawhead, and McNally 2005) and, although written to be used with the Lego Mindstorms platform, can easily be adapted to a number of other robotics platforms. road map for teaching introductory programming using LEGO Mindstorms robots. ACM SIGCSE Bulletin 35(2): Mindsensors Inc. (2005): Sonar Sensors. Accessed 18 Aug Murphy, R. (2000): Introduction to AI Robotics. Cambridge, MIT Press. Russell, S., and Norvig, P. (2002): Artificial Intelligence: A Modern Approach. Upper Saddle River, Prentice Hall. Siegwart, R., and Nourbakhsh, I. (2004): Introduction to Autonomous Mobile Robots. Cambridge, MIT Press. Sholz, M (2005): The LeJOS Tutorial, Accessed 18 Aug Acknowledgements This work was partially supported by a National Science Foundation CCLI grant DUE Programming solutions to some of the projects described above were first created by Josh Borgerding, the teaching assistant for the course. 9 References Bagwell, B. (2002): Core Lego Mindstorms Programming. Upper Saddle River, Prentice Hall PTR. Barnes, D. (2002): Teaching introductory Java through Lego Mindstorm models. ACM SIGCSE Bulletin 34(1): Borenstein, J. and Koren, Y. (1991) Histogramic In- Motion Mapping for Mobile Robot Obstacle Avoidance. IEEE Transactions on Robotics and Automation 7(4): Goodrich, M., and Tamassia, P. (2003): Data Structures and Algorithms in Java. New York, Wiley. Johnson-Laird, P. (1988): The Computer and the Mind. Cambridge, Harvard. Kay, J. (2003): Teaching robotics from a computer science perspective. Journal of Computing Sciences in Colleges 19(2): Klassner, F., Lawhead, P. and McNally, M. (2005): Lego Mindstorms in Computer Science Education, Accessed 18 Aug Lawhead, P., Duncan M., Bland, C., Goldweber, M., Schep, M., Barnes, D. and Hollingsworth, R. (2003): A
An Introduction to the Lego Mindstorms
Abstract An Introduction to the Lego Mindstorms Daniel Cliburn Assistant Professor Mathematics and Computer Science Hanover College Box 890 Hanover, IN 47243 (812) 866 7286 cliburn@hanover.edu http://www2.hanover.edu/cliburn
More informationLearning Roomba: Teacher s Guide Module 5 Localization. Drew Housten
Learning Roomba: Teacher s Guide Module 5 Localization Drew Housten (dhousten@gmail.com) 1 1 Introduction Determining where a robot is in its environment is not an easy task. The problem of localization
More informationLesson 1 Introduction to Path Planning Graph Searches: BFS and DFS
Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS DASL Summer Program Path Planning References: http://robotics.mem.drexel.edu/mhsieh/courses/mem380i/index.html http://dasl.mem.drexel.edu/hing/bfsdfstutorial.htm
More informationA System for Bidirectional Robotic Pathfinding
A System for Bidirectional Robotic Pathfinding Tesca K. Fitzgerald Department of Computer Science, Portland State University PO Box 751 Portland, OR 97207 USA tesca@cs.pdx.edu TR 12-02 November 2012 Abstract
More informationProbabilistic Localization with the RCX Lloyd Greenwald
Probabilistic Localization with the RCX Lloyd Greenwald (www.cs.drexel.edu/~lgreenwa) Probabilistic Localization with the RCX, Greenwald 1 Outline Overview The localization problem A simplified educational
More informationMotion Planning. Howie CHoset
Motion Planning Howie CHoset What is Motion Planning? What is Motion Planning? Determining where to go Overview The Basics Motion Planning Statement The World and Robot Configuration Space Metrics Algorithms
More informationWave front Method Based Path Planning Algorithm for Mobile Robots
Wave front Method Based Path Planning Algorithm for Mobile Robots Bhavya Ghai 1 and Anupam Shukla 2 ABV- Indian Institute of Information Technology and Management, Gwalior, India 1 bhavyaghai@gmail.com,
More informationAn Appropriate Search Algorithm for Finding Grid Resources
An Appropriate Search Algorithm for Finding Grid Resources Olusegun O. A. 1, Babatunde A. N. 2, Omotehinwa T. O. 3,Aremu D. R. 4, Balogun B. F. 5 1,4 Department of Computer Science University of Ilorin,
More informationInstructions For Constructing A Braitenberg Vehicle 2 Robot From LEGO Mindstorms Components
Instructions For Constructing A Braitenberg Vehicle 2 Robot From LEGO Mindstorms Components Michael R.W. Dawson, Biological Computation Project, University of Alberta, Edmonton, Alberta September, 2003
More informationIntroduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning
Introduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning Sören Schwertfeger / 师泽仁 ShanghaiTech University ShanghaiTech University - SIST - 10.05.2017
More informationMotion Planning. Howie CHoset
Motion Planning Howie CHoset Questions Where are we? Where do we go? Which is more important? Encoders Encoders Incremental Photodetector Encoder disk LED Photoemitter Encoders - Incremental Encoders -
More informationCOMPARISON OF ROBOT NAVIGATION METHODS USING PERFORMANCE METRICS
COMPARISON OF ROBOT NAVIGATION METHODS USING PERFORMANCE METRICS Adriano Flores Dantas, Rodrigo Porfírio da Silva Sacchi, Valguima V. V. A. Odakura Faculdade de Ciências Exatas e Tecnologia (FACET) Universidade
More informationIntroducing Robotics Vision System to a Manufacturing Robotics Course
Paper ID #16241 Introducing Robotics Vision System to a Manufacturing Robotics Course Dr. Yuqiu You, Ohio University c American Society for Engineering Education, 2016 Introducing Robotics Vision System
More informationAutonomous Mobile Robots, Chapter 6 Planning and Navigation Where am I going? How do I get there? Localization. Cognition. Real World Environment
Planning and Navigation Where am I going? How do I get there?? Localization "Position" Global Map Cognition Environment Model Local Map Perception Real World Environment Path Motion Control Competencies
More informationCOS Lecture 13 Autonomous Robot Navigation
COS 495 - Lecture 13 Autonomous Robot Navigation Instructor: Chris Clark Semester: Fall 2011 1 Figures courtesy of Siegwart & Nourbakhsh Control Structure Prior Knowledge Operator Commands Localization
More informationObstacle Avoidance (Local Path Planning)
Obstacle Avoidance (Local Path Planning) The goal of the obstacle avoidance algorithms is to avoid collisions with obstacles It is usually based on local map Often implemented as a more or less independent
More information(Refer Slide Time: 02.06)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking
More informationRobotics and Autonomous Systems
Robotics and Autonomous Systems Lecture 6: Perception/Odometry Simon Parsons Department of Computer Science University of Liverpool 1 / 47 Today We ll talk about perception and motor control. 2 / 47 Perception
More informationRobotics and Autonomous Systems
Robotics and Autonomous Systems Lecture 6: Perception/Odometry Terry Payne Department of Computer Science University of Liverpool 1 / 47 Today We ll talk about perception and motor control. 2 / 47 Perception
More informationPath Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano tel:
Marcello Restelli Dipartimento di Elettronica e Informazione Politecnico di Milano email: restelli@elet.polimi.it tel: 02 2399 3470 Path Planning Robotica for Computer Engineering students A.A. 2006/2007
More informationUNIVERSITY OF NORTH CAROLINA AT CHARLOTTE
UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE Department of Electrical and Computer Engineering ECGR 4161/5196 Introduction to Robotics Experiment No. 5 A* Path Planning Overview: The purpose of this experiment
More informationIntroduction to Robotics using Lego Mindstorms EV3
Introduction to Robotics using Lego Mindstorms EV3 Facebook.com/roboticsgateway @roboticsgateway Robotics using EV3 Are we ready to go Roboticists? Does each group have at least one laptop? Do you have
More informationPart A: Monitoring the Rotational Sensors of the Motor
LEGO MINDSTORMS NXT Lab 1 This lab session is an introduction to the use of motors and rotational sensors for the Lego Mindstorm NXT. The first few parts of this exercise will introduce the use of the
More informationCPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues
CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very
More informationMEM380 Applied Autonomous Robots Fall Depth First Search A* and Dijkstra s Algorithm
MEM380 Applied Autonomous Robots Fall Breadth First Search Depth First Search A* and Dijkstra s Algorithm Admin Stuff Course Website: http://robotics.mem.drexel.edu/mhsieh/courses/mem380i/ Instructor:
More informationCS 1114: Implementing Search. Last time. ! Graph traversal. ! Two types of todo lists: ! Prof. Graeme Bailey.
CS 1114: Implementing Search! Prof. Graeme Bailey http://cs1114.cs.cornell.edu (notes modified from Noah Snavely, Spring 2009) Last time! Graph traversal 1 1 2 10 9 2 3 6 3 5 6 8 5 4 7 9 4 7 8 10! Two
More informationLecture 26: Graphs: Traversal (Part 1)
CS8 Integrated Introduction to Computer Science Fisler, Nelson Lecture 6: Graphs: Traversal (Part ) 0:00 AM, Apr, 08 Contents Introduction. Definitions........................................... Representations.......................................
More informationROBOTICS AND AUTONOMOUS SYSTEMS
ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 6 PERCEPTION/ODOMETRY comp329-2013-parsons-lect06 2/43 Today We ll talk about perception and
More informationAbstraction. Today s Lecture. Problem Formalization Issues. Lecture 3: Search 2
Lecture 3: Search 2 Victor R. Lesser CMPSCI 683 Fall 2010 Today s Lecture Finish off Introductory Material on Search Brief Review of Blind Search How to use heuristics (domain knowledge) in order to accelerate
More informationSimultaneous Localization and Mapping
Sebastian Lembcke SLAM 1 / 29 MIN Faculty Department of Informatics Simultaneous Localization and Mapping Visual Loop-Closure Detection University of Hamburg Faculty of Mathematics, Informatics and Natural
More informationMobile Robot Path Planning Software and Hardware Implementations
Mobile Robot Path Planning Software and Hardware Implementations Lucia Vacariu, Flaviu Roman, Mihai Timar, Tudor Stanciu, Radu Banabic, Octavian Cret Computer Science Department, Technical University of
More informationThis page outlines some of the alternate pieces that can be used for building.
Artbotics Exploring Mechanisms with Lego Mindstorms EV3 This packet contains information on each mechanism you will be using, including a to-scale image of all of the pieces needed to build each one and
More informationAgreement. Objectives. General Guidelines for Labs. Reading Assignment
1 CMPSC 111 Introduction to Computer Science I Fall 2016 Janyl Jumadinova Lab 9 for Section 1 17 November 2016 Due: 1 December, by 2:30 pm This is a team-based assignment. You have to work in teams of
More informationObstacle Avoidance (Local Path Planning)
6.2.2 Obstacle Avoidance (Local Path Planning) The goal of the obstacle avoidance algorithms is to avoid collisions with obstacles It is usually based on local map Often implemented as a more or less independent
More informationCS 112 Final May 8, 2008 (Lightly edited for 2011 Practice) Name: BU ID: Instructions GOOD LUCK!
CS 112 Final May 8, 2008 (Lightly edited for 2011 Practice) Name: BU ID: This exam is CLOSED book and notes. Instructions The exam consists of six questions on 11 pages. Please answer all questions on
More informationUsing Classical Mechanism Concepts to Motivate Modern Mechanism Analysis and Synthesis Methods
Using Classical Mechanism Concepts to Motivate Modern Mechanism Analysis and Synthesis Methods Robert LeMaster, Ph.D. 1 Abstract This paper describes a methodology by which fundamental concepts in the
More informationCPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues
CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.
More informationMonte Carlo Localization using Dynamically Expanding Occupancy Grids. Karan M. Gupta
1 Monte Carlo Localization using Dynamically Expanding Occupancy Grids Karan M. Gupta Agenda Introduction Occupancy Grids Sonar Sensor Model Dynamically Expanding Occupancy Grids Monte Carlo Localization
More informationNavigation and Metric Path Planning
Navigation and Metric Path Planning October 4, 2011 Minerva tour guide robot (CMU): Gave tours in Smithsonian s National Museum of History Example of Minerva s occupancy map used for navigation Objectives
More informationRobots and Search Algorithms: Real-World Applications for Students
Session 1320 Robots and Search Algorithms: Real-World Applications for Students R. Stephen Dannelly, Carl W. Steidley, Mario A. Garcia, and Sreevani Pelala Texas A&M University Corpus Christi Abstract
More informationSimulation of the pass through the labyrinth as a method of the algorithm development thinking
Simulation of the pass through the labyrinth as a method of the algorithm development thinking LIBOR MITROVIC, STEPAN HUBALOVSKY Department of Informatics University of Hradec Kralove Rokitanskeho 62,
More informationPicture Maze Generation by Repeated Contour Connection and Graph Structure of Maze
Computer Science and Engineering 2013, 3(3): 76-83 DOI: 10.5923/j.computer.20130303.04 Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze Tomio Kurokawa Department of Information
More informationA Simple, but NP-Hard, Motion Planning Problem
A Simple, but NP-Hard, Motion Planning Problem Lawrence H. Erickson and Steven M. LaValle University of Illinois at Urbana-Champaign Department of Computer Science 201 N. Goodwin Ave. Urbana, IL 61801
More informationToday MAPS AND MAPPING. Features. process of creating maps. More likely features are things that can be extracted from images:
MAPS AND MAPPING Features In the first class we said that navigation begins with what the robot can see. There are several forms this might take, but it will depend on: What sensors the robot has What
More informationPA3 Design Specification
PA3 Teaching Data Structure 1. System Description The Data Structure Web application is written in JavaScript and HTML5. It has been divided into 9 pages: Singly linked page, Stack page, Postfix expression
More information12 Abstract Data Types
12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define
More informationNon-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty
Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty Michael Comstock December 6, 2012 1 Introduction This paper presents a comparison of two different machine learning systems
More informationOccupancy Grid Based Path Planning and Terrain Mapping Scheme for Autonomous Mobile Robots
IJCTA, 8(3), 2015, pp. 1053-1061 International Science Press Occupancy Grid Based Path Planning and Terrain Mapping Scheme for Autonomous Mobile Robots C. Saranya 1, Manju Unnikrishnan 2, S. Akbar Ali
More informationLEGO BB-8 Release: LEGO BB-8. Learn how to automate a LEGO BB-8for motion, light, and sound using Crazy Circuits. Written By: Joshua
LEGO BB-8 Learn how to automate a LEGO BB-8for motion, light, and sound using Crazy Circuits. Written By: Joshua 2018 browndoggadgets.dozuki.com/ Page 1 of 18 INTRODUCTION We absolutely LOVE the new LEGO
More informationVision-Motion Planning with Uncertainty
Vision-Motion Planning with Uncertainty Jun MIURA Yoshiaki SHIRAI Dept. of Mech. Eng. for Computer-Controlled Machinery, Osaka University, Suita, Osaka 565, Japan jun@ccm.osaka-u.ac.jp Abstract This paper
More informationMTRX4700: Experimental Robotics
Stefan B. Williams April, 2013 MTR4700: Experimental Robotics Assignment 3 Note: This assignment contributes 10% towards your final mark. This assignment is due on Friday, May 10 th during Week 9 before
More informationVISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS
University of Portland Pilot Scholars Engineering Faculty Publications and Presentations Shiley School of Engineering 2016 VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS Steven R. Vegdahl University
More informationUniversity of Moratuwa
University of Moratuwa B.Sc. Engineering MAP BUILDING WITH ROTATING ULTRASONIC RANGE SENSOR By 020075 A.C. De Silva (EE) 020138 E.A.S.M. Hemachandra (ENTC) 020166 P.G. Jayasekara (ENTC) 020208 S. Kodagoda
More informationVisually Augmented POMDP for Indoor Robot Navigation
Visually Augmented POMDP for Indoor obot Navigation LÓPEZ M.E., BAEA., BEGASA L.M., ESCUDEO M.S. Electronics Department University of Alcalá Campus Universitario. 28871 Alcalá de Henares (Madrid) SPAIN
More informationIntroduction to National Instruments LabVIEW and Data Acquisition (DAQ)
Introduction to National Instruments LabVIEW and Data Acquisition (DAQ) Danial J. Neebel, Joseph R. Blandino, and David J. Lawrence, College of Integrated Science and Technology James Madison University
More informationFinal Exam : Introduction to Robotics. Last Updated: 9 May You will have 1 hour and 15 minutes to complete this exam
Final Exam 16-311: Introduction to Robotics Last Updated: 9 May 2017 Name: Andrew ID: Team Number: You will have 1 hour and 15 minutes to complete this exam There are 6 sections on 20 pages. Make sure
More informationBasics of Localization, Mapping and SLAM. Jari Saarinen Aalto University Department of Automation and systems Technology
Basics of Localization, Mapping and SLAM Jari Saarinen Aalto University Department of Automation and systems Technology Content Introduction to Problem (s) Localization A few basic equations Dead Reckoning
More informationVision Guided AGV Using Distance Transform
Proceedings of the 3nd ISR(International Symposium on Robotics), 9- April 00 Vision Guided AGV Using Distance Transform Yew Tuck Chin, Han Wang, Leng Phuan Tay, Hui Wang, William Y C Soh School of Electrical
More informationFormal Model. Figure 1: The target concept T is a subset of the concept S = [0, 1]. The search agent needs to search S for a point in T.
Although this paper analyzes shaping with respect to its benefits on search problems, the reader should recognize that shaping is often intimately related to reinforcement learning. The objective in reinforcement
More informationCOSC160: Data Structures: Lists and Queues. Jeremy Bolton, PhD Assistant Teaching Professor
COSC160: Data Structures: Lists and Queues Jeremy Bolton, PhD Assistant Teaching Professor Outline I. Queues I. FIFO Queues I. Usage II. Implementations II. LIFO Queues (Stacks) I. Usage II. Implementations
More informationINCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM
INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming
More informationCS 112 Final May 8, 2008 (Lightly edited for 2012 Practice) Name: BU ID: Instructions
CS 112 Final May 8, 2008 (Lightly edited for 2012 Practice) Name: BU ID: This exam is CLOSED book and notes. Instructions The exam consists of six questions on 11 pages. Please answer all questions on
More informationBloss, Adrienne and N. Jane Ingram. Lab Manual to Accompany Java Software Solutions. New York, New York: Pearson Education, Inc, 2003.
Course Overview AP Computer Science A emphasizes a study in object-oriented programming methodologies with a focus on problem solving and algorithm development. Data structures, design, and abstraction
More informationA Java Execution Simulator
A Java Execution Simulator Steven Robbins Department of Computer Science University of Texas at San Antonio srobbins@cs.utsa.edu ABSTRACT This paper describes JES, a Java Execution Simulator that allows
More informationDesign and Implementation of a Real-Time Autonomous Navigation System Applied to Lego Robots
ThBT1.4 Design and Implementation of a Real-Time Autonomous Navigation System Applied to Lego Robots Thi Thoa Mac, Cosmin Copot Clara M. Ionescu Dynamical Systems and Control Research Group, Department
More informationFormations in flow fields
Formations in flow fields Rick van Meer June 11, 2015 1 Introduction Pathfinding and formations (i.e. an arrangement of agents) are both a part of artificial intelligence and can be used in games. However,
More informationPath-planning by Tessellation of Obstacles
Path-planning by Tessellation of Obstacles Tane Pendragon and Lyndon While School of Computer Science & Software Engineering, The University of Western Australia, Western Australia 6009 email: {pendrt01,
More informationRobolab. Table of Contents. St. Mary s School, Panama. Robotics. Ch. 5: Robolab, by: Ernesto E. Angulo J.
Robolab 5 Table of Contents Objectives...2 Starting the program...2 Programming...3 Downloading...8 Tools...9 Icons...9 Loops and jumps...11 Multiple tasks...12 Timers...12 Variables...14 Sensors...15
More informationHow to Measure Wedge. Purpose. Introduction. Tools Needed
Purpose Optical Wedge Application (OWA) is an add-on analysis tool for measurement of optical wedges in either transmission or reflection. OWA can measure a single part or many parts simultaneously (e.g.
More informationITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS
ITT Technical Institute SD1420 Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 56 (34 Theory Hours, 22 Lab Hours Prerequisite(s and/or Corequisite(s: Prerequisite: PT1420
More informationPart A: Monitoring the Touch Sensor and Ultrasonic Sensor
LEGO MINDSTORMS NXT Lab 2 This lab introduces the touch sensor and ultrasonic sensor which are part of the Lego Mindstorms NXT kit. The ultrasonic sensor will be inspected to gain an understanding of its
More informationLocal Search Methods. CS 188: Artificial Intelligence Fall Announcements. Hill Climbing. Hill Climbing Diagram. Today
CS 188: Artificial Intelligence Fall 2006 Lecture 5: Robot Motion Planning 9/14/2006 Local Search Methods Queue-based algorithms keep fallback options (backtracking) Local search: improve what you have
More informationAnnouncements. CS 188: Artificial Intelligence Fall Robot motion planning! Today. Robotics Tasks. Mobile Robots
CS 188: Artificial Intelligence Fall 2007 Lecture 6: Robot Motion Planning 9/13/2007 Announcements Project 1 due (yesterday)! Project 2 (Pacman with ghosts) up in a few days Reminder: you are allowed to
More informationCS 188: Artificial Intelligence Fall Announcements
CS 188: Artificial Intelligence Fall 2007 Lecture 6: Robot Motion Planning 9/13/2007 Dan Klein UC Berkeley Many slides over the course adapted from either Stuart Russell or Andrew Moore Announcements Project
More informationREINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION
REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION ABSTRACT Mark A. Mueller Georgia Institute of Technology, Computer Science, Atlanta, GA USA The problem of autonomous vehicle navigation between
More informationSensor Modalities. Sensor modality: Different modalities:
Sensor Modalities Sensor modality: Sensors which measure same form of energy and process it in similar ways Modality refers to the raw input used by the sensors Different modalities: Sound Pressure Temperature
More informationITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS
ITT Technical Institute ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 67 (41 Theory Hours, 26 Lab Hours Prerequisite(s and/or Corequisite(s:
More informationConstraint Satisfaction Problems. slides from: Padhraic Smyth, Bryan Low, S. Russell and P. Norvig, Jean-Claude Latombe
Constraint Satisfaction Problems slides from: Padhraic Smyth, Bryan Low, S. Russell and P. Norvig, Jean-Claude Latombe Standard search problems: State is a black box : arbitrary data structure Goal test
More informationComparison between Various Edge Detection Methods on Satellite Image
Comparison between Various Edge Detection Methods on Satellite Image H.S. Bhadauria 1, Annapurna Singh 2, Anuj Kumar 3 Govind Ballabh Pant Engineering College ( Pauri garhwal),computer Science and Engineering
More informationRapid Simultaneous Learning of Multiple Behaviours with a Mobile Robot
Rapid Simultaneous Learning of Multiple Behaviours with a Mobile Robot Koren Ward School of Information Technology and Computer Science University of Wollongong koren@uow.edu.au www.uow.edu.au/~koren Abstract
More informationJava Class Visualization for Teaching Object-Oriented Concepts
Java Class Visualization for Teaching Object-Oriented Concepts Herbert L. Dershem and James Vanderhyde Department of Computer Science Hope College Holland, MI 49422-9000 dershem@cs.hope.edu Abstract Visualization
More informationEfficient SLAM Scheme Based ICP Matching Algorithm Using Image and Laser Scan Information
Proceedings of the World Congress on Electrical Engineering and Computer Systems and Science (EECSS 2015) Barcelona, Spain July 13-14, 2015 Paper No. 335 Efficient SLAM Scheme Based ICP Matching Algorithm
More informationLocal Image Registration: An Adaptive Filtering Framework
Local Image Registration: An Adaptive Filtering Framework Gulcin Caner a,a.murattekalp a,b, Gaurav Sharma a and Wendi Heinzelman a a Electrical and Computer Engineering Dept.,University of Rochester, Rochester,
More informationState-Space Search. Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Solving Problems by Searching
State-Space Search Computer Science E- Harvard Extension School David G. Sullivan, Ph.D. Solving Problems by Searching A wide range of problems can be formulated as searches. more precisely, as the process
More informationAN IMPLEMENTATION OF PATH PLANNING ALGORITHMS FOR MOBILE ROBOTS ON A GRID BASED MAP
AN IMPLEMENTATION OF PATH PLANNING ALGORITHMS FOR MOBILE ROBOTS ON A GRID BASED MAP Tolga YÜKSEL Abdullah SEZGİN e-mail : tyuksel@omu.edu.tr e-mail : asezgin@omu.edu.tr Ondokuz Mayıs University, Electrical
More informationCS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 04 / 06 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Definition Terminology two ways to represent edges in implementation traversals
More informationRobot Motion Planning Using Generalised Voronoi Diagrams
Robot Motion Planning Using Generalised Voronoi Diagrams MILOŠ ŠEDA, VÁCLAV PICH Institute of Automation and Computer Science Brno University of Technology Technická 2, 616 69 Brno CZECH REPUBLIC Abstract:
More informationPathfinding. Advaith Siddharthan
Pathfinding Advaith Siddharthan Context What is Intelligence? Rational? Search Optimisation Reasoning Impulsive? Quicker response Less predictable Personality/Emotions: Angry/Bored/Curious Overview The
More information1 Project: Fast Trajectory Replanning for Computer Games
Project: Fast rajectory Replanning for omputer Games Figure : otal nnihilation by avedog onsider characters in real-time computer games, such as otal nnihilation shown in Figure. o make them easy to control,
More informationCS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 04 / 13 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Depth First Search (DFS) Shortest path Shortest weight path (Dijkstra's
More informationRoadmaps. Vertex Visibility Graph. Reduced visibility graph, i.e., not including segments that extend into obstacles on either side.
Roadmaps Vertex Visibility Graph Full visibility graph Reduced visibility graph, i.e., not including segments that extend into obstacles on either side. (but keeping endpoints roads) what else might we
More informationInternational Journal of Computer & Organization Trends Volume 5 Issue 1 Jan to Feb 2015
Introducing Autonomous Car Methodology in WSN Promita Maitra 1, Sohini Nandi 2, Ipsita Saha 3, Poojarini Mitra 4, Sayani Chandra 5 1 Student, Dept. of Computer Science and Engineering, Gurunanak Institute
More informationFrom Personal Computers to Personal Robots
From Personal Computers to Personal Robots Challenges in Computer Science Education Nikolaus Correll Department of Computer Science University of Colorado at Boulder Mechanism vs. Computer Unimate (1961)
More informationAssignment 4: CS Machine Learning
Assignment 4: CS7641 - Machine Learning Saad Khan November 29, 2015 1 Introduction The purpose of this assignment is to apply some of the techniques learned from reinforcement learning to make decisions
More informationPraktikum 2014 Parallele Programmierung Universität Hamburg Dept. Informatics / Scientific Computing. October 23, FluidSim.
Praktikum 2014 Parallele Programmierung Universität Hamburg Dept. Informatics / Scientific Computing October 23, 2014 Paul Bienkowski Author 2bienkow@informatik.uni-hamburg.de Dr. Julian Kunkel Supervisor
More informationB-Trees and External Memory
Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 and External Memory 1 1 (2, 4) Trees: Generalization of BSTs Each internal node
More informationCITS 4402 Computer Vision
CITS 4402 Computer Vision A/Prof Ajmal Mian Adj/A/Prof Mehdi Ravanbakhsh, CEO at Mapizy (www.mapizy.com) and InFarm (www.infarm.io) Lecture 02 Binary Image Analysis Objectives Revision of image formation
More informationNERC Gazebo simulation implementation
NERC 2015 - Gazebo simulation implementation Hannan Ejaz Keen, Adil Mumtaz Department of Electrical Engineering SBA School of Science & Engineering, LUMS, Pakistan {14060016, 14060037}@lums.edu.pk ABSTRACT
More informationLego Robot Remote Mapping
Registration number 99 Lego Robot Remote Mapping Supervised by Dr Graeme Richards University of East Anglia Faculty of Science School of Computing Sciences Abstract This paper describes the design, implementation
More informationAdvanced Robotics Path Planning & Navigation
Advanced Robotics Path Planning & Navigation 1 Agenda Motivation Basic Definitions Configuration Space Global Planning Local Planning Obstacle Avoidance ROS Navigation Stack 2 Literature Choset, Lynch,
More information