Making Your Own Embedded Linux-Based Robot



Similar documents
FRC WPI Robotics Library Overview

INTRODUCTION TO SERIAL ARM

Next Gen Platform: Team & Mentor Guide

Industrial Automation Training Academy. PLC, HMI & Drives Training Programs Duration: 6 Months (180 ~ 240 Hours)

How To Use First Robot With Labview

EasyC. Programming Tips

Servo Motors (SensorDAQ only) Evaluation copy. Vernier Digital Control Unit (DCU) LabQuest or LabPro power supply

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

Servo Info and Centering

DIY Device Cloud Documentation

UPS PIco. to be used with. Raspberry Pi B+, A+, B, and A. HAT Compliant. Raspberry Pi is a trademark of the Raspberry Pi Foundation

Design Report. IniTech for

ASME Diversity Action Grant Report. Summary of DAG Project

UPiS - Uninterruptible Power intelligent Supply

Secured Spy IP Control Robot Using Raspberry Pi

An Experimental Study on Pixy CMUcam5 Vision Sensor

obems - open source Building energy Management System T4 Sustainability Ltd

Selecting and Implementing H-Bridges in DC Motor Control. Daniel Phan A

Michelin North America

i ChatterBox! Motorcycle Security

GPS & GSM BASED REAL-TIME VEHICLE TRACKING SYSTEM.

LEGO NXT-based Robotic Arm


PolyBot Board. User's Guide V1.11 9/20/08

How To Control Gimbal

Robot coined by Karel Capek in a 1921 science-fiction Czech play

Eric Mitchell April 2, 2012 Application Note: Control of a 180 Servo Motor with Arduino UNO Development Board

Microcontroller Programming Beginning with Arduino. Charlie Mooney

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING

A REST API for Arduino & the CC3000 WiFi Chip

A 5 Degree Feedback Control Robotic Arm (Haptic Arm)

Hardware Connections between Arduino and IMU Nori Wilkins Apr. 5, 2013

P545 Autonomous Cart

AUTOPILOT QUICK START GUIDE

Computer Automation Techniques. Arthur Carroll

DIAGNOSTIC TROUBLE CODES: TRANSFER CASE MOTOR

Hand Gestures Remote Controlled Robotic Arm

Massachusetts Institute of Technology

Design of an Insulin Pump. Purpose of an Insulin Pump:

MECE 102 Mechatronics Engineering Orientation

B Robo Claw 2 Channel 5A Motor Controller Data Sheet

EZmoto V2. Product description Rev. 6 10/01/2014. EZmoto V2 Product description Rev.6 10/01/2014

Intelligent Home Automation and Security System

Current Loop Tuning Procedure. Servo Drive Current Loop Tuning Procedure (intended for Analog input PWM output servo drives) General Procedure AN-015

Six-servo Robot Arm. DAGU Hi-Tech Electronic Co., LTD Six-servo Robot Arm

Networking Remote-Controlled Moving Image Monitoring System

Using Arduino Microcontrollers to Sense DC Motor Speed and Position

Autonomous Advertising Mobile Robot for Exhibitions, Developed at BMF

Android Controlled Based Interface

MSITel provides real time telemetry up to 4.8 kbps (2xIridium modem) for balloons/experiments

Ocean Controls RC Servo Motor Controller

EagleVision Mobile DVR Security system With GPS Tracking & Data analysis m

Arduino Lesson 13. DC Motors. Created by Simon Monk

motion solutions for leisure, mobility and industrial applications

Frequently Asked Questions for TFT Remote Controlled Monitors. First Rev 4/6/2005 SGMc Second Rev 5/7/2005 Third Rev 11/15/2005

SIP Protocol as a Communication Bus to Control Embedded Devices

Radio Control System

Optimize your simple machines... Modicon M218 Selection Guide

INFRARED REMOTE CONTROL HELICOPTER

Model SETR-50 and SETR-51 Trim Tab Control

CE801: Intelligent Systems and Robotics Lecture 3: Actuators and Localisation. Prof. Dr. Hani Hagras

Building a Basic Communication Network using XBee DigiMesh. Keywords: XBee, Networking, Zigbee, Digimesh, Mesh, Python, Smart Home

BUILD A REVOLUTE COORDINATE ARM

