Wiring Diagram The overall wiring diagram will resemble this structure. The power board will be extremely similar to that of TigerBot #3. The difference.

Slides:



Advertisements
Similar presentations
EMS1EP Lecture 9 Analog to Digital Conversion (ADC) Dr. Robert Ross.
Advertisements

Lab7: Introduction to Arduino
Servo Background Servos provide control of rotary position Servos are used extensively in the remote control hobby world for: Aircraft (flaps, ailerons,
Links and Joints.
Kinematics & Grasping Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions Goal.
Senior Computer Engineering Project
Khaled A. Al-Utaibi  Digital Vs Analog Signals  Converting an Analog Signal to a Digital One  Reading Analog Sensors with the.
Detailed Design Review Project P13363 Members: Justine Converse (IE) James Cover (CE) Alexander Eschbach (EE) Jason Hang (ME) Ashley Trode (EE) Guide:
Embedded Programming and Robotics Lesson 2 C Programming Refresher C Programming1.
Design and Implementation of Metallic Waste Collection Robot
Velocities and Static Force
Robot design-- Four legged walking robot Instructors: Dr. A
Shaojie Ge Design Overview  The robot simulates the movements of a four leg walking animal. Its basic function include: Walking with four legs,
TigerBot Rochester Institute of Technology. Group Members Eric Walkama Mechanical Engineer John Seybold Computer Engineer Michael Thomas Electrical Engineer.
BIPEDAL LOCOMOTION Antonio D'Angelo.
Rochester Institute of Technology
Microcontroller Robot Design Spring 2003 Advisor : Prof. Hayler Engineering Team: Mark Vo Jing Hua Zhong Abbas Ziadi.
FYP FINAL PRESENTATION CT 26 Soccer Playing Humanoid Robot (ROPE IV)
Ryan Courtney Senior Design II Advisor: Junkun Ma.
Introduction Designing controllers for walking robots presents many challenges. In order for walking robotics to reach this stage, perhaps a new approach.
ROBOTC for VEX On-Site Professional Development
Programming Concepts (Part B) ENGR 10 Introduction to Engineering 1 Hsu/Youssefi.
Introduction to the VEX ® Robotics Platform and ROBOTC Software © 2012 Project Lead The Way, Inc.Principles of Engineering.
BIPEDAL LOCOMOTION Prima Parte Antonio D'Angelo.
TigerBot Rochester Institute of Technology. Group Members Eric Walkama Mechanical Engineer CAD, Structural design John Seybold Computer Engineer Embedded.
INVERSE KINEMATICS ANALYSIS TRAJECTORY PLANNING FOR A ROBOT ARM Proceedings of th Asian Control Conference Kaohsiung, Taiwan, May 15-18, 2011 Guo-Shing.
Overview 2 DOF in Head 4 DOF/Arm 1 DOF in Torso 6 DOF/ Leg.
Rochester Institute of Technology TigerBot P13201.
Robot sensors MVRT 2010 – 2011 season. Analog versus Digital Analog Goes from 0 to 254 Numerous values Similar to making waves because there are not sudden.
Centre for Mechanical Technology and Automation Institute of Electronics Engineering and Telematics  TEMA  IEETA  Simulation.
HARDWARE INTERFACE FOR A 3-DOF SURGICAL ROBOT ARM Ahmet Atasoy 1, Mehmed Ozkan 2, Duygun Erol Barkana 3 1 Institute of Biomedical Engineering, Bogazici.
Shaojie Ge Special Sensor System  My special sensor system is the walk mechanism of my robot. Since my robot is a walking robot with four legs.
Automatic Joint Parameter Estimation from Magnetic Motion CaptureData James F.O”Brien Robert E. Bodenheimer Gabriel J Brostow Jessica K. Hodgins Presented.
Suleyman Demirel University CSS340 Microprocessor Systems – Lecture 2 ATMEGA328P ARCHITECTURE ANALOG INPUTS.
BM-305 Mikrodenetleyiciler Güz 2015 (3. Sunu) (Yrd. Doç. Dr. Deniz Dal)
ECE 450 Introduction to Robotics Section: Instructor: Linda A. Gee 10/07/99 Lecture 11.
ARDUINO 1. Basics  Comments  /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We.
IN 1900 ICT Project Final Presentation. Group name : Code Squad.
INTERNET OF EVERYTHING SDU 2016 Week 4. Simple Digital and Analog Inputs  The Arduino’s ability to sense digital and analog inputs allows it to respond.
TigerBot IV Rochester Institute of Technology. Group Members Mike Lew (ISE) Dan Wiatroski (ME) Tom Whitmore (ME) Geoff Herman (ME) Sean Lillis (CE) Brian.
P13203 TigerBot Extension Mike Lew (ISE), Dan Wiatroski (ME), Tom Whitmore (ME), Geoff Herman (ME), Sean Lillis (CE), Brian Stevenson (EE), James O’Donoghue.
Robot Project by Ahmad Shtaiyat Supervised by Dr. Salem Al-Agtash.
Robotic Arm and Dexterous Hand Preliminary Design Review November 12, 2004.
Kinematics Intro :a branch of dynamics that deals with aspects of motion apart from considerations of mass and force Merriam-Webster.
P15201: TIGERBOT V Special Thanks to… George Slack (Guide) Ferat Sahin (Customer) John Chiu (Mechanical Engineer) Yingyi Chen (Industrial Engineer) Christine.
GreenJacket IMDL Summer 2002 Final Report Matthew Chernosky August 6, 2002.
Velocity Propagation Between Robot Links 3/4 Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA.
BM-305 Mikrodenetleyiciler Güz 2016 (3. Sunu)
Animating Human Locomotion
Self-Navigation Robot Using 360˚ Sensor Array
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
P15201: TIGERBOT V Mechanical Design: Electrical Design:
Assist. Prof. Rassim Suliyev - SDU 2017
Application Case Study Security Camera Controller
An-Najah National University Faculty of Engineering Walking Robot
Arduino - Introduction
SCOUTBOTICS Engineering Notebook
By: Zeeshan Ansari, BEng (Hons) Electronic Engineering
Missile Defense Group 12 Aaron Smith Garrett Murray Brad Miller
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Zaid H. Rashid Supervisor Dr. Hassan M. Alwan
Robotic Arm Project Presentation
Critical Design Review
CHAPTER 2 FORWARD KINEMATIC 1.
TIGERBOT 2 REJUVENATION
The schematic of the wire connection in the module
Arduino programs Arduino toolchain Cross-compilation Arduino sketches
SCOUTBOTICS Engineering Notebook
UNIT 11: RC-SERVOMOTOR CONTROL
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Presentation transcript:

Wiring Diagram The overall wiring diagram will resemble this structure. The power board will be extremely similar to that of TigerBot #3. The difference lies in that our power board will not have the current sensing to each limb but a totally separate board. The servos, microcontrollers, sensors, and will still be powered from this board but in a slightly different configuration. The design for this board can be seen below. The foot sensor boards are also going to be used from Tigerbot #3.

Power Board Schematic

Current Sensing

Foot Sensor Board Schematics

Foot Sensor Board Schematics

Foot Sensor Board Schematics

Foot Sensor Board Schematics

Foot Sensor Board Schematics

Servo Information This software allows a full simulation of motion. Motion files can be created to re-enact movements of the robot. Some examples include the “Low crouch”, “Leg Lift”, and “Pick Itself Up”. The majority of the initial simulations are for mechanical qualifications and will be covered in the Mechanical/Industrial engineering portion of the design review. However, the next step in this process is to implement Inverse Kinematics to develop a walking algorithm that also supports the mechanical design parameters. Below is the extensive characterization conducted on the servos, done by Alexander Yevstifeev last quarter.

Servo Information

Servo Information

Servo Information

Servo Information

Servo Information

Software Flow Charts

Inverse Kinematics Leg Diagram

Locomotion.c /** *Controls the robots locomotion *with more functions added depending on the task **/   #include "Locomotoin.h" void walk(){ } void stand(){ void balance(){

Locomotion.h #ifndef LOCOMOTION_H #define LOCOMOTION_H void walk();   void walk(); void stand(); void balance();

RobotStatus.c /** * Checks the robots status to begin movements * different types of check depending on the situation **/   #include "RobotStatus.h" int checkBalance(){ return 0; } int frontClear(){ int currentServoPosition(int Servo){

RobotStatus.h #ifndef ROBOT_STATUS_H #define ROBOT_STATUS_H   int checkBalance(); int frontClear(); int currentServoPosition(int Servo);

Sensors.c /** * Class to return data from all the sensors **/ #include sensors.h int check_IR( int IRnumber ){ int value = 0; switch(IRNumber){ case 0: break; case 1: case 2: case 3: case 4: case 5: case 6: default: } return value; int check_IMU(void){ return 0;

Sensors.h #ifndef SENSOR_H #define SENSOR_H   int check_IR( int IRnumber ); int check_IMU(void);

ServoControl.c /** *Control the servos, can be added to locomotion maybe depending *on what else might be needed in this class. **/   #include "ServoControl.h" void setServo( int ServoNumber, int position ){ switch(ServoNumber){ case 0: break; case 1: case 2: case 3: case 4: case 5: case 6: default: }

ServoControl.h #ifndef SERVO_CONTROL_H #define SERVO_CONTROL_H   void setServo( int ServoNumber, int position );

Compile Script #!/bin/bash rm ServoTestCode;   rm ServoTestCode; g++ -static -I /home/roboard/RobotCode/RoBoIO/libsrc/ -c ServoTestCode.cpp -o ServoTestCode.o g++ -o ServoTestCode ServoTestCode.o -static -L /home/roboard/RobotCode/RoBoIO -l RBIO ./ServoTestCode;

Servo Test Code #include <stdio.h> #include "roboard.h" #include "rcservo.h" #include <unistd.h>   int main(void){ roboio_SetRBVer(RB_100RD); unsigned long motion_frame[2] = {0,0}; if(rcservo_SetServo( RCSERVO_PINS1, RCSERVO_SERVO_DEFAULT_NOFB )){ puts("Servo 1 set correctly"); } if(rcservo_SetServo( RCSERVO_PINS2, RCSERVO_SERVO_DEFAULT_NOFB )){ puts("Servo 2 set correctly"); while(1){ if(rcservo_Init(RCSERVO_USEPINS1 + RCSERVO_USEPINS2)){ puts("Victory"); rcservo_EnterPlayMode_HOME(motion_frame); rcservo_MoveTo( motion_frame, 500 ); if(motion_frame[0] == 0){ motion_frame[0] = 1500; motion_frame[1] = 1500; }else{ motion_frame[0] = 0; motion_frame[1] = 0; rcservo_Close(); puts("Could not init Servo"); puts(roboio_GetErrMsg()); sleep(1); return 0;

Example Inverse Kinematics Code %Inverse Kinematics Function. Computes 6 output angles given foot position %and orientation. %written by Alexander Yevstifeev %Based on work in the paper Closed-form Inverse Kinematic Joint Solution for Humanoid Robots by Muhammad   A. Ali, Andy Park, and C.S. George Lee. function [T] = Leg_Inv_Kin(rx,ry,rz,p) %outputs joint angles for T(1)-T(6) of a humanoid leg given the x,y,z axis %rx ry rz are rotation angles for orientation and a position vector. %order of angle joints from T(1) to T(6) are leg twist, leg side, leg lift, knee, foot lift, and foot tilt. %Link length definitions L5 = 0.05 ; % Link between ankle and bottom of foot L4 = 0.25 ; % Link between knee and ankle L3 = 0.25 ; % Link between hip and knee %compute rotation matrix given rotation angles rx, ry, and rz Cx = cos(rx) ; Sx = sin(rx) ; Cy = cos(ry) ; Sy = sin(ry) ; Cz = cos(rz) ; Sz = sin(rz) ; Rmat = [ Cy*Cz , -Cx*Sz+Sx*Sy*Cz , Sx*Sz+Cx*Sy*Cz ; ... Cy*Sz , Cx*Cz+Sx*Sy*Sz ,-Sx*Cz+Cx*Sy*Sz ; ... -Sy , Sx*Cy , Cx*Cy ; ] ;

Example Inverse Kinematics Code %build location matrix, find inverse, assign inverse vectors M = cat(2, Rmat , p') ; M = cat(1,M,[0 0 0 1]) ; Mi = inv(M) ; s = 1:3 ; ni = Mi(s,1)' ; si = Mi(s,2)' ; ai = Mi(s,3)' ; pi = Mi(s,4)' ; C4 = ( (pi(1)+L5)^2 + pi(2)^2 + pi(3)^2 - L3^2 - L4^2 ) / (2 * L3 * L4 ) ; T(4) = atan2(sqrt(1 - C4^2),C4) ; S4 = sin(T(4)) ; psi = atan2( S4 * L3 , ( C4 * L3 ) + L4 ) ; T(5) = atan2( -pi(3) , sqrt( (pi(1) + L5)^2 + pi(2)^2 ) ) - psi ; C5 = cos(T(5)) ; T(6) = atan2(pi(2) , -pi(1) - L5 ); if (cos(T(4)+T(5))*L3 + C5*L4) < 0 T(6) = T(6) + pi ; end S6 = sin(T(6)) ; C6 = cos(T(6)) ; T(2) = atan2( -S6*si(1) - C6*si(2) , -S6*ni(1) - C6*ni(2) ) ; T(1) = atan2( sqrt(1 - (S6*ai(1) + C6*ai(2))^2) , S6*ai(1) + C6*ai(2)); if sin(T(2)) < 0 T(1) = T(1)+3.14159 ; T(3) = atan2(ai(3) , C6*ai(1) - S6*ai(2) ) - T(4) - T(5) ;   %Adjustment for reference frames on model T(1) = -(T(1)+1.5707); T(2) = -(T(2) + 1.5707) ; T(3) = T(3) - 1.5707 ; T(6) = -T(6) ; %correction for position value over 2*pi for i = 1:6 ; T(i) = rem(T(i),6.283) ;

analogRead() (arduino function) Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8 channels on the Mini and Nano, 16 on the Mega), 10-bit analog to digital converter. This means that it will map input voltages between 0 and 5 volts into integer values between 0 and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit. The input range and resolution can be changed using analogReference(). It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second.

Preliminary Test Plan Function to Test Expected Result Send commands to move each elbow servo Servo moves to desired position, does not extend too far Send commands to move each shoulder servo Servos move to desired positions, three degrees of freedom are observed Send command to move center hip servo Robot turns left or right appropriately Send commands to move each non-center hip servo Send command to move each knee servo Send commands to move each foot servo Servos move to desired positions, two degrees of freedom observed Place object within one foot of IR sensors Robot will stop moving, alter course of direction Intentionally (or accidentally) knock robot over IMU will detect that the robot has fallen, begin procedure to pick itself up Begin walking the robot Foot sensors will detect pressures from each area of the foot, adjust walking scheme accordingly

CE/EE Planning Schedules

Current Bill of Materials Budget 2500 Orders Date Ordered By Description Amount Budget remaining 1/21/2012 Ken EE Dept. Voice Recog, IR Sensors, Camera, RoBoard RB-100 391.93 2108.07 1/25/2013 Sr. Design Dept. 10 XQ Servos 1070 1038.07 RoBoard IMU 89 949.07 1/28/2013 Mechanical test components 60.86 888.21 TBD Mechanical components 457.67 430.54 Left to order Wireless module for Roboard (about $50.00) Roboard Servos (10, possible discount?)

Risk Assessment