Artificial Intelligence Planning and Decision Making

Similar documents
Mindstorms NXT. mindstorms.lego.com

Pre-Activity Quiz. 2 feet forward in a straight line? 1. What is a design challenge? 2. How do you program a robot to move

Learning serious knowledge while "playing"with robots

Pre-Day Questionnaire

An Introduction to Programming using the NXT Robot:

Multi-Agent Robotics with GPS Navigation

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. LEGO Bowling Workbook

A Rubik s Cube Solving Robot Using Basic Lego Mindstorms NXT kit

How Do You Make a Program Wait?

Closed-Loop Transportation Simulation. Outlines

Robotics will be very important for the humanity in the next 10 years and this ebook is an effort to help in this way.

Robot Programming Manual

Automata Depository Model with Autonomous Robots

Mobile Robot Navigation Contest for Undergraduate Design and K-12 Outreach

Path Following and Obstacle Avoidance Fuzzy Controller for Mobile Indoor Robots

Autonomous Obstacle Avoiding and Path Following Rover

2.4 Sensorized robots

Welcome to. NXT Basics. Presenter: Wael Hajj Ali With assistance of: Ammar Shehadeh - Souhaib Alzanki - Samer Abuthaher

Afterschool Clubs & One Day Workshops Create. Code. Innovate.

BEYOND TOYS. Wireless sensor extension pack. Tom Frissen s

C - Underground Exploration

Devastator Tank Mobile Platform with Edison SKU:ROB0125

TU Graz Robotics Challenge 2017

Multi-Robot Cooperative System For Object Detection

RCJ Rescue B. RCJ Rescue B Primary Team Branchburg, NJ USA. Storming Robots in Branchburg, NJ, USA. SR-chitect / Storming Robots

VOICE CONTROLLED ROBOT WITH REAL TIME BARRIER DETECTION AND AVERTING

COSC343: Artificial Intelligence

Developing Applications for the ROBOBO! robot

Chapter 1. Robots and Programs

RUNNYMEDE COLLEGE & TECHTALENTS

A maze-solving educational robot with sensors simulated by a pen Thomas Levine and Jason Wright

understanding sensors

Week Lesson Assignment SD Technology Standards. SPA Handout. Handouts. Handouts/quiz. Video/handout. Handout. Video, handout.

Q Learning Behavior on Autonomous Navigation of Physical Robot

Robotic teaching for Malaysian gifted enrichment program

Ev3 Robotics Programming 101

Proseminar Roboter und Aktivmedien. Outline of today s lecture. Acknowledgments. Educational robots achievements and challenging

The use of programmable robots in the education of programming

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

Vision Ques t. Vision Quest. Use the Vision Sensor to drive your robot in Vision Quest!

Final Report. Chazer Gator. by Siddharth Garg

Automatic Headlights

Erik Von Burg Mesa Public Schools Gifted and Talented Program Johnson Elementary School

Robotics using Lego Mindstorms EV3 (Intermediate)

Team Project: A Surveillant Robot System

RAPID CONTROL PROTOTYPING FOR ELECTRIC DRIVES

Open Source in Mobile Robotics

How Does an Ultrasonic Sensor Work?

Lego Nxt in Physical Etoys

The Nomenclature and Geometry of LEGO

TUTA/IOE/PCU All rights reserved. Printed in Nepal Fax: My First Humanoid Robot An Experience worth Sharing with Freshmen and Sophomore

Automobile Prototype Servo Control

Robot Olympics: Programming Robots to Perform Tasks in the Real World

Guiding Visually Impaired People with NXT Robot through an Android Mobile Application

VEX Robotics Platform and ROBOTC Software. Introduction

acknowledgments...xv introduction...xvii 1 LEGO MINDSTORMS NXT 2.0: people, pieces, and potential getting started with the NXT 2.0 set...

Boe-Bot robot manual

Designing Toys That Come Alive: Curious Robots for Creative Play

Maze Solving Algorithms for Micro Mouse

Development of a MATLAB Data Acquisition and Control Toolbox for BASIC Stamp Microcontrollers

I.1 Smart Machines. Unit Overview:

Instructional Technology Center

University of Toronto. Companion Robot Security. ECE1778 Winter Wei Hao Chang Apper Alexander Hong Programmer

