Robotics Laboratory. Report Nao. 7 th of July Authors: Arnaud van Pottelsberghe Brieuc della Faille Laurent Parez Pierre-Yves Morelle

Similar documents
Introduction to Talking Robots

KI-SUNG SUH USING NAO INTRODUCTION TO INTERACTIVE HUMANOID ROBOTS

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. Kinect2Scratch Workbook

ROMEO Humanoid for Action and Communication. Rodolphe GELIN Aldebaran Robotics

Interface System for NAO Robots

Major Project SSAD. Mentor : Raghudeep SSAD Mentor :Manish Jha Group : Group20 Members : Harshit Daga ( ) Aman Saxena ( )

VOICE CONTROL BASED PROSTHETIC HUMAN ARM

Introduction to programming with Fable

Laboratory Mini-Projects Summary

CONCEPTS EXPLAINED CONCEPTS (IN ORDER)

Learning Actions from Demonstration

ModaDJ. Development and evaluation of a multimodal user interface. Institute of Computer Science University of Bern

KINECT CONTROLLED HUMANOID AND HELICOPTER

Lecture 6: Sensors and Actuators of NAO

VISUAL COMPONENTS [ PYTHON API ]

Overview. The Game Idea

May Edited by: Roemi E. Fernández Héctor Montes

Laboratory 1: Motion in One Dimension

Virtual Engineering: Challenges and Solutions for Intuitive Offline Programming for Industrial Robot

Dipartimento di Elettronica Informazione e Bioingegneria Robotics

PowerPoint Pro: Grouping and Aligning Objects

Robot: icub This humanoid helps us study the brain

CSC C85 Embedded Systems Project # 1 Robot Localization

Responding to Voice Commands

Harry Plummer KC BA Digital Arts. Virtual Space. Assignment 1: Concept Proposal 23/03/16. Word count: of 7