Detailed Design Report

Sensors Collecting Manufacturing Process Data

Learning Systems Software Simulation

Mobile Data Power Model: MDP-25

CAD Training Center Sooxma Technologies Ameerpet, Hyderabad. Ph: ,

Cypress Semiconductor: Arduino Friendly PSoC Shield

Designing an efficient Programmable Logic Controller using Programmable System On Chip

Build- It- Yourself: So2ware Oscilloscope and Func:on Generator

Thermodynamic efficiency of an actuator that provides the mechanical movement for the driven equipments:

Diagnosing and Understanding Starting Problems on the ZR-1 Marc Haibeck 28-Sep-13

ZAPPY 3 OWNER S MANUAL. Read this manual completely before riding your Electric ZAPPY 3.

Lab Experiment 1: The LPC 2148 Education Board

FLYPORT Wi-Fi G

Remote control circuitry via mobile phones and SMS

Flight Controller. Mini Fun Fly

Application Note AN-SERV-006

revolution Contents: Introduction Power 28-pin Project Board with input/output cables

How to design an insulin pump

CNC HARDWARE & TOOLING BASICS

Convert your Losi Micro Vehicle from Brushed to Brushless power

PROJECT PRESENTATION ON CELLPHONE OPERATED ROBOTIC ASSISTANT

Crazy Alarm Clock L A K S H M I M E Y Y A P P A N J A M E S K A Y E W I L L I A M D I E H L C O N G C H E N

Self-Balancing Robot Project Proposal Abstract. Strategy. Physical Construction. Spencer Burdette March 9, 2007

Arduino Motor Shield (L298) Manual

USER MANUAL. EZRUN Series Brushless Speed Controller EZRUN-150A-PRO

DESIGN OF 6 DOF ROBOTIC ARM CONTROLLED OVER THE INTERNET

SOLARCARE SERIES PRODUCT AND APPLICATION GUIDE

Setting up IO Python Library on BeagleBone Black

Robotics & Automation

Laboratory Course Industrial Automation. Experiment Nr. 6. Introduction to the FlexRay bus system. Brief User Guide IAS Demonstrator Go-Cart

Chapter 19 Operational Amplifiers

ROBOTICS AND AUTONOMOUS SYSTEMS

The Design of DSP controller based DC Servo Motor Control System

CM705B - Universal Expander Module CM707B - Plug On Zone Expander Security Systems

Transcription:

Making Your Own Embedded Linux-Based Robot All Your Base are Belong to us? Mike Anderson Chief Scientist The PTR Group, Inc. http://www.theptrgroup.com

What We Will Talk About What is a robot? Basic services Mobility issues Sensors Robot software frameworks Summary ELC-SClara-0428-2

So, You want to make a Robot? Generally, they are defined as a mechanical intelligent agent Today, these are typically electro-mechanical devices which are guided by computer or electronic programming To many, robots are capable of autonomous behavior Others feel that tele-operated devices can still be considered robots ELC-SClara-0428-3

Classes of Robots Today, robots are often divided into different classes based on their use or behavior Mobile robots Robots that are not fixed in place Industrial robots These robots are typically fixed in place and consist of a jointed arm and an end effector Service robots A semi- or fully-autonomous device that performs services useful to the well being of humans ELC-SClara-0428-4

Other Robots ELC-SClara-0428-5

General Characteristics Regardless of how you picture robots, there are several characteristics that all of them have in common: Assignment or task What do you want it to do? Autonomous vs. tele-op Does it have a human in the loop? Frame Mobility Wheels? Tracks? Air cushion? Legs? Hardware controls Motor controllers, steering, gears, etc. Sensors How do we sense the world? End effector How does the robot manipulate its world? Power How do we power the computer, mobility and actuator? Software controls How do we control the hardware controls, sensors, actuator, etc.? ELC-SClara-0428-6

Robot Frames What do we want to make our robot from? Wood Easy to work with, but heavy and potentially fragile Aluminum Lightweight and inexpensive, but easily bent Steel Very rugged, but heavy Titanium Lightweight, but expensive What tools do you have at your disposal? Lathe, CNC mill, drill press, table saw, hand tools? We must plan our frame around how much weight we expect ELC-SClara-0428-7