Introduction to the VEX Robotics Platform and ROBOTC Software

Mars Rover: System Block Diagram. November 19, By: Dan Dunn Colin Shea Eric Spiller. Advisors: Dr. Huggins Dr. Malinowski Mr.

On-demand printable robots

Part of: Inquiry Science with Dartmouth

Deriving Consistency from LEGOs

Unit 4: Robot Chassis Construction

Curriculum Activities for Driving Course Curriculum Sample 1

Team Autono-Mo. Jacobia. Department of Computer Science and Engineering The University of Texas at Arlington

An Algorithm for Dispersion of Search and Rescue Robots

Advanced Mechatronics 1 st Mini Project. Remote Control Car. Jose Antonio De Gracia Gómez, Amartya Barua March, 25 th 2014

Line Detection. Duration Minutes. Di culty Intermediate. Learning Objectives Students will:

A Learning System for a Computational Science Related Topic

Using Small Affordable Robots for Hybrid Simulation of Wireless Data Access Systems

Robotics 2a. What Have We Got to Work With?

ACTIVE LEARNING USING MECHATRONICS IN A FRESHMAN INFORMATION TECHNOLOGY COURSE

After Performance Report Of the Robot

Intelligent Robotics Assignments

INTERACTIVE BUILDING BLOCK SYSTEMS

Building Robots With Lego Mindstorms Nxt

Undefined Obstacle Avoidance and Path Planning

Robots in the Loop: Supporting an Incremental Simulation-based Design Process

Unit 12: Artificial Intelligence CS 101, Fall 2018

THE USE OF LEGO MINDSTORMS NXT ROBOTS IN THE TEACHING OF INTRODUCTORY JAVA PROGRAMMING TO UNDERGRADUATE STUDENTS

Robot Gladiators: A Java Exercise with Artificial Intelligence

Vishnu Nath. Usage of computer vision and humanoid robotics to create autonomous robots. (Ximea Currera RL04C Camera Kit)

2013 RESEARCH EXPERIENCE FOR TEACHERS - ROBOTICS

Smart-M3-Based Robot Interaction in Cyber-Physical Systems

Team Description Paper

Computational Crafting with Arduino. Christopher Michaud Marist School ECEP Programs, Georgia Tech

Let There Be Light. Opening Files. Deleting National Technology and Science Press

Activity Template. Subject Area(s): Science and Technology Activity Title: Header. Grade Level: 9-12 Time Required: Group Size:

Mobile Robot Platform for Improving Experience of Learning Programming Languages

Escape From ENGINEERING ISLAND KU High School Design

Introduction.

Embedded Control Project -Iterative learning control for

Wheeled Mobile Robot Obstacle Avoidance Using Compass and Ultrasonic

Robotics Workshop. for Parents and Teachers. September 27, 2014 Wichita State University College of Engineering. Karen Reynolds

Transcription:

Artificial Intelligence Planning and Decision Making NXT robots co-operating in problem solving authors: Lior Russo, Nir Schwartz, Yakov Levy

Introduction: On today s reality the subject of artificial intelligence and machine decision making is being researched by many institutions across the world. in that research process there is use of robotics. In this project we will deal with the subject of robotics.robotics is the branch of technology that deals with the design, construction, operation and application of robots and computer systems for their control, sensory feedback, and information processing. Taking under consideration that robots help our lives every day, we would like to examine the ability to combine robots abilities to a bigger decision maker planner which will be able to operate all of the robots tasks in a synced, logical based manner. The work will be based on the Lego Mindstorms NXT robots. Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006. There are a few programing possibilities to work with Lego Mindstorms NXT for example NXT-G, C# with Microsoft Robotics Developer Studio, BricxCC, lejos NXJ etc. In our project we will work with the lejos NXJ. lejos NXJ is a high level open source language based on Java that uses custom firmware developed by the lejos team.

