Embedded Motion Control 2017 Group 1: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 231: Line 231:
===Presentation===
===Presentation===
The initial design was presented on May 17th, 2017. Link to a PDF copy of the presentation slides: [[File:Presentation_EMC_intermediate_group_1_-_final.pdf]]
The initial design was presented on May 17th, 2017. Link to a PDF copy of the presentation slides: [[File:Presentation_EMC_intermediate_group_1_-_final.pdf]]
= Corridor Challenge 2017 =

Revision as of 20:16, 30 May 2017

Group Members

Name: Student id:
Karel van de Plassche 0653197
Joey Hendriks 0773023
Ioannis-Dionysios Bratis 0978560
Jad Haj Mustafa 0979428
Jip Reinders 0853301
Juliana Langen 0988532
Yanick Douven Tutor

 

Initial Design

Link to the PDF version of the initial design: PDF

Overview

In this article a summary of the embedded software design is presented.This software is used to solve the following problems:

  1. Corridor challenge: The robot should autonomously drive through a corridor and take the first exit.
  2. Maze challenge: The robot should autonomously drive through a maze and find the exit.

Requirements/Specifications

Type Requirement Specification
General - Be able to 'solve' any given configuration of walls.

- Do not bump into walls: Detect walls, define minimum distance.

- Move autonomously: Detect openings, junctions, crossings, dead ends, open spaces etc. and make optimal decision.

- Software easy to set up: As defined on general wiki page.

- Only one executable is allowed. The software will be updated on the robot before the challenge starts.

- Do not stand still too long: Detect time that robot is standing still, initiate movement after set time.

- Stop movement after task is achieved.

- The maximal translational velocity of PICO is 0.5 m/s.

- The maximal rotation velocity of PICO is 1.2 rad/s.

- Pico should not stay still for more than 30 seconds.

- Complete task within 2 attempts.

- The LRF has a width of about 4 rad (from -2 to 2 rad), with a resolution of about 1000 points.

Corridor - Finish the corridor challenge fast: Detect opening either on left/right, take turn, stop after finish line. - Back wheel across finish line within 5 minutes. Terminate afterwards.
Maze - Finish the maze challenge fast: Navigate maze, find exit, stop after finish line.

- Be able to reconstruct maze.

- Determine difference between dead end and door.

- Deal with open spaces.

- Deal with loops.

- Be able to open doors.

- Back wheel across finish line within 7 minutes. Terminate afterwards.

- Decide where to go when at a T-junction or crossing.

- Ring a bell and wait at a dead end to check for a door.

Functions

Function Description
Low-level initialize Initialize actuators
readSensors Read the odometer and laser data
turnLeft Turn 90° left
turnRight Turn 90° right
turnAround Turn 180°
stopMovement Stop omniwheels
driveForward Accelerate or decelerate
driveBackward Drive backward
driveLeft Move left
driveRight Move right
ringBell Ring the bell of the door.
Mid-level detectWall Detect a wall (~30cm)
detectCorner Detect a corner (crossing of two walls)
detectDeadEnd Detect a dead end
detectFinish Detect the finish line
detectOpenSpace Detect an open space
detectOpenWorld Detect if in the open world (like the maxe exit)
detectTJunction Detect a T-junction (where three corridors meet)
detectCrossing Detect a crossing (where the four corridors meet)
shutDown Terminate robot, if required
checkDoor Send a signal and wait x seconds
chooseCorridor Choose which corridor to take
High-level stayBetweenWalls Stay in the center of two walls
createMap Build map of surroundings
trackPath track the path through the map
detectLoop Detect a loop in the maze
detectStack Detect if stuck
optimalDecision Decide next move based on given algorithm

Components

The PICO robot consists of multiple components which are listed below:

  1. Sensors:
    1. Laser Range Finder (LRF): Through the LRF on the PICO one can detect the distance to an object.This is accomplished by sending a laser pulse in a narrow beam towards the object and measuring the time taken by the pulse to be reflected on the target and returned to the sender.
    2. Wheel encoders (odometry): Through the encoder one can obtain the speed of the wheels which can be used to control PICO based on the provided data.
  2. Actuators:
    1. Holonomic base (omni-wheels)
    2. Pan-tilt unit for head
  3. Computer
    1. Ubuntu14.04
    2. Intel I7



Interfaces

Specifications interfaces.png


Update - Week of May 14th, 2017

Progress

Initial programming for the corridor challenge was completed and tested. The functions created this week include gap detection, potential field implementation (for actuation control of Pico) and a main function to initiate the required actions. After testing the code using the simulator and Pico itself the next developments for the code are as follows: add a function that determines the location of walls and gaps, add a state manager that will keep track of the position of Pico relative to the walls and gaps and make decisions, and refine the potential field function so Pico moves straighter in the corridor.

Testing

The current design was tested using the simulator and Pico robot with varying degrees of success. Currently Pico can find the corridor and initiate the turn but does not make a wide enough turn to avoid the corners. Pico moves from side to side while driving through a corridor as well.

Presentation

The initial design was presented on May 17th, 2017. Link to a PDF copy of the presentation slides: File:Presentation EMC intermediate group 1 - final.pdf


Corridor Challenge 2017