Commercial Robot Frames There are a number of vendors of robot frames and mobility systems http://www.zarosrobotics.com http://www.whiteboxrobotics.com http://www.lynxmotion.com http://www.trossenrobotics.com Buying a commercial robot base can save a lot of time and trouble ELC-SClara-0428-8

Choosing the Mobility System Should the robot be wheeled or have tracks? Tracks give great traction Good climbing ability maneuverable If you throw a track, your robot is DITW Wheels can be 2/4/6WD Fast and very maneuverable Climbing can be a challenge One or even two motors could fail and your robot could still move ELC-SClara-0428-9

Steering Approach How will you steer your robot? Skid steer (tank drive) One side moves at one speed while the other moves at a different speed Very simple to implement Ackerman drive Like your car Requires planetary gears to deal with going around corners Swerve drive Allows the robot to turn the wheels independently ELC-SClara-0428-10

More Steering Holonomic drive Can move in any direction Limited pushing power Limited climbing ability Mechanum drive Developed for fork lifts So-so on inclines Can move in any direction Software control is more involved Which one you pick depends on your requirements ELC-SClara-0428-11

Wheels! There are many types of wheels for different applications: ELC-SClara-0428-12

Motors Brushed and brushless Voltage requirements range from 5V to 24V DC Motors can come with gear boxes attached or you can supply your own Gear ratios vary depending on torque vs. speed requirements ELC-SClara-0428-13

Delivering Power to the Wheels There are several ways to deliver power from the motors to the wheels Direct drive via a gearbox Least power loss Motor/gearbox weight may be a problem Belt-driven Very lightweight Belts can come loose Possibility of slippage Chain-driven Good middle ground between belts and direct drive May need chain tensioners Chains do stretch ELC-SClara-0428-14

Controlling the Motors The speed of a DC motor is dependent on the amount of voltage provided You could vary the speed with resistors But, the heat loss would be significant However, most motor controllers use PWM (RC servo) to vary the speed Make sure that you pick a motor controller that can handle the maximum current draw of your motors controller Also known as an electronic speed controller (ESC) and is often controlled via RC PWM signals Can also be controlled via CAN RS-232, SPI, I2C, or USB ELC-SClara-0428-15

Sensors In general, robots must be able to sense their environment Sensors can take the form of: Cameras Infrared Sonar Limit switches Shaft encoders Accelerometers Gyroscopes Digital compass Strain gauges Light sensors Sensor interfaces can be digital, analog, I2C, SPI, CAN Your computer controller must support the interface ELC-SClara-0428-16

Actuators/End Effectors How are you controlling the manipulators of your robot? Motor-driven Repeatable if you have shaft encoders Limit switches can also be used Pneumatic Fast, but limited options for motion Expanded or compressed but no in between Energy can be stored in surgical tubing, springs, etc. ELC-SClara-0428-17

Open or Closed Loop Control? Will your robot have some sort of feedback? Closed loop control Shaft encoders or other sensors Will you simply run for time? Open-loop control Distances vary with battery power Or, some mixture of both? develop ELC-SClara-0428-18

Powering the Robot Speaking of batteries, which should you use? It depends on how long you need to run and how much power your robot pulls Basic battery types: Sealed Lead Acid (SLA) Good maximum current Heavy NiCd, NiMH Quick recharge Suffers from memory effect Lion, LiPO Excellent energy density/weight ratio Batteries and recharger are $$$ LiPO batteries must be handled with care Shorting out or pulling too much current at once can result in a fire! ELC-SClara-0428-19

Power Distribution battery to the motors, computer, etc. Safety is a key requirement Make sure that wire gauges are sized for the current draw Make sure all circuits are fused or have fast-reset breakers to the chassis Possible ground loops ELC-SClara-0428-20

Wire Gauge Recommendations 6 AWG 125A 10 AWG 50A 12 AWG 30A 14 AWG 20A 16 AWG 12A 18 AWG 7A 20 AWG 5A ELC-SClara-0428-21

General Electrical Block Diagram POWER SOURCE CONTROLLER WIRELESS BRIDGE CIRCUIT BREAKER DIGITAL ADAPTER MODULE SOLENOID CONTROL MODULE ANALOG INPUT MODULE POWER DISTRIBUTION DIGITAL I/O DIGITAL SENSORS MOTOR SPEED CONTROLS RELAYS ANALOG SENSORS MOTORS LEDs/Lights PNEUMATIC SOLENOIDS FRC Team 358 Hauppauge H.S. ELC-SClara-0428-22

