23.08.2015 Views

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

– When NAO wants to press a button, its hand should be empty. For exampleNAO can not open the door or call the doctor, when carrying trash.– NAO cannot be at more than one location at the same time, so when it hastwo different goals to go to two different locations, these goals are conflicting.– To perform T2, NAO should first go to the location L and stop there in sucha way that its orientation is O to be in a certain distance from the drug boxand maintain its camera’s orientation towards the box. Then NAO shouldkeep this location and orientation while taking pictures to analyze if the boxis empty.– When parallel execution <strong>of</strong> plans have a conflict, priorities <strong>of</strong> the tasks fromthe highest to the lowest are: T7, T5, T3, T2, T1, T6, T4.– There are two classes <strong>of</strong> priorities: Non-preemptive priorities (T1 to T6)which are only applied when choosing which plan to start first, and preemptivepriorities (T7) which are applied at any time and can enforce theexecutions <strong>of</strong> other plans to be stopped if necessary. For example if the doorrings when NAO has already picked up a trash, NAO first finishes puttingthe trash in the trash can and then opens the door, but when Araz/Moricalls for help, NAO leaves any other tasks and in this case throws the trashaway instantly and performs T7.3 Integration with Robotic FrameworksCurrent robotic control architectures agree on the need for a functional layer toprovide different robot’s action and perception capabilities and processing algorithmssuch as image processing, path planning and motion control in a modularway. Robotic control architectures differ in the way functional layer modules arecontrolled to achieve more complex tasks. A functional layer is usually composed<strong>of</strong> a large number <strong>of</strong> modules. In order to cope with ever growing scaleand scope <strong>of</strong> robotic systems, a wide variety <strong>of</strong> robotic frameworks has beendeveloped to facilitate the development, re-use and maintainability <strong>of</strong> the functionallayer modules [20, 17]. Advantages <strong>of</strong> these frameworks include: providingstandard interfaces for accessing heterogeneous robotic hardwares; facilitatingrobotic s<strong>of</strong>tware development and reuse by using s<strong>of</strong>tware engineering techniquessuch as component based s<strong>of</strong>tware development; providing s<strong>of</strong>tware developmenttools such as programming environments; and providing open-source repositories<strong>of</strong> robotic s<strong>of</strong>twares.ROS An example <strong>of</strong> such robotic frameworks is ROS (Robot Operating System)[32]which has currently become the de-facto standard open source roboticframework. The ROS repository has an ever increasing number <strong>of</strong> state-<strong>of</strong>-the-arts<strong>of</strong>tware packages for interfacing various robotic hardware, and for performingdifferent robotic tasks such as SLAM, image processing, etc. Providing accessto such advanced robotic s<strong>of</strong>tware packages significantly eases the rapid prototypingand development <strong>of</strong> complex robotic applications. ROS is a highly flexibleframework for developing a robotic functional layer. Using ROS, functional42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!