The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter 2012-2013 Department of Electrical Engineering.

Slides:



Advertisements
Similar presentations
I/O Management and Disk Scheduling
Advertisements

TEMPLATE DESIGN © The basic model for a trigonometric setup requires that the HID be seen by at least two cameras at any.
I/O Management and Disk Scheduling
Add and Use a Sensor & Autonomous For FIRST Robotics
RoboCell and Cell Setup
LabView Basics.
Sensors.
Electronic and Computer Engineering Colin Grogan Final Year Project: Design and Build an Air Mouse for people with lower mobility.
Autonomous Helicopter: James Lyden Harris Okazaki EE 496 A project to create a system that would allow a remote- controlled helicopter to fly without user.
Tribotix | Newcastle, Australia | P: | F: | W: ICTENSW 2012 Workshop.
Generated Waypoint Efficiency: The efficiency considered here is defined as follows: As can be seen from the graph, for the obstruction radius values (200,
Move With Me S.W Graduation Project An Najah National University Engineering Faculty Computer Engineering Department Supervisor : Dr. Raed Al-Qadi Ghada.
OutLine Overview about Project Wii Robot Escaper Robot Problems and Solutions Demo.
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
Tracking a moving object with real-time obstacle avoidance Chung-Hao Chen, Chang Cheng, David Page, Andreas Koschan and Mongi Abidi Imaging, Robotics and.
Students: Nir Engelberg Ezequiel Hadid Supervisor: Mony Orbach In association with: September 28, Winter 2005.
PEG Breakout Mike, Sarah, Thomas, Rob S., Joe, Paul, Luca, Bruno, Alec.
Device Management.
STC Robot Optimally Covering an Unknown Indoor Environment Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein.
Remote Surveillance Vehicle Design Review By: Bill Burgdorf Tom Fisher Eleni Binopolus-Rumayor.
Error Checking continued. Network Layers in Action Each layer in the OSI Model will add header information that pertains to that specific protocol. On.
EIGHTH GRADE ROBOTICS KITTATINNY REGIONAL HIGH SCHOOL MR. SHEA Introduction to Robotics Day4.
Design and Implementation of Metallic Waste Collection Robot
June 12, 2001 Jeong-Su Han An Autonomous Vehicle for People with Motor Disabilities by G. Bourhis, O.Horn, O.Habert and A. Pruski Paper Review.
Robot design-- Four legged walking robot Instructors: Dr. A
Embedded Microcomputer Systems Andrew Karpenko 1 Prepared for Technical Presentation February 25 th, 2011.
Construction and Motion control of a mobile robot using Visual Roadmap
Remote Control of a Furby Toy with Bluetooth
Acceleration Based Pedometer
Input/OUTPUT [I/O Module structure].
Ruslan Masinjila Aida Militaru.  Nature of the Problem  Our Solution: The Roaming Security Robot  Functionalities  General System View  System Design.
1 I/O Management and Disk Scheduling Chapter Categories of I/O Devices Human readable Used to communicate with the user Printers Video display terminals.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
Autonomous Robot Project Lauren Mitchell Ashley Francis.
Sérgio Ronaldo Barros dos Santos (ITA-Brazil)
CS 8903 Demo Wireless Interface for the Bioloid Robot Chetna Kaur.
Single Player Foosball Table with an Autonomous Opponent ECE 4007 Senior Design Team FIFA Dr. James Hamblen Michael Aeberhard Shane Connelly Evan Tarr.
Phong Le (EE) Josh Haley (CPE) Brandon Reeves (EE) Jerard Jose (EE)
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
EEE440 Computer Architecture
Microcomputers Final Project.  Camera surveillance is an important aspect of Robotics.  Autonomous robots require the use of servos for camera control.
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
RoboNova 1.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Lecture 1: Review of Computer Organization
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Laboratory 2 Group 19 The Group of Destiny. User Interface - Debugging Objectives:  Display: Sensor data (telemetry) – including IR sensors, status of.
Fast SLAM Simultaneous Localization And Mapping using Particle Filter A geometric approach (as opposed to discretization approach)‏ Subhrajit Bhattacharya.
Group 1 chapter 3 Alex Francisco Mario Palomino Mohammed Ur-Rehman Maria Lopez.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
Wii Remote Zibo Zou, Daniel Maertens, Steven Duan 1.
Project Description The Square D occupancy sensors use both ultrasonic and passive infrared technology (PIR) to detect occupancy in a room. This project.
Components of Mechatronic Systems AUE 425 Week 2 Kerem ALTUN October 3, 2016.
The 4th Annual Colorado Robot Challenge
NXT Mindstorms Kit Programming
Bobby Lunceford Connor Phyfer Luke Rice Phillip Bennett
Obstacle avoiding robot { pixel }
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
Exploring Computer Science Lesson 6-5
ROBOTC for VEX Online Professional Development
ROBOTC for VEX On-Site Professional Development
Smart Car Robot Prepared by Supervised by Mai Asem Abushamma
‘SONAR’ using Arduino & ultrasonic distance sensor
Exploring Computer Science Lesson 6-5
The Network Layer Network Layer Design Issues:
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Presentation transcript:

The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering

The project’s goal Making the robot independently approach to a ball and kick it

The project’s main tasks Creating an API for embedded robot’s controller in C, which will allow controlling the robot on higher level Creating an image processing mechanism for the robot’s camera in C++ Creating a protocol for communication between the image processing unit on PC and the robot Creating the decision making controller – the “brain”

The Bioloid Robot (Premium Upgrade Kit ++) Dynamixel AX-12 motor x 20 Robotis Wireless CMOS Camera 230x240, 30 FPS CM-510 controller based on Atmel ATmega bit AVR microcontroller DMS – Distance Measurement Sensor (IR) ZigBee Zig-110 Wireless Module 2-Axis Accelerometer

The general idea The Robot The Controller PC Dynamixels ZigBee Sensors Camera Camera Receiver USB Image Processing Unit Main Controller Wireless Data Processing Unit ZigBee UART Motion Controller Peripheral Devices Wireless connection

Communication SW Utilities Indicators Sensors Motion control Motion Controller structure Main All modules initialization The main procedure Main All modules initialization The main procedure Motion Dynamixels management Motion Dynamixels management Accelerometer Accelerometer data processing Accelerometer Accelerometer data processing ADC Analog port data processing ADC Analog port data processing Body Robot’s body movement management Body Robot’s body movement management Buttons Robot’s CM-510 buttons handling Buttons Robot’s CM-510 buttons handling Buzzer Robot’s sound management Buzzer Robot’s sound management DMS Robot’s distance measurement data processing DMS Robot’s distance measurement data processing Errors Failures handling Errors Failures handling Head Robot’s body movement management Head Robot’s body movement management LEDs Robot’s CM-510 LEDs handling LEDs Robot’s CM-510 LEDs handling Memory ATmega1281 memory management Memory ATmega1281 memory management Utilities General helper functions Utilities General helper functions ZigBee Wireless communication controller ZigBee Wireless communication controller

Dynamixel’s Offset – a dynamixel’s absolute angle Dynamixel’s Speed – a dynamixel’s speed of rotating Motion control Terminology

Pose – a set of dynamixels’ offsets (except for the head) Page – a set of poses to be played sequentially Except for the poses, page also holds an information about: play time, delays, next page to play etc. Motion control Terminology

Memory program space – the memory space, where the code resides Memory data space – the memory space, where the data resides The user can’t access the program space directly due to AVR processor’s Harvard architecture, but using special functions Motion control Terminology

Robot’s Head – the robot’s head is an add-on of 2 dynamixels and a camera to the original Premium Upgrade Kit The head has 2 degrees of freedom: tilt and pan Motion control Terminology

Motion control Memory management To avoid spending time on teaching the robot new poses, the poses provided by manufacturer are used The manufacturer (ROBOTIS) places all the motion data in the program space Original pages of poses are copied from program space to data space The data space is to small to hold all the pages, so a sort of caching mechanism was implemented, based on the random replacing policy

Motion control Pose playing The challenge is setting the robot’s pose, such as all the dynamixels will start and end their motion simultaneously. This is performed by the next means: Calculating the correct speed for each dynamixel to move with, according to the offset to be performed. Sending a broadcast message on the Dynamixel’s bus, such as all off it get the moving command at the same time

Motion control Page playing When playing a page of poses, there are defined speeds and delays for each pose, so the dynamixel’s speeds are adjusted accordingly After reaching the end of page, there is a jump to the Next Page (one of the page’s properties). Also there is a Stop Page pointer to jump there if something’s wrong

Motion control Motion cycle ZigBee command arrived? What kind of command? Preload relevant pages into the cache Play the pose(s) Any sensors changed? Body No Play the initial pose Yes Correct the pose(s) Yes Move head Head Perform management operations such as: update default dynamixels offsets Management No

Motion control Motion cycle Some explanations to the previous slide: During the motion play, the sensors are sampled and some corrections to the motion can be made. For example: If accelerometer detects falling, the appropriate dynamixels are moved to avoid it If DMS detects close object while walking, the robot will try to avoid the obstacle by walking around it If a button is pressed, robot returns to its initial pose As a result of ZigBee command the relevant page sequence is being played, but after each pose there is a check if the ZigBee command has changed, so another sequence will be played

Image processing General principles The general principles of the tracking: Choosing the object’s color, which should be different from the background color The image processor calculates the average geometrical location of the chosen color on the screen. The command to move robot’s head is sent to the robot, such as the average geometrical location will be at the center of the screen (in infinite loop).

Wireless communication General principles Wireless communication between Main Controller and robot is performed using ZigBee protocol (not talking about video data, only the commands) The commands are generated (and can be received) by the Wireless Data Processing unit and are sent to the robot. With correct ZigBee devices configuration the command generation from RC- 100 (remote controller) is also supported

Main Controller (not implemented yet  ) General principles The Main Controller is responsible for making a decision about a command to be sent to the robot according to results received from the Image Processing unit. The Image Processing unit provides the Main Controller with data about the object’s (ball) location, such as: The relative angle in horizontal plane Estimated distance The Main Controller sends the movement commands to the robot The above actions are done in the loop until the robot finally is in the ball-kick position The kick command is sent

Future development possible directions Placing the main controller on the robot (some lite weight, but strong computing device), to make the robot completely independent Upgrading the accelerometers (called “gyro” by the manufacturer) with the real gyros, to improve robot’s stability (falling prevention) Improving the motion algorithms and flows by the principle: Efficiency in cost of modularity Upgrading the camera for better performance Improving image processing for new features to be possible, such as: Easy obstacle overcoming instead of avoiding Adding some device to the robot, which will allow: Navigation Shortest path finding...

The End