Computer Hardware So, what kind of computer do you need? One that can run from the battery x86 or ARM are easy to find Minnowboard Beaglebone Black Raspberry Pi USB interfaces for I/O Phidgets 8-8-8 Toradex OAK sensors ELC-SClara-0428-23

Software Control What software will you use to control your robot? Linux, of course! Linux has several robot control frameworks Player/Stage Good control of sensors/actuators over IP networks http://playerstage.sourceforge.net Robot Operating System (ROS) Extensive set of software libraries and tools for Ubuntu and Fedora Linux http://www.ros.org Orocos Extensive kinematics and dynamics libraries http://www.orocos.org/ Rock Robotics Based on Orocos but simpler to use http://rock-robotics.org/ JAUS Joint Architecture for Unnamed Systems Originally developed by SAE for DoD Used for AEODRS ordinance disposal robots http://www.openjaus.com/ Ad Hoc Use Linux to front end devices like Arduinos Ser2net exports serial interface from Arduino to network connection Leverage Arduino ecosystem for motor controllers and sensors ELC-SClara-0428-24

Libraries Abound Linux is a very popular platform for robotics Cheap, fast, efficient Many developers have created libraries for the popular robotic interfaces E.g., libkondo4 for the RCB-4 servo controllers Manufacturers like Phidgets and Toradex supply open-source libraries for their boards C/C++, C#, Java, Python bindings Active user communities exchange code via github, sourceforge and others E.g., check out the Phidgets Linux forum for discussions http://www.phidgets.com/phorum ELC-SClara-0428-25

Software Control #2 You can also roll your own using jstest and the Linux joystick interface WiFi, Bluetooth or serial RF modem for communications A quick check on a search engine will highlight several on-going Linux robotics projects ELC-SClara-0428-26

A Quick Way to Robot Control Eight 10-bit analog inputs (5 Volt tolerant) with jumper to measure supply voltage Eight PWM outputs for servo and H-bridge motor control (6 volt supply rail) Eight solenoid outputs (100 ma per channel) Four quadrature encoder inputs for direct quadrature decoding Four general purpose input and output Four relay outputs for controlling H-bridge or opto-coupled type relays Over current/short circuit protection for ALL exposed pins User programmable ELC-SClara-0428-27

Linux Robotics Distributions? -oriented distribution at this point Many folks simply use Ubuntu on the x86/arm or Angstrom on the ARM Cross compilers for front-ends like the Arduinos and ARM-based platforms are available as standard packages in distributions like Ubuntu Installation to SD or CF require the same care as running from flash /var/log, etc. ELC-SClara-0428-28

Linux Robotics-Aware Distros ROS is a very popular base software for building Linux-based robots Fedora and Ubuntu both have ROS repositories Ubuntu is officially supported by ROS Fedora support is via a SIG Primary ROS support is on x86 Sources have been compiled for ARM ELC-SClara-0428-29

Can Linux Do *REAL* Robots? Yes! The PREEMPT_RT patch provides sufficient determinism that most robotics applications work fine You can also use Xenomai or RTAI ELC-SClara-0428-30

Which Languages can I use? There are many languages that you can use The usual suspects: C/C++ Java Python Bash shell scripts An example of C/C++ can be found here: http://www.adamsinfo.com/using-the-phidget-interfacekit-under-linux/ language that focuses on robotics any better than any other There are bindings for these and more available in the user forums and from suppliers of the hardware interfaces ELC-SClara-0428-31

Good Robotics Books There are a couple of good books for building robots Linux Robotics D. Jay Newman ISBN: 9780071444842 Build Your Own All-Terrain Robot Brad Graham Kathy McGowan ISBN: 007143741X Robot Drive Trains Michael Owings ISBN: 9780071408509 ELC-SClara-0428-32

Summary Building a robot can be a very fun, frustrating and rewarding effort Be sure to use your web resources to keep from reinventing the wheel, so to speak If you really like robots, consider becoming a mentor to an FRC Robotics Team http://www.usfirst.org ELC-SClara-0428-33