Nir Mendel, Yuval Pick & Ilya Roginsky Advisor: Prof. Ronen Brafman

Post on 06-Jan-2018

223 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Project’s objectives Adding new capabilities for the robot. Combining capabilities of the robot in to a single package. Providing an easy interface for using each task independently. Creating sub-methods (services) for a simple creation of future capabilities. Written in Python over ROS (Robot OS), for the Komodo Robot.

Transcript

ROBOT-NYI

Nir Mendel, Yuval Pick & Ilya RoginskyAdvisor: Prof. Ronen Brafman

Project’s objectives

• Adding new capabilities for the robot.• Combining capabilities of the robot in to a

single package.• Providing an easy interface for using each

task independently.• Creating sub-methods (services) for a simple

creation of future capabilities.• Written in Python over ROS (Robot OS), for

the Komodo Robot.

Robot’s description

• Comprised of 3 modules:– Rover Module.– Sensors Module.– Arm Module.

• Significant Sensors:– 3 range sensors (left, right, front)– Laser Rangefinder (Hokuyo URG-04LX-UG01)– Asus XTION PRO LIVE - RGB and Depth Sensor – IMU (3-axis accelerometer, gyro and magnetometer)

ROS Environment

ROS is an open-source operating system of the robot. It provides services such as: low-level device control, message-passing between processes, and package management. It also provides tools and libraries for writing, and running code.

Sample topics in the robot package:• /komodo_1/ranges/left_urf• /komodo_1/cmd_vel• /komodo_1/scan• /komodo_1/odom_pub• …

ROS Concepts• Packages - the main unit for organizing software in ROS.

A package may contain nodes, libraries, datasets, configuration files, or anything else that is usefully organized together.

• Messages - a data structure used for communication between nodes. (like C structs)

• Topics - Publish / Subscribe communication.A node sends out a message by publishing it to a given Topic. All nodes that are subscribed to that Topic will receive that message

• Services - Request / Reply communication.This is defined by a pair of message structures: (request/reply) A node offers a service under a name and a client uses the service by sending the request message and awaiting the reply

• Nodes - processes that perform computation.A robot control system usually comprises many nodes.

Existing capabilities• Cupinator – a cup detection and approach

capability of the robot.Created by Lior Zur-Lotan, Maor Ashkenazi and Micahel Bar-Sinai.This project enables basic object recognition in an unknown environment, for known objects.This is done by a specialized implementation of the the ShapeContext algorithm

New capabilities• Safe hallway movement:

Moves inside a hallway while detecting obstacles and stops when reaching an impassable obstacle.Managed in ‘HallwayEngine.py’.

• Obstacle avoidance:Passes obstacle in front either from the left or right side. If impossible returns to original position.Managed in ‘ObstaclesEngine.py’

• Door passage:Searches and passes through a given door in a hallway.Managed in ‘DoorEngine.py’

MENUThe flow control of the robot.Has 4 options:

• ‘door’/’d’ – Door passage.

• ‘obstacle’/’o’ – passes an

obstacle.

• ‘cup’/’c’ – searches a cup and

navigates towards it.

• ‘hallway’/’h’ – moves safely in a

hallway.

PROVIDED METHODSMethods provided for future implementation of additional capabilities:

• Moving forward a single step.• Moving forwards a given amount of steps.• Managing small obstacles by making small

fixes.• Turning in 90 degrees.• Bypassing an obstacle.• “Sticking” to a wall at a given side of the

robot.• Checking if the robot is near a door.

PROBLEMS• Physical –

• Cannot move straight.• Difficulties turning.• Slides

• Software – – Re-executed old commands.

• Administrative –– Real Robot vs. Gazibo– Only one robot – and several teams– Robot sent to fix

Project’s Diagram

Summary• We gathered several tasks into a single package, and

provided a simple interface for each task.

• The division of the project into many classes (in such a way so that each class is responsible for some subtask), Allows for each service to used in the future in additional capabilities.

• The implementation was based mainly on Trial and Error, due to the lack of documentation during the last year, Komodo’s software bugs, inaccurate results returned from the robot’s sensors, and unplanned malfunctions occurred to the robot.

QUESTIONS?

top related