Motivation: Show that 3 individual robots with different abilities can work together to achieve a certain goal. Each robot has a different ability, all the robots must cooperate. The robots have only simple logic, they can perform only simple tasks as: Move Forward Rotate left/right Activate a sensor The actual logic is in a main server, the server communicates with all robots via Bluetooth. The server is the brain. The server knows at every single moment the state of the world: Where every robot is located The direction of every robot. Saves information that was discovered in the past, according to this information it decides what to do next, in other words: it decides which command has to be sent to each robot. Concrete Goal: Solve a maze. The maze contains: Free paths Free paths are tiles that the robots can go through Wall A permanent obstacle, The robots can t go through, this obstacle can t be removed. Balloon An obstacle. This type of obstacle can be removed.

Platform: Hardware: Mindstorm NXT Robots Communication: Bluetooth Software: Lejos framework for java: Lejos is a framework for java for working with NXT-Robots. The Lejos framework support communication with only 1 robot, we had to modify and recompile it to support multi-robot communication. The lejos framework can be downloaded from here: http://lejos.sourceforge.net/ Robots Abilities Alice Vision Ability, Alice uses the NXT Ultra Sonic sensor, with this sensor she can tell whether a tile is a free tile or an obstacle. She can t classify whether it s a balloon or a wall. Bob Color Identification, Bob can tell the color of an object. With this information our planner can classify obstacles to balloons or walls. Black color for a wall and red for a balloon. Colin Popping motor. With this special motor colin can pop balloons. World Modulation Our world is module into a 8x8 board. Every tile can be: Unknown Is a tile that have not been explored yet Free Paths Wall Balloon In addition, every robot contains a location and direction. The direction can be one of the following: Up, Down, Left or Right

Algorithm: States: Initial State Initial state is the state that we start our run from. In other words our planner will start solving the maze from this point. Goal State is a state of a run that satisfies the goal State Space World module: we would like to module the real world into the program. therefore we ve created a a world state that is known by the Planner and a GUIModule which shows in which tile each robot stands and to what direction it face. the Planner is aware of the state of the world and reflects it to the GUI, in order for the Planner to be aware of the state of the world we had to overcome a few problems encountered due to the gap between the world with physical limitation to the world described by the desirable world of accurate actions.. problems: solutions: 1. The robots doesn t move straight when moving forward. 2. The robots doesn t turn in the exact angle requested in the task. 3. The sensors of the robots will work in certain range only.

The main solution to all of our problems was to mark each tile frame with black stripes. using the light sensors localized in front of each robot before the front wheels. the sensors will be apart of the moving and turning tasks of the robots. In each task the robots will align to the black stripe and by that will make sure they are located in the front end of the tile. This alignment will lead to straightening the robots to the direction of the next movement to perform and also will make sure the front color, ultrasonic sensors and pin motor will be close enough to the tile in front of the robot and will be able to perform the acquired task accurately enough to give the expected results. Tasks Our server can send tasks to our robots via Bluetooth, the tasks are one of the following: Move forward task o Pre Condition: The robot is not a in front of an obstacle, edge or unknown tile o Post Condition: The robot location will be changed according to his direction Rotate task o Pre Condition: None. o Post Condition: The robot direction will be changed. Vision Task o Pre Condition: The robot has Ultra Sonic Sensor, the robot is standing in front of unknown tile o Post condition: If the tile in front of the robot is an obstacle then the tile will be marked as unknown obstacle If the tile in front of the robot is a free tile then the tile will be marked as free Color identification Task o Pre Condition: The robot has a color sensor, the robot is standing in front of unknown obstacle o Post Condition: If the color sensor returns Black color the in front of the robot will be marked as a wall If the color sensor returns Red color the in front of the robot will be marked as a balloon Pop a balloon Task o Pre Condition: The robot has a pin motor and he is standing in front of a balloon o Post Condition: The tile in front of the robot changed from Balloon tile to Free tile Waiting Task (Tells the robot to rest for 0.5 second) o Pre condition: None. o Post Condition: None.