sin( x m cos( The position of the mass point D is specified by a set of state variables, (θ roll, θ pitch, r) related to the Cartesian coordinates by:

SHANTILAL SHAH ENGINEERING COLLEGE. Production engineering department. Computer Aided Manufacturing ( ) Laboratory Manual

Prof. Subramanian Ramamoorthy. The University of Edinburgh, Reader at the School of Informatics

T.C. MARMARA UNIVERSITY FACULTY of ENGINEERING COMPUTER ENGINEERING DEPARTMENT

Chapter 1 Introduction

Navigation of Transport Mobile Robot in Bionic Assembly System

UNIT VI. Current approaches to programming are classified as into two major categories:

GESTURE RECOGNITION SOLUTION FOR PRESENTATION CONTROL

TurtleBot2&ROS - Learning TB2

A Lego-Based Soccer-Playing Robot Competition For Teaching Design

MESA Cyber Robot Challenge: Robot Controller Guide

EE631 Cooperating Autonomous Mobile Robots. Lecture 1: Introduction. Prof. Yi Guo ECE Department

Implementation of Face Detection and Recognition of Indonesian Language in Communication Between Humans and Robots

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

10 MORE cool things to do with Cubelets

Handling station. Ruggeveldlaan Deurne tel

THESE ARE NOT TOYS!! IF YOU CAN NOT FOLLOW THE DIRECTIONS, YOU WILL NOT USE THEM!!

JEPPIAAR ENGINEERING COLLEGE

Introducing Scratch Game development does not have to be difficult or expensive. The Lifelong Kindergarten Lab at Massachusetts Institute

Using Simulation to Design Control Strategies for Robotic No-Scar Surgery

ESE 350 HEXAWall v 2.0 Michelle Adjangba Omari Maxwell

a. the costumes tab and costumes panel

Air Marshalling with the Kinect

ZJUDancer Team Description Paper Humanoid Kid-Size League of Robocup 2014

Input devices and interaction. Ruth Aylett

A conversation with Russell Stewart, July 29, 2015

SPIDERMAN VR. Adam Elgressy and Dmitry Vlasenko

STEP-BY-STEP THINGS TO TRY FINISHED? START HERE NEW TO SCRATCH? CREATE YOUR FIRST SCRATCH PROJECT!

ZJUDancer Team Description Paper

Report Career Values I

Trainyard: A level design post-mortem

Development of Running Robot Based on Charge Coupled Device

Graz University of Technology (Austria)

CS Problem Solving and Structured Programming Lab 1 - Introduction to Programming in Alice designed by Barb Lerner Due: February 9/10

Chapter 30: Game Theory

Introduction To Robotics (Kinematics, Dynamics, and Design)

Sketch technique. Introduction

A Kinect-based 3D hand-gesture interface for 3D databases

ZJUDancer Team Description Paper Humanoid Kid-Size League of Robocup 2015

RoboCup TDP Team ZSTT

Exercise 1-1. Control of the Robot, Using RoboCIM EXERCISE OBJECTIVE

Chapter 1 Introduction to Robotics

Foundation - 2. Exploring how local products, services and environments are designed by people for a purpose and meet social needs

ROBOT DESIGN AND DIGITAL CONTROL

Courses on Robotics by Guest Lecturing at Balkan Countries

Project 1: Game of Bricks

Training NAO using Kinect

Stabilize humanoid robot teleoperated by a RGB-D sensor

Human-like Assembly Robots in Factories

PROJECT REPORT: GAMING : ROBOT CAPTURE

Research Proposal: Autonomous Mobile Robot Platform for Indoor Applications :xwgn zrvd ziad mipt ineyiil zinepehe`e zciip ziheaex dnxethlt

Low cost robotic arm and cobotic

Drumtastic: Haptic Guidance for Polyrhythmic Drumming Practice

Spatial Sounds (100dB at 100km/h) in the Context of Human Robot Personal Relationships

Taffy Tangle. cpsc 231 assignment #5. Due Dates

Activity 1 Position, Velocity, Acceleration PHYS 010

Capstone Python Project Features

DESIGN YOUR LIFE YOUR PERSONAL GOAL SETTING KIT 2016 isucceed Pty Ltd

e d u c a t i o n Detect Dark Line Objectives Connect Teacher s Notes

Baset Adult-Size 2016 Team Description Paper

Perception. Read: AIMA Chapter 24 & Chapter HW#8 due today. Vision

LEGO MINDSTORMS CHEERLEADING ROBOTS

Workshop 9: First steps in electronics

Robone: Next Generation Orthopedic Surgical Device Final Report

Tele-Operated Anthropomorphic Arm and Hand Design

Creativity in Motion

SPQR RoboCup 2016 Standard Platform League Qualification Report

LAB 5: Mobile robots -- Modeling, control and tracking

2016, Kelley Chappell, PhD, All Rights Reserved 1

Dr. Ashish Dutta. Professor, Dept. of Mechanical Engineering Indian Institute of Technology Kanpur, INDIA

Create a Simple Game in Scratch

Converting Motion between Different Types of Humanoid Robots Using Genetic Algorithms

Hierarchical Controller for Robotic Soccer

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

ProAgenda.com Factsheet

Transcription:

Robotics Laboratory Report Nao 7 th of July 2014 Authors: Arnaud van Pottelsberghe Brieuc della Faille Laurent Parez Pierre-Yves Morelle Professor: Prof. Dr. Jens Lüssem Faculty: Informatics and Electrotechnics

INTRODUCTION This project substituted the laboratory CIM-Productic Project that our home university (Enseignement Central des Arts et Métiers, Brussels) was supposed to perform in our Master Degree program. Indeed, the challenges faced have the same resolving process as the one we were expected to cope with for the substituted laboratory mentioned above. We had to analyse the situation and different scenarios that could happen to reach a specified goal. The objective of our project was to program the humanoid robot Nao from the French company Aldebaran Robotics in order to make him play 4 in a row. The final goal is to obtain a fully automated robot which can play the game to distract patients in hospitals. Our primary work was to set the robot to localise and grab a red ball which replaces the real play-coins, to obtain a better grip and because NAO is only sensitive on the red colour. MAIN STEPS OF THE PROJECT Step 1: Preliminary work Before starting the whole project, we needed to gather the basic skills in programming in order to be able to understand and face any further challenges. We had a brief summary about C programming, which is a fundamental programming language. Added to that, we performed a small exercise in C for a direct application of our knowledge. This helped to remind us what we have been taught in our previous semesters. After that, we had a brief introduction of the Robot NAO. In the idea of understanding its main functionalities and its abilities, we had to read the specifications stated in the book that was provided with the whole package. The specifications helped us to understand the whole possibilities, the running mode and the chain of actions of the robot. This step was important for the following task of programming, because it explained where the sensors are located, how the actuators are running, and how the robot can react to any aspect of the environment. The Tutorial contains various basic applications, such as walking from point A to point B, hearing sounds, object recognition, and other basic actions. Each chapter reports various exercises in order to test the mastering skills of the previous shown theory. The robot is supported by the program Choregraphe, which has predefined functions, for instance Walking, Dancing, and Listening. These tasks, gathered under a box form, can be placed in a chain to perform basic movements. These boxes contain a code that can be modified and improved at our convenience. The programming language is Python, which is the best compromise for NAO, because of its reliability and its large use of dynamic libraries. The main problem is that it s a high level programming language, and that our programming skills were severely limited at that time. 1

Step 2: Analysis of the different steps The whole task contains three different main steps. First of all, the robot needs to recognise the object that he was supposed to grab. At the first look, we thought we had to make all the different steps to make the robot recognise a specific object, but we acknowledged that the use a previously programmed function available in the Choregraphe box list would spare time. This function is called Red Ball. Its main purpose is to recognise a random red ball. This offers disadvantages, because any red-coloured object could be detected by NAO, losing its focus on the red ball. In order to let the robot approach this ball, we had to create a function box which enabled him to turn the head in the direction of the ball. After that, we had to make the robot go towards the ball and make him stop in a specified area around the ball. That required the implementation of several other functions. Finally, the robot had to grab the ball. That function can be led with the support of the Timeline Box. Step 3: The programming task In this part of the report we are going to explain how we organised the code lines in the boxes that were introduced in Step 2. First of all, we had to create a new box, and set a memory event for this box. The box contained 1 input and 1 output, which were triggered by a dynamic variable. The dynamic variable represents the detection by the sensor of the red ball, previously introduced in the memory event. The box was set on Script mode, in order to add several code lines in it. With the help of the online tutorial and Herr Eilers, we inserted the following lines: These lines state that the centre of the ball is saved on an array variable (length of 2 values) and that the function self.motion.changeangles will move the head reference of Nao toward the values with a specified speed. This function enables NAO to localise and track the ball, and is the main step in order to get to the ball and catch it. 2

After that, we created the box Move to, which was already available in our box list. The main script was changed as following: The variable data was already introduced in the previous box, and we converted the variable HeadYaw and HeadPitch in string, in order to use it in the conditions. The first condition for yaw (horizontal movement of the head) is that if the angle of the head was superior to the minimum angle of sight of the ball, then we set the velocity of the robot so it s chest can turn, facing the direction of the ball. Moreover, we put a limit of speed, if the ball is far from the chest direction of the robot, than it would turn at a normal speed, instead of a high one. 3

The second condition for pitch (vertical movement of the head) sets the speed of the steps. If the angle is inferior to the maximum value of sight (that means when the ball is not too close of the robot), then NAO walks at a constant speed toward the ball. If the ball is on a higher value than the maximum range of sight, then it will stop, assuming that the ball is right next to him. The next boxes were only put for safety measures, but the script was not modified by any means. They only prevented the robot from any problems, such as walking on the ball, wait a bit of time in front of the ball, and so on. For the last step, which is a chain of action, we used a Timeline Box. In this box there is a timeline (A) and we can fix some specific position of the robot (B) on the timeline. The box will command the robot to move from one position to another according to the location of the time reference on the timeline. The closer are the 2 events, the faster the movement between the 2 positions will be done.(c). To fix the positions we have two possibilities. The first one is to move the virtual robot on the display interface of Choregraphe. It s quite intuitive to establish, we only need to click on a body part of the virtual robot (D) and we are able to visualise all the motion that this part can do (E). We change some angles and then, we store the position (Whole body or only the arms or legs). We have to pay attention how fast the change from position A to B will be lead so that the robot won t collide with itself or lose his balance and fall down. This technique is complicated, because we need to visualise what steps do we have to imagine and set to grab the ball. 4

The second possibility is to store the position physically with the robot itself. We put the robot in the position that we want, then we block the different joints and finally we store the position on the timeline. This method is easier than the first one because we are able to manipulate NAO like a doll and we can directly see what will be the next step of the chain of movement. However, the inconvenient is that we fully require the robot without anybody working on it at the same time. This is the reason why we used mainly the first solution. The second was used to adjust the details and the accuracy of the movement. This set of actions could have been programmed with Python, however it is easier with the interface of Choregraphe, sparing us a lot of programming time. CONCLUSION At the end of the project, the robot was capable of the following tasks: Tracking, walking to, stopping in front of and picking up the ball. This was our main objective to fulfil in a given period of time. We are quite satisfied with our accomplishment, although it required some work and adjustments. We acknowledged the various possibilities of NAO, even if the programming task was demanding, because Python is a high-level programming language. Indeed, we were stuck at various programming steps, and without the help of Herr Eilers, we wouldn t have finished in time. Finally, we can conclude as following: Robotics is a subject that requires a lot of programming skills, experience and creativity, but the reward at the end is worth the whole effort. 5

ADDENDUM Image representing the whole view of our program. 6