Algorithm - Planner Our server contains the world modulation as we described above. The server has an algorithm that decides which task to send to which robot at every moment, this algorithm is called Planner. At the beginning our planner gives the robots tasks in order to explore the world. For example, it will give Alice move tasks and vision tasks in order to explore every unknown tile. The planner will explore the world with the Right hand method : The planner will send Bob To unknown obstacle tiles and then gives him Color Identification task, this is in order to determine if the tile is a wall or a balloon. The planner will send Colin to Balloon tiles and then gives him Pop a balloon task, this is in order to clear the obstacle. If a part of the maze is totally explored, then the planner won t send robots to this part (Exploitation) Source Code Lejos http://lejos.sourceforge.net/ lejos is a Java based replacement firmware for the Lego Mindstorms. We implemented our Maze Solver in java, we used the lejos library. Lejos library doesn t support more than 1 robot- Lejos sends instruction to the lego inner framework via NXTCommand class. The problem is that this class is a singletone, in lots of lejos classes we can find this line: private static final NXTCommand nxtcommand = NXTCommandConnector.getSingletonOpen(); In our case it won t work, we need multiple robots, hence, we need multiple NXTCommand instances. We changed the lejos library, we changed the NXTCommand declaration to: private NXTCommand nxtcommand = null; Every class that needs the NXTCommand, has it own NXTCommand, and we pass to him the NXTCommand in the constructor.

Classes Logic hanadling classes MasterMind - this is the main class. Here the main function is found. This class make all the process going on. At the beginning it initialize the: - Robots classes - World State - The planner. Every time a robot finish a task, The master mind is notified (Master mind implements the TaskListener interface), He asks from the planner for the next task for the specific robot and gives the robot that task, All of this is done in the function: taskfinished Planner - this is the Brain of the MazeSolver. The planner contains the gettaskforrobot this function is called every time a robot finishes his task and asks for his next task. The planner contains the world state. according to the WorldState and the robot abilities it decides which task to give him. Eventually the gettaskforrobot returns a Task class Task classes Task Task is an abstract class. A task represents a simple task like going forward, rotating and so on. Task should contain only technique implementations, not the logic. All Task in our project should inherit from this class. Every task contains the Robot associated to the task. public void updateworldstatepreaction(robot robot, WorldState state) This function is called before the task is executed public abstract void updateworldstateafteraction(robot robot, WorldState state) This function is called after the task is executed. The following classes inherit from Task: MoveTask Contains a direction and speed. For simplicity we have only 3 options: rotate left, rotate right and move forward. After every move Task we correct the robot direction by moving it until he meets the black line. 90% of the way we move with high speed, than we go on with a much lower speed until we meet the black line, for that we wrote the moveuntilmeetblackline function. updateworldstatepreaction Before we start to move we logically lock the tile we are attempting to move. updateworldstateafteraction - After we finish the move, we logically unlock the previous tile location. ExplodeTask Explode ballon task. When executed the robots will pin anything in front of him. updateworldstateafteraction We will mark the tile in front of the robot as unknow. We don t mark it as Free tile because first we want to check the balloon explosion succeeded. VisionTask Check if the Tile in front of the robot is free or not. updateworldstateafteraction if The tile is free then we marked the tile in front as free. Otherwise we marked it as unknown onstacle WaitingTask The robot waits 0.5 second. This task is given by the planner when there is nothing to give the robot at the moment. ColorTask This task is given to identify obstacle.

updateworldstateafteraction If red color returned, we mark the tile in front as a balloon obstacle, else we mark the tile in front as a wall obstacle World state classes (World modulation) Robot - The Robot class represents a robots. The robot class contains a RobotState class, A Task class (m_currenttask) and RobotState - The robot state class contains the state of the robot: The robot location, robot angle. It also contains boolean that indicated the robots abilities: HasUltraSonicSensor,HasFrontColorSensor,HasPinMotor WorldState- the world state class contains the modulation of the world. It contains 2 demotions array of Tiles Tile - tile represents a tile on the board. A tile contains the following members tiletype - which can be: unknown, free, wall, checkedwall or redballoned. (wall in other word is unknow obstacle ). RobotState - the robot that is inside the tile. Null means that the tile is empty LockedByRobot - The tile is locked by this robot. If null, that mean that nobody is locking this tile. LockedByRobot is different than RobotState, The robot doesn t need to be inside the tile inorder to lock it, for example if a robot moves from tile x to tile y, in the moment he starts his move he locks tile y. GUI classes GUIModule - the GUIModule responsible for showing us a graphical view of the world state, the GUIModule contains a 2 demotions array of BoardTileLayout. BoardTileLayout - responsible for showing a graphical view of signle tile