Responsive, quality customer service is paramount to who we are at Hitec. When you’re in a pinch, MXVW RQH FDOO WR RXU WHDP RI DFHV ZLOO JHW \RX EDFN RQ WUDFN LQ D À DVK :KHWKHU \RX UHTXLUH VWHS E\ VWHS UDGLR SURJUDPPLQJ JXLGDQFH RU KHOS ¿ QGLQJ WKH SHUIHFW VHUYR LW¶V +LWHF WR \RXU UHVFXH Hitec Customer Service Department | Monday - Friday 8am to 4:30pm PST RCD USA, Inc | 12115 Paine St, Poway, CA 92064 | | service@hitecrcd.com | www.hitecrcd.com
Custom, Strong Robot Parts Sherline Products manual and CNC Mills and Lathes offer the serious robot builder the power to build strong, repeatable custom robot parts from a variety of materials including nylon, delrin, aluminum, brass, titanium, steel and more. Never again get stuck using inferior off-the-shelf parts or weak 3D printed plastic parts that are not ideal for your custom designed robot. With a little bit of practice you can be using one of our full CNC machines to turn out repeatable, perfectly finished parts. Our huge line of accessories gives you truly unlimited robot building possibilities.
sherline.com
Mention this ad and receive a FREE Tilting Angle Table with the purchase of any CNC machine package.
Visit us at 3235 Executive Ridge • Vista • California 92081 • USA • 800-541-0735 5
04.2015 VOL. 13
NO. 4
Columns 08 Ask Mr. Roboto by Dennis Clark
Your Problems Solved Here Delving into robot vision with a 4D Systems’ uCAM-II serial camera.
70 Twin Tweaks by Bryce and Evan Woolley
Rise of the Simple Machines Adding mechanical advantage to Protobot.
76 Then and Now by Tom Carroll
What’s New in Robotics Catch up on some of the latest advances in robotic products.
PAGE 70
Departments 06 Mind/Iron Anthropomorphic Interfaces — So Misunderstood
14 16 17 64 82 82
Events Calendar New Products Showcase SERVO Webstore Robo-Links
PAGE 76
18 Bots in Brief • New Rules for Driving Ms. Daisy • Taking Robots to the Graves • Magnetic Personality • Aldebaran CEO Steps Down • SAFFiR the Sailor • Robot Attack Sucks • Robot? Tiago!
Advertiser’s Index
SERVO Magazine (ISSN 1546-0592/CDN Pub Agree#40702530) is published monthly for $24.95 per year by T & L Publications, Inc., 430 Princeland Court, Corona, CA 92879. PERIODICALS POSTAGE PAID AT CORONA, CA AND AT ADDITIONAL ENTRY MAILING OFFICES. POSTMASTER: Send address changes to SERVO Magazine, P.O. Box 15277, North Hollywood, CA 91615 or Station A, P.O. Box 54, Windsor ON N9A 6J5; cpcreturns@servomagazine.com
4
SERVO 04.2015
In This Issue ... PAGE 30
PAGE 44
30 Automation with Actobotics 56 HelloSpoon — a DIY Robot by Jürgen Schmidt Take the mundane task of measuring and cutting battery lead wires and give it to your robot.
38 The Robot You’ve Always Wanted by John Blankenship and Samuel Mishal In this final installment, see how Arlo’s arms and turret can be controlled through a second instance of RobotBASIC running in the background to truly make this the robot of your dreams.
44 M is for the Robot that ARM Made by Dave Prochnow Meet mBot — a new platform for working with embedded robotics that is affordable, programmable, and downright fun.
to Help People with Upper Limb Difficulties by Luis Samahi Garcia Gonzalez This labor-of-love creation attempts to give folks with disabilities some of their independence back by helping them feed themselves, among other things.
67 ADHD Students Benefit from Brainwave Monitoring Programs by Holden Berry The same technology originally designed for NASA pilot training is helping students and adults alike to stay more focused. PAGE 67
50 The Basics of Soldering by Bob Wettermann and Nick Brucks Knowing how to solder surface-mount components by hand is a valuable skill when working with strict space requirements.
The Combat Zone 22 SPARC: Reigniting Robot Combat? 25 EVENT REPORT: masSACre Dethrones 15 Pound Powerhouse, OverLoad 27 Small Bot Masters — Mike Jeffries
07 MaxRoboTech Comics 3D Printing and Robotics SERVO 04.2015
5
Mind / Iron by Bryan Bergeron, Editor ª
Anthropomorphic Interfaces — So Misunderstood 'm writing this in an airport terminal, seated next to one of those talking rear projectors. You've no doubt seen or heard one of these in action. The projection of a smartly dressed woman on a cutout screen describes some aspect of security, while the passengers do whatever they can to distance themselves from this noise source as they try to navigate the TSA gauntlet. From what I’ve seen, an ordinary flat screen would have been a better communications vehicle, and much less of an obstacle for foot traffic. Apparently, the creators of the unit thought that passengers would pay more attention to the human form when projected onto a human-shaped screen. However, people aren't so easily fooled. While these units may have been curiosities at one time, today the novelty has worn off. The underlying problem with these talking projectors is that user expectations can't be met. What's the point of a huge footprint and anthropomorphic display that is totally passive? A large wall-mounted touchscreen that provides information on demand instead of a loop of recorded audio would provide more value to users. I’ve used these information kiosks and they’re well received. When it comes to connecting with users, it takes more than a pretty face. It’s the same with robots. Adding a face and skin to a robot to make it look more human-like can backfire unless the capabilities of the robot match the façade. For example, take the series of female androids that have been developed at Osaka University over the past five years. This evolving line of robots look like real women — complete with facial expressions. The latest models can speak, as well as respond to voice questions. In addition, these robots have captured the attention of the general public because they so closely resemble real humans that they are often described as “creepy.” I’d argue that the anthropomorphic interfaces used by these experimental robots — while a valid experimental vehicle — are at best a distraction for practical applications. Taking a lesson from computer games, computer-generated characters are believable when they’re rendered in either low resolution or ultra-high resolution. Computer-generated characters that are rendered somewhere in between are a distraction. The user spends mental effort trying to figure out what’s wrong with the character instead of focusing on the game. With low resolution, it’s obviously a character and the user moves on. At the other extreme, the user accepts the character as real and also moves on with game play. Most of what I’ve seen in the way of anthropomorphic interfaces for robots is in the low resolution area — and that’s fine. I’d rather be pleasantly surprised with what a robot can do than be let down by the promise of greater capabilities suggested by an anthropomorphic interface. It will likely take a decade or more before the insides of a robot can match the expectations of what we can currently present from the outside. No doubt, when we reach that point in the evolution of robotics, we won’t even notice it. Like the smartphone, most of us will just take it for granted. I also know that there will be experimenters out there tearing down and modding those initial models to get even more out of the hardware and software. SV
I
FOR THE ROBOT INNOVATOR
ERVO
Published Monthly By T & L Publications, Inc. 430 Princeland Ct., Corona, CA 92879-1300 (951) 371-8497 FAX (951) 371-3052 Webstore Only 1-800-783-4624 www.servomagazine.com Subscriptions Toll Free 1-877-525-2539 Outside US 1-818-487-4545 P.O. Box 15277, N. Hollywood, CA 91615 PUBLISHER Larry Lemieux publisher@servomagazine.com ASSOCIATE PUBLISHER/ ADVERTISING SALES Robin Lemieux robin@servomagazine.com EDITOR Bryan Bergeron techedit-servo@yahoo.com VP of OPERATIONS Vern Graner vern@servomagazine.com CONTRIBUTING EDITORS Tom Carroll Kevin Berry Dennis Clark R. Steven Rainwater John Blankenship Samuel Mishal Dave Prochnow Jürgen Schmidt Holden Berry Bob Wettermann Nick Brucks Luis Gonzalez Brandon Davis Richard Loehnig Bryce Woolley Evan Woolley CIRCULATION DEPARTMENT subscribe@servomagazine.com WEB CONTENT Michael Kaudze website@servomagazine.com WEBSTORE MARKETING Brian Kirkpatrick sales@servomagazine.com WEBSTORE MANAGER Sean Lemieux ADMINISTRATIVE STAFF Debbie Stauffacher Re Gandara Copyright 2015 by T & L Publications, Inc. All Rights Reserved All advertising is subject to publisher’s approval. We are not responsible for mistakes, misprints, or typographical errors. SERVO Magazine assumes no responsibility for the availability or condition of advertised items or for the honesty of the advertiser. The publisher makes no claims for the legality of any item advertised in SERVO. This is the sole responsibility of the advertiser. Advertisers and their agencies agree to indemnify and protect the publisher from any and all claims, action, or expense arising from advertising placed in SERVO. Please send all editorial correspondence, UPS, overnight mail, and artwork to: 430 Princeland Court, Corona, CA 92879. Printed in the USA on SFI & FSC stock.
6
SERVO 04.2015
SERVO 04.2015
7
ASK MR. ROBOTO
by Dennis Clark Our resident expert on all things robotic is merely an email away.
Tap into the sum of all human knowledge and get your questions answered here! From software algorithms to material selection, Mr. Roboto strives to meet you where you are — and what more would you expect from a complex service droid?
roboto@servomagazine.com
R
obots are a fad; here today, gone tomorrow. Mark my words; you won't hear a thing about them after next Christmas — April Fools! I don't think that robots are in danger of fading away anytime soon. They are central to most of our research, manufacturing, and entertainment industries, so it is inconceivable that robots will do anything but become even more common. I think that we (as hobbyists and makers) are pretty safe from that terrible fate! This month, I'm delving into robot vision by getting my toes a little wet. Recently, I got a 4D Systems uCAM-II serial camera and have been eager to see what I can do with it. Well, I now have the time to do just that, so I'm starting by getting some raw pictures off the camera and displaying them on small LCD screens — just to see how hard it is to do it. Read on to discover how simple it might be to start experimenting with a camera and your MPIDE (Arduino compatible) boards.
The Hardware (and Costs) • 4D Systems uCAM-II Serial Camera Module $49 • Digilent Max32 chipKIT (80 MHz PIC32, 512K Flash, 128K RAM), about $35 • Any LCD display using the Henning Karlsen UTFT Arduino graphics library. I used an old NKC Electronics 128x128 LCD shield (about $19 a few years ago) • Some prototyping wires
I connected the uCMA-II +5V and Ground to J6 and J15, respectively, on the Max32. I’m using UART1 for my serial connection; the Tx of the camera is connected to I/O19 and the Rx of the camera is connected to I/O18 on connector J4. Other than the USB cable, that’s all that needs to be connected after the LCD shield is installed.
The Software • UECIDE IDE software (freeware) • Henning Karlsen UTFT GLCD library (freeware)
The Reasoning
Figure 1. chipKIT Max32 microcontroller.
8
SERVO 04.2015
I chose the chipKIT hardware because — along with the UECIDE development environment — it presented a very friendly programmer environment with a LOT of fellow user support in the maker community and online forums. The uCAM-II uses a simple and easy to use asynchronous serial interface that has a reasonable speed for downloading small images. This camera module
Your robotic problems solved here.
Post comments on this article at www.servomagazine.com/ index.php/magazine/article/ april2015_MrRoboto.
Figure 2. 4D Systems uCAM-II camera module.
Listing 2. LCD Setup Calls Serial.println("Initialize LCD"); myGLCD.InitLCD(LANDSCAPE); myGLCD.fillScr(255, 255, 255); myGLCD.setColor(0, 0, 0);
can get a picture as small as 80x60 with a 16-bit color raster. At this size, it is reasonable to do a rudimentary robot vision system on the cheap. I’m not going to go in-depth on all of the features of the 4D Systems uCAM II here. If you want the nittygritty details, check out the datasheet at www.4dsystems. com.au/product/uCAM_II. You will see in my code that talking to the camera to get images is very simple. I’ll discuss the details as I decompose my demo program. My regular readers will already know that I really like the Digilent chipKIT series of boards since they use the friendly Arduino Wired programming environment (MPIDE) that Digilent and Rutgers University developed, and which was adopted and expanded by the creators of the UECIDE IDE. The chipKIT boards use the Microchip PIC32 32-bit 80 MHz microcontrollers at their core, which are enormously faster than Arduino but are programmed nearly identically. I particularly chose the chipKIT Max32 because it has 128K of RAM onboard. Graphics take a lot of RAM to use, and for the cost and size, this board is a very good combination of price, performance, and ease of use. Look for more information on the chipKIT boards and MPIDE at http://chipkit.net.
// UTFT graphics and 4D Systems uCAM II demo. // // DLC 2/2015 #include <UTFT.h> // NKC LCD graphics init UTFT myGLCD(LPH9135,6,5,2,3,4); // camera screen "pages" uint16_t pg1[16384]; // Misc. uint8_t junk;
Listing 1. Global Variables, Constants, and Objects
// changing bytes into words for graphics union { uint16_t word; uint8_t byte[2]; } convert; // Command and status arrays uint8_t cmd[6]; uint8_t status[6]; uint8_t status2[6]; // Commands uint8_t INIT[6] = {0xAA,0x01,0x00,0x06,0x09,0x00}; // 16bit 565RGB color raw format uint8_t GETPIC[6] = {0xAA,0x04,0x02,0x00,0x00,0x00}; // GET PICTURE Raw picture mode uint8_t RESET[6] = {0xAA,0x08,0x01,0x00,0x00,0x00}; // RESET state machines only uint8_t HRESET[6] = {0xAA,0x08,0x01,0x00,0x00,0xFF}; // RESET whole camera uint8_t SYNC[6] = {0xAA,0x0D,0x00,0x00,0x00,0x00}; // wake the camera up uint8_t ACKF[6] = {0xAA,0x0E,0x0A,0x00,0x00,0x00}; // ACK a complete frame received uint8_t ACKS[6] = {0xAA,0x0E,0x0D,0x00,0x00,0x00}; // ACK the SYNC response uint8_t BAUD[6] = {0xAA,0x07,0x02,0x00,0x00,0x00}; // Set BAUD to 1228800 // camera responses to pay attention to in status second byte #define CDATA 0x0A #define CSYNC 0x0D #define CACK 0x0E //byte 3 has the command ID being ACK'd #define CNACK 0x0F // something bad happened, error in 3rd byte
SERVO 04.2015
9
chipKIT boards that’s available at www.henning karlsen.com/electronics // Talk to the camera, this is the max auto-baud detect that will work. /library.php?id=52. Serial1.begin(921600); This library is free for Serial.println("Wake up the camera..."); anyone, and supports status[1] = 0; several Arduino LCD shields junk = 0; Serial.print("try 60 times "); that can also be used on chipKIT boards. d=4; Last, but not the least is while (status[1] != CACK) { Serial1.write(SYNC,6); the UECIDE embedded IDE if (Serial1.available() ) { environment. This is also for (n=0;n<6;n++) { freeware and supports a lot while (!Serial1.available()); of embedded status[n] = Serial1.read(); } microcontrollers. I use it primarily for the Wired-style while(!Serial1.available()); programming used by for (n=0;n<6;n++) { while (!Serial1.available()); Arduino and chipKIT boards. status2[n] = Serial1.read(); Now, I love the Arduino and } chipKIT boards and Serial1.write(ACKS,6); // ACK the successful SYNC break; programming environment, } but I have to admit I really junk = junk+1; dislike the Arduino and if (junk > 60) { Serial.println("Unable to sync."); MPIDE IDEs. They are too while(1); sparse and utilitarian for my } taste. Enter UECIDE, which d+=1; uses the same compilers and delay(d); } libraries but wraps them in a superior user experience. Finally, I wanted a simple and easy to use graphics I’ve spoken at length about UECIDE before, so I will not display that I didn’t have to go buy, so I dug out a 128x128 rhapsodize it again. Look for details and to get this OS 64K color LCD Arduino shield that NKC Electronics used to agnostic IDE at http://uecide.org. sell for about $20. Henning Karlsen makes a simple LCD I have one last comment on all of the freeware I’ve graphics library that is optimized for both Arduino and mentioned. These folks are providing an essential service to hobbyists by sharing their expertise and efforts with us Listing 4. INIT the Camera all — for free. We need to reward them by donating // Flush the queue out before sending INIT some money back to “keep while (Serial1.available()) { the lights on” for them. Let’s Serial1.read(); } face it; we can’t do what we // Set up to get pictures "streamed" do without them, so let’s all Serial.println("Send INIT"); share the love! Serial1.write(INIT,6); // INIT for a small raw 565RGB screen
Listing 3. Waking the uCAM-II
while (!Serial1.available()); // wait for the ACK for (n=0;n<6;n++) { while(!Serial1.available()); status[n] = Serial1.read(); } if (status[1] != CACK) { // ACK, that command passed Serial.println("We barfed on INIT."); Serial.print("Error: ");Serial.println((int)status[4],HEX); while(1);
// freeze here
} //Give the camera time to adjust before getting picture data. delay(2000);
10
SERVO 04.2015
The Programming The first thing we tend to do with an Arduino-style program is define our global variables and objects. Listing 1 shows the LCD definition object and then miscellaneous variables,
along with the uCAM-II command arrays that we might use. This demo program only uses five or six, but you never know, right? In a typical sketch, the setup() function sets everything up that we will be using in the main loop. Listing 2 is the setup for the NKC LCD shield. Before we can use the uCAM-II camera, we have to wake it up and make it pay attention. The uCAM-II can auto-baud-detect at serial speeds up to 921600 bps. This is nearly 1 Mbit per second, which sounds pretty good for a first pass experiment. Listing 3 shows the Figure 3. UECIDE programming environment. protocol for waking the camera up and getting it Listing 5. Stream Image Data from the Camera ready. Once the uCAM-II is void loop(void) { awake, it will only remain uint16_t n; awake for 15 seconds if nothing is talking to it. We // Lets get a picture! I hope... Serial1.write(GETPIC,6); // Send the GET PICTURE command will be streaming data as while (!Serial1.available()); // wait for the ACK fast as we can from it, so it isn’t going to go to sleep on for (n=0;n<6;n++) { while(!Serial1.available()); us! status[n] = Serial1.read(); Unlike the Arduino, the } chipKIT boards have several if (status[1] != CACK) { // ACK, that command passed Serial.println("We barfed on GET PICTURE."); COM channels; we will use COM1 Tx/Rx to talk to the Serial.print("Error: ");Serial.println((int)status[4],HEX); camera board. This sequence while(1); // freeze here } is laid out in a flow chart in the uCAM-II documentation. for (n=0;n<6;n++) { Because the Max32 is a 32while(!Serial1.available()); status[n] = Serial1.read(); bit microcontroller running } at 80 MHz, it can easily out// We got the data response if (status[1] != CDATA) { pace this serial baud rate. To Serial.println("We barfed on the DATA return."); avoid getting ‘-1’ in the data Serial.print("Error: ");Serial.println((int)status[4],HEX); reads, I wait for serial data while(1); // freeze here to become available. When it } // We aren't going to look at the image size, we know it already. does, I get it and stuff it into a response array. while (!Serial1.available()); // wait for DATA response Except for the actual for (n=0;n<16384;n++) { // Get our screen image while(!Serial1.available()); picture data, all camera convert.byte[1] = Serial1.read(); commands and responses while(!Serial1.available()); are six bytes long. Once we convert.byte[0] = Serial1.read(); pg1[n] = convert.word; // grab data as fast as we can! have the camera paying } attention, we need to tell it what type of picture data delay(1); Serial1.write(ACKF,6); // ACK that we got the image we want. The INIT command does that. Listing 4 shows // put the image on the LCD how this works. myGLCD.drawBitmap(0,0,128,128,pg1); } The command used to SERVO 04.2015
11
That’s it! The whole program. That wasn’t so bad, was it? Does this inspire you to try your hand at some vision software of your own? Obviously, just streaming image frames doesn’t allow your robot to see, but instead of sending the data to your LCD, your program could look for particular colors (for instance) and move your robot until a “blob” of the chosen color is centered in the image frame. That would be tracking behavior. Looking every 0.36 seconds isn’t going to track very quickly, so the 128x128 image array would not be my first choice. If, instead, we used the 80x60 frames, that would take only 0.104 seconds to download. This might be good enough to do some real work with.
The Conclusions Figure 4. INIT the camera specifies that we will want it to send us 16bit raw 565RGB data for an image size of 128x128 pixels. This is 16,384 16-bit words, which is 32,768 bytes of data. (Pictures use a LOT of RAM to store!) At 921600 bps, each byte takes 10 bits (eight for the data plus a start and stop bit); this means that it will take 0.36 seconds just to transfer the image from the camera. The camera needs about 0.150 seconds to process the image, and then we need to transfer that image to the LCD. I timed this. It takes just a bit over one second for each picture frame to be downloaded, stored, and then sent to the display. This is pretty slow, but I wanted to fill my LCD screen with an image for easy viewing. The smallest raw RGB image that can be sent is 80x60, which is only 9,600 bytes. If I was using robot vision processing, I would use that size image to minimize my response time for analysis. Now that we have the camera initialized and ready to send us frame data, we need to ask for it and then send it to the LCD. Listing 5 shows all that needs to be done to handle that task. Arduino/chipKIT programs have a second main function that is named loop(). Everything in loop() is executed over and over again. So, our camera streaming will be placed there to give us a crude video camera. There are many ways to pack two bytes into a 16-bit word; I chose a method that does no math. The union variable “convert” has two elements: byte[2] and word. Word is a single 16-bit variable and byte is a two-byte array. When we get the bytes from the camera, I pack them into the byte[] array, then I send the single 16-bit word to the data array that we will transmit to the LCD by way of the drawBitmap() method of myGLCD. Figure 4 shows the fruits of my labor. This is one image taken by the camera and displayed on my LCD shield.
12
SERVO 04.2015
We have seen that rudimentary robot vision is possible for a pretty small cost with these components. In the spirit of full disclosure, I have to admit that it took me several hours to get this demonstration to work. I found that my uCAM-II would only sync up when the sync sequence occurred the very first time that the camera was turned on. It remained stubbornly mute if I reset the board and restarted the code without a power cycle. I have no idea why that is happening. I’ll let you all know when I get help from 4D Systems on this problem. This is clearly not optimal behavior. If you look at Figure 4, you’ll see unusual color distortion. It looks like what you see when an image is overexposed; we call it “blooming” on a video camera. I need to work with other LCDs and perhaps graphics libraries to find out if it is the camera, the LCD, or the UTFT library that is causing that. It is important to solve this before I can use the system to track color blobs because I need to know what the color is going to be! I will let you know as soon as I discover the cause for my video blooming. You can get the sketch I have been describing at the article link as MAX32mCAMII.zip. Okay, that’s it for another Mr. Roboto. Keep those cards and letters — er, rather emails — coming to roboto@servomagazine.com and I’ll do my best to answer them. Let me know what you are working on, and if you feel inspired. Even send me some pictures. I am always interested in what is happening out there! Until next month, keep on building. SV
EVENTS Know of any robot competitions Iâ&#x20AC;&#x2122;ve missed? Is your local school or robot group planning a contest? Send an email to steve@ncc.com and tell me about it. Be sure to include the date and location of your contest. If you have a website with contest info, send along the URL as well, so we can tell everyone else about it. For last-minute updates and changes, you can always find the most recent version of the Robot Competition FAQ at Robots.net: http://robots.net/rcfaq.html. â&#x20AC;&#x201D; R. Steven Rainwater
APRIL RoboGames San Mateo Fairgrounds, San Mateo, CA Many events including BEAM, art bots, fire fighting, line following, maze solving, balancers, table top nav, Sumo, RoboMagellan, NatCar, humanoid, robot soccer, and others. www.robogames.net
3-5
9-11
Istanbul Technical University Robotic Olympics Istanbul, Turkey Events include line following, Mini Sumo, fire fighting, vacuum cleaner, and maze solving. www.ituro.org
11-12
RobotChallenge Vienna, Austria Events include Parallel Slalom, Slalom Enhanced, Standard Sumo, Mini Sumo, and Micro Sumo. www.robotchallenge.org
15-18
VEX Robotics World Championship Louisville, KY Robots built by elementary, middle, high school, and university level student teams compete in national championships. www.vexrobotics.com/competition
16
Robot-SM Chalmer University of Technology, Gothenburg, Sweden Events include Sumo, Mini Sumo, Micro Sumo, line following, Folkrace, and Freestyle. www.robotsm.se
9-11
National Robotics Challenge Marion, OH Robots built by student teams compete. www.nationalroboticschallenge.org
11
Alabama Robotics Competition University of Alabama, Tuscaloosa, AL K-12 student-made autonomous robots navigate an obstacle course. http://outreach.cs.ua.edu/robotics-contest/
17
Carnegie Mellon Mobot Races CMU, Pittsburgh, PA Student-built autonomous robots compete in the famous Mobot Slalom. www.cs.cmu.edu/mobot/
11
Brown IEEE Robotics Competition Brown University, Providence, RI Student-built autonomous robots must navigate a maze. http://brown.edu/Departments/Engineering/ Organizations/Ieee/competition/
18
Mercury Remote Robot Challenge Stillwater, OK and Puebla, Mexico Teleoperated robots must navigate a course over 100 miles from the operator. http://mercury.okstate.edu
11
CIRC Central Illinois Bot Brawl Illinois State University, Normal, IL Events include RC vehicle combat, autonomous Sumo, line following, and line maze. http://circ.mtco.com
22-25
FIRST Robotics Competition St. Louis, MO World championship event. Robots built by student teams compete in an annual challenge. www.usfirst.org
14
SERVO 04.2015
23
DTU RoboCup Technical University of Denmark, Copenhagen, Denmark Autonomous robots must navigate a varied course that includes line following and wall following elements. www.robocup.dtu.dk
24-25
Greater Philadelphia SeaPerch Challenge Drexel University, Philadelphia, PA Student-built tethered underwater robots compete to execute an ROV mission. www.phillyseaperch.org
24
UNI Sumo Smackdown UNI, Cedar Falls, IA Annual Mini Sumo competition for autonomous robots that are shipped to the event site by remote builders, who watch the event via the Internet. www.narobotics.org
25
Istrobot STU, Bratislava, Slovakia, EU Events include line following, IEEE Micromouse, Mini Sumo, and Free Style. www.robotics.sk
25-26
The Tech Museum of Innovation's Annual Tech Challenge San Jose, CA Unique challenge for student-built robots each year. See the website for details on this year's challenge. http://techchallenge.thetech.org
Our industryâ&#x20AC;&#x2122;s largest,
is missing something important...
You. The one event you canâ&#x20AC;&#x2122;t miss. Get the full details at auvsishow.org
#unmanned15 SERVO 04.2015
15
NEW PRODUCTS ARX STEM Video Based Robotics Curriculum
G
lobal Specialties introduces their new ARX STEM Video Based Curriculum. The ARX STEM curriculum is a turnkey 10-week STEM (Science, Technology, Engineering, Mathematics) course using the ARX ASURO robot. Students can learn basic electronics, mechatronics (robotics), and programming in the C language. Teachers do not need to have previous robotics experience as the video series walks them through each process step by step. Teachers can learn right along with their students. There are 36 video lessons with a worksheet activity for each one. The curriculum includes the following components: ARX ASURO Robot The ARX is a quick, autonomous, multi-sensored robot with line following and collision detection abilities. The ARX comes unassembled and requires soldering, making it an exceptionally suitable introduction into processor controlled hobby electronics for projects in schools, universities, and technical education. It was developed for educational purposes by the DLR â&#x20AC;&#x201D; the German Aerospace Center (like NASA). Highly versatile, the ARX is completely programmable in C. Standard parts are utilized and freeware tools can be used for programming. List price is $99. ARX-SSBL ARX Student Book, Single-User License This is a student textbook with a singleuser license, giving full access to the online video instruction. Ideal for independent learning and hobbyists. List price is $150. ARX Robot Tool Kit The ARX-TLKT is a complete tool kit for use in assembling the ARX
16
SERVO 04.2015
robot while working along with the STEM curriculum. It includes a soldering iron and all other necessary tools, such as a very handy third-hand tool with magnifying glass. The kit is housed in a sturdy 19 inch tool box. One ARX-TLKT per every four ARX robots is recommended. List price is $299. ARX Starter Breadboard Kit The ARX-BBKT is housed in a 12 inch tool box with electronics storage areas which are suited for storing ARX robots and breadboards under construction. These items are required for the first two sections of the curriculum. This kit can be purchased once and used with multiple classes. One ARX-BBKT per ARX robot is recommended. List price is $50. ARX Robot Spare Parts Kit This kit contains all the parts of an ARX ASURO robot, without the extras like the USB cable. The ARX-PARTS is a must when the ARX STEM curriculum is being used in a classroom setting as small parts are easily lost. One ARX-PARTS per 10 ARX robots is recommended. List price is $55. ARX Student Book This is a 320 page student textbook (without access to the online instruction). Use this option when hard copies of the book need to be available for students, while using a school license for online access (ARX-TPLAB). For both the textbook and online access, order ARX-SSBL. List price is $75. ARX Teacher Pack, Single-User License This is a teacher package with a single-user license to the online video content, including teacher answer keys. For
multiple-user licensing, order the ARX-TPLAB. The Teacher Book includes topics such as: • Preparing for Day 1 • Overview of software requirements • Overview of material and tool requirements • Scope and sequence • Activity list with estimated times • Suggested schedule for 15 weeks (three hours per week) • Suggested schedule for 10 weeks (five hours per week) • Assessment methods • Learning objectives • A script of the online video component for each of the 40 lessons List price is $300.
ARX Teacher Pack, Multiple-User License This teacher package has a site license, giving online access to every student at the particular school. The Teacher Book includes the same topics as the singer-user pack. ARX Robot Soldering Practice Kit Those new to electronics can learn soldering and practice their skills on this low cost kit before attempting it on the ASURO robot. Take the small components (such as LEDs) and solder them onto the included mini printed circuit board (PCB). Step-by-step instructions are included with the curriculum. A soldering iron is not included here, but comes with the ARX tool kit mentioned previously. This is a non-reusable item. One GSK-109 per ARX robot is recommended. List price is $3.25 Continued on page 54
GREAT DEALS!
SERVO 04.2015
17
bots
IN BRIEF NEW RULES FOR DRIVING MS. DAISY Britain is re-writing its traffic laws to stop selfdriving vehicles from causing gridlock, and to help them deal with aggressive human drivers. According to the Daily Mail, one of the major changes will allow cars to drive closer together “with separation gaps between automated vehicles just a fraction of the recommended spaces between automated vehicles compared to those with drivers.” The goal is to prevent self-driving cars from lingering before changing lanes, merging into an intersection, or trying to claim a parking spot. The UK’s Department of Transport will publish a code of practice this spring that will outline changes that need to be made to their Highway Code. This will be followed by a full review of legislation in 2017. “Driverless vehicle technology has the potential to be a real game-changer on the UK’s roads, altering the face of motoring in the most fundamental of ways and delivering major benefits for road safety, social inclusion, emissions, and congestion,” says transport minister, Claire Perry.
TAKING ROBOTS TO THE GRAVES PlotBox — which has been called the "Google Maps of cemeteries" — uses cloud-based software and drones to map cemeteries to make sure they’re not burying anyone in the wrong plot. Most people don’t like to think about dying, but the death business is a huge industry. The US market alone is worth $3 billion. Many cemeteries still rely on old paper records of funerals and available burial plots to map out their property. These outdated systems can lead to errors when graves are dug in the wrong place. That’s where PlotBox comes in. Based in Northern Ireland, the start-up created cloud-based software that uses drones to map the grounds. According to PlotBox founders, Sean and Leona McAllister, the drones quickly scan cemeteries for free plots much faster than traditional methods. PlotBox scanned a 50 acre cemetery via drone in 30 minutes, which would have taken 100 hours normally. PlotBox offers tools for operations management, communicating with staff and other business partners, financial reporting, and making genealogy data searchable and available to the public.
18
SERVO 04.2015
bots
IN BRIEF MAGNETIC PERSONALITY Thirty four year old Deirdre McDonnell from Drogheda, County Louth, Ireland became the first adult in the world to receive a remote controlled robotic spine implant to combat the effects of congenital scoliosis. McDonnell underwent a magnetic expansion control system (MAGEC) rod operation to have a magnetic rod screwed onto her spine. The rod is then controlled externally to correct the curvature caused by scoliosis. McDonnell was born with congenital scoliosis (a condition that affects about one in 10,000 newborn babies), and underwent her first operation at just six weeks old. Her spine was so malformed doctors didn’t think she’d live past the age of seven. Over the next 10 years, she underwent eight painful operations as doctors battled to save her life. After the surgery, the rod was gradually lengthened from outside of the skin with the use of an External Remote Control (ERC). McDonnell’s spine was straightened at regular intervals over a few months. She is now fully recovered.
ALDEBARAN CEO STEPS DOWN Aldebaran Robotics has announced that its founder and CEO, Bruno Maisonnier is stepping down. The Paris-based company has officially confirmed that SoftBank — which had acquired a majority stake in Aldebaran — will purchase all of the shares held by Maisonnier and appoint a new CEO. Maisonnier was appointed a special advisor to Masayoshi Son and SoftBank Robotics, effective March 4, 2015. SoftBank has appointed Fumihide Tomizawa as the new CEO. He’s been the president of SoftBank Robotics since its establishment in August 2014. Tomizawa began his career at Nippon Telegraph and Telephone Corporation in 1997 before joining SoftBank in 2000. He held various sales planning and business development positions before leading SoftBank Mobile’s robotics project (now SoftBank Robotics) in 2011.
Ellipse (http://ellipse-tech.com/) developed the MAGEC (MAGnetic Expansion Control) System for use in children with severe spinal deformities. The MAGEC System is composed of an implantable rod, the External Remote Controller (ERC), and accessories. The implanted MAGEC spinal rod is used to brace the spine during growth to minimize the progression of scoliosis. It is secured using standard commercially-available fixation components such as laminar hooks and/or pedicle screws. The MAGEC rods are available in 4.5 mm and 5.5 mm diameters. After the MAGEC rod has been implanted, the ERC is placed externally over the patient’s spine at the location of the magnet in the MAGEC rod. Periodic non-invasive distraction of the rod is performed to lengthen the spine and to provide adequate bracing during growth. Routine X-rays or ultrasounds are used to confirm the position and amount of distraction. The frequency of distraction sessions is customized to the needs of the patient by the treating surgeon.
SERVO 04.2015
19
SAFFiR THE SAILOR Scientists unveiled a prototype Shipboard Autonomous Firefighting Robot (SAFFiR) this past February at the Naval Future Force Science & Technology EXPO, revealing details about its successful demonstrations last fall aboard the USS Shadwell — a decommissioned Navy vessel. SAFFiR — sponsored by the Office of Naval Research (ONR) — walked across uneven floors, used thermal imaging to identify overheated equipment, and used a hose to extinguish a small fire in a series of experiments back in November 2014. Basically, SAFFiR is a bipedal humanoid robot that is being developed to assist sailors with damage control and inspection operations aboard naval vessels. Check out this video of it in action: http://youtu.be/_ZHb4VbG6mQ.
20
SERVO 04.2015
ROBOT ATTACK SUCKS A 52 year old South Korean woman was “attacked” by her robot vacuum while she was napping on the floor. Sitting and sleeping on the floor is common practice in South Korea, and the robot vacuum ran for more than a minute after latching onto the woman’s hair. The woman had to call 119 (South Korea’s emergency telephone number) and have firefighters free her from the robot’s death grip. She did lose a few strands of hair, however. Robot vacuums have sensors to avoid obstructions and stairs, however, they apparently can’t tell the difference between hair on the floor and hair that’s still attached to a human’s head. Reports say the robot was unharmed and still functional, but it’s not clear whether it still has a job at this particular South Korean home.
ROBOT? TIAGO! Spanish robot maker, PAL Robotics, — best known for their REEM humanoid robots — has introduced a new mobile manipulator called Tiago (Take It And Go). If you want a robot to pick stuff up and move it around in a research environment, then this is the robot for you. Tiago bears some resemblance to that of the UBR-1 from Unbounded Robotics, which itself can be traced back to Platformbot; Toyota’s HSR predates them both. Tiago comes in three different configurations: iron, steel, and titanium — none of which refer to the materials used to create the robot. The base model (iron) comes with a three meter navigation laser and no arm, and will run you just under €30,000 ($34,000). Add a 7DOF arm with a parallel gripper and you’re looking at about €50,000 ($57,000). The titanium version — which includes a fivefingered hand with a force/torque sensor plus a 10 meter navigation laser — will set you back about €60,000 ($68,000). If you want, say, a 10 meter laser but no arm because you just want to work on navigation for some reason, PAL is happy to work with you on other configurations.
SERVO 04.2015
21
Post comments on this section and find any associated files and/or downloads at www. servomagazine.com/index.php /magazine/article/april2015 _CombatZone.
Featured This Month: 22 SPARC: Reigniting Robot Combat? by Holden Berry
24 CARTOON 25 EVENT REPORT: masSACre Dethrones 15 Pound Powerhouse, OverLoad by Richard Loehnig
27 Small Bot Masters — Mike Jeffries by Brandon Davis
22
SERVO 04.2015
SPARC: Reigniting Robot Combat? ● by Holden Berry
I
n April 2003, I was eight years old when I attended my first robot combat event as a driver. My sister and I switched off driving our one pound Antweight robot, Babe the Blue Bot. Our little wedge bot went 32 that summer day in Tallahassee, and that was the beginning of my short stint in the robot combat scene. Although my dad did most of the building for our team (Legendary Robotics), I helped out whenever I could apart from driving. Throughout the dozen or so events I attended, Babe the Blue Bot had varied success. We made it to some final rounds; we won some royal rumbles; we lost some grudge matches; but regardless, everyone had fun. The robot combat scene has had its peaks and valleys. Many people will remember its days on TV, but in the last five or so years the sport has lost central organization and direction. However, in the last few months, a group has come together to hopefully
help provide more direction and planning. Through the combined effort of over 20 people, SPARC — the Standardized Procedures for the Advancement of Robotic Combat Documents — was created. These documents are the work of a large group of robot professionals and hobbyists coming together to standardize things such as robot combat rules, construction specifications, tournament procedures, and judging guidelines. I talked to Mike Jeffries — someone who has been through both BattleBots and the Robot Fighting League (RFL), and is now one of the leading SPARC contributors. He has seen both robot combat movements build and die, and is now hoping that these documents will help the next wave of robot builders, drivers, and enthusiasts progress and help move the sport forward. Unlike both BattleBots and the RFL (which had a
few people making decisions up top), the SPARC documents are "an ongoing discussion that can address new concerns and adapt to them," Jeffries claims. "With SPARC, there is far less dependence on a specific person taking care of any given issue." Jeffries believes that the amount of contributors and people posting in the forums will be an advantage that the former leagues lacked. In addition to the amount of people contributing to the documents, Jeffries believes that having so many robotics discussions localized in one forum and on one site will benefit immensely. "There isn't a good single location to send people when they ask about getting started," Jeffries claims. When a person is given a long list of websites and forums, it adds a "barrier that makes it that much harder to go from 'I want to try this to 'I can do this'." So, to make it easy, the SPARC documents are meant to simplify the procedures and information that goes into not only building robots, but scheduling events, judging criteria, match rules, and much more. So, what exactly do the SPARC documents contain and what prompted their creation? Because the robot combat community had for the previous few years drifted apart, "individual events were updating their own already modified variants of existing documents," Jeffries explained. There was no standardization of rules and procedures, and in an ever-changing technological field, lack of standardization means that in the near future the variation among robots and rules could grow huge. It's quite possible that without some sort of general cohesion that (soon) some robots would not be allowed to participate at certain events because their rules may be different than others. Jeffries believed this would just further drive apart the robot combat community and make it much harder to grow as a whole. This is why the group of over 20 event organizers came together to write the SPARC documents. They began with the tournament procedures, standardizing weight classes, camera rules, unsportsmanlike conduct penalties, and weigh-in procedures. Next, they moved on to the match rules. This section included bot loading and activation procedures, emergency deactivation, match duration and frequency, knock out rules, and much more. Although many of the small details like death zones or un-stick procedures may vary by specific event, these rules are a good overall reference point for builders. The next area is the judging guidelines. These documents award points in three separate categories: aggression, control, and damage. Five points are split between drivers based on a judge's discretion for aggression; six in control and damage. The documents then
go on to describe how each category should be measured, and post-match protocol. The fourth and final document concerns the construction specifications. Topics like batteries,
SERVO 04.2015
23
technologies across the robot combat field. Kurtis Wanner — Owner of Kelly Lockhart Events like the South FingerTech Robotics Bryan Gallo Florida Combot Regionals (Covered initial costs) Jason Brown or Robot Battles 53 can Ethan McKibben Jeremy Campbell advertise in the events Christopher Olin James Iocca section, which has Dan Toborowski Andrea Suarez subsections for events in Brian Schwartz Orion Beach Europe and Australia, as Paul Grata Brandon Davis well as North America. Robert Purdy Robert Masek So, who knows Dan Chatterton Mike Gellatly whether or not robot Rob Farrow Samuel McAmis combat will ever be on Chuck Butler Jamison Go TV again? Jeffries and I both certainly don't. But is being on autonomous robots, pneumatics and TV really the ultimate sign of hydraulics, fuel lines, etc., are all popularity and success? This is a discussed in this section. notion that Jeffries suggests is untrue. The forum has also been vital in "A new show would be great. It the growth and development of the would likely result in a huge influx of SPARC documents. This forum has new competitors and event sections ranging from for organizers, but it's not necessary for sale/wanted, build progress report, robot combat to continue to exist," he tips and tricks, rules discussions, asserts. general questions, and much more. After I thought about that, I Jeffries credits the forums as one of started to realize he was right. The the key reasons of success for the BattleBots show ended in 2002 — a SPARC documents because the year before I even started driving bots "discussion is not closed off to a small — and although I liked watching number of people.” reruns, it wasn't the show that I loved The rules and procedures can so much. In all honesty, watching the adjust to the various and differing
List of Contributors:
24
SERVO 04.2015
show had little to do with me ever starting to drive. It was going to the events — driving in matches, and meeting a huge group of people who (although they wanted to rip your bot to shreds) wanted to help you every step of the way. Watching a show can't replace the feeling of outdriving someone and winning, and it can't replace the feeling of shock and horror at seeing a spinning saw blade rip your kevlar armor apart. Robot combat has existed in some form since 1987, and, yes, it has seen some incredible highs and some disappointing lows. However, as Jeffries puts it, "there's one thing that's absolutely certain about robot combat: It may be a lot of effort, but it's also a whole lot of fun." To view the SPARC documents or forums for yourself, check it out at www.sparc.tools. SV
EVENT REPORT: masSACre Dethrones 15 Pound Powerhouse, OverLoad â&#x2014;? by Richard Loehnig
T
he NTMA Training "OverLoad," a vertical disc; ala Centers Robotics vintage VD6; and "masSACre," League (TCRL) kicked an undercutter, Ă la vintage off 2015 with a bang. In its Last Rites, fans were intrigued second season of competition, by many newcomers. The the southern California based event showed off more National Robotics League weaponed robots than the (NRL) affiliate continues to previous six TCRL grow and show the combat competitions. robotics world what SoCal has First-time competitors to offer. "Hydra" from TeamFast Sixteen robots from 10 ElectricRobots featured four southern California schools Harbor Freight sawblades, and converged on the NTMA finished the day with four Training Centers in Santa Fe wins, taking home a third Springs, CA on February 7th place finish. Two other new for the Robot Conflict 2015. bots that caught everyone's First Place Winner: Mt. SAC's "masSACre" with NRL coordinator, Richard Loehnig and NTMA Training Centers While many of the high attention were both products President, Michael Kerwin. school, vo-tech, and college of the NTMA Training Centers, competitors in the league are and the brainchild of NTMA new to combat robotics student, Joseph Rafferty. competition, the innovation in "Who Knows," a the design of the entrants horizontal beater bar built on shows that this league will see top of a RRevo 15 lb kit, got massive growth and the off to a slow start, and was potential to take the NRL having issues with a slipping scene by storm. weapon belt in early rounds. What started off as a They were able to fix the warm, overcast SoCal day, issues and come away with soon turned dark as robots three victories, but more were slammed, tossed, and importantly, they were able to mashed against the knock out six of the other polycarbonate walls, leaving seven robots in the rumble to five robots unable to make it walk away as the Robot Students from Downey High School posing in the pits. through the day, therefore Conflict 2015 "King of the rendering them useless for the Ring." King of the Ring rumble. Many The first round gave the nearly 250 The other NTMA bot, "Low Blow" is newcomers to the league saw loads of fans on hand and hundreds watching an undercutter with a 3D printed body, action and were victorious in the earlier on the livestream a glimpse into the 3D printed hubs for the nearly four inch rounds, but by the end of the day, it future of the 15 pound combat robotics wheels, and a five pound steel weapon was the veterans that took the top scene in southern Cal. While everyone with a titanium weapon shaft. While spots. was excited to see league veterans not as successful due to weapon motor SERVO 04.2015
25
Third place winner "Hydra" versus champion "masSACre."
Veteran wedge, "Vengeful Viking" sends beater bar, "Who Knows" flying.
NTMA student, Jason Gandarilla working on league newcomer "Who Knows."
"OverLoad" from TeamFast ElectricRobots face off against masSACre from Mt. San Antonio College (Mt. Sac) — the two teams with the most experience in fighting robots. TeamFast ElectricRobots is coached and mentored by BattleBots veteran, Jeff Vasquez, whose sons make up two-thirds of the team. Mt. Sac is coached and mentored by Prof. Martin Mason who has been building, competing in, and "OverLoad" driver, Jason Vasquez (TeamFast hosting combat robotics ElectricRobots). events all over the country. Their first meeting failure, Low Blow promises to be a came in the Winner’s Bracket semiforce in the league in coming events. finals, when masSACre unleashed The definitive highlights of the day several deadly blows, forcing the saw three-time TCRL Champion, TeamFast ElectricRobots driver, Jason to
26
SERVO 04.2015
tap out within 30 seconds. It was the first time that OverLoad had been dealt such a massive loss. Since making its debut at the Robot Conflict 2014, OverLoad had amassed a 16-3 record, and won the previous three NTMA Robotics League events. Two of its previous losses, however, were at the hands of masSACre. In the Loser’s Bracket finals, OverLoad was forced to go up against teammate, "Hydra" who was forced into the Loser’s Bracket in the Winner’s Bracket quarters by masSACre. Hydra then won two matches fairly easily against veterans "Binary Bob" and "Vengeful Viking" to set up the Loser’s Bracket finals against OverLoad. After a grueling back and forth match, OverLoad eventually came out on top, which set up a re-match in the finals against masSACre. The final match of the day did not
disappoint — perennial powerhouse and three-time champ OverLoad versus the only robot to defeat him twice. As NTMA Robotics League announcer, Bradley Hanstad, announced the bots, the skies turn gray and the rain started to fall. Screams of "Massacccrrrreeee!" could be heard from the hordes of Mt. Sac fans on hand. "3, 2, 1, fight!" Seventeen seconds later, OverLoad was left beaten and defeated. The battery pack and ESC were thrown across the arena floor after masSACre landed a few deafening blows. A new champion was crowned. While Mt. Sac was able to take home the first place trophy, the real winners were all the competitors and the manufacturing industry. Many of the students in the league are unaware of the potential careers that are available in manufacturing.
The goal of the TCRL is to build the nation's future by promoting a resurgence of technical education. While only in its second season, the league is seeing continuous growth, and the possibilities are endless. The students are walking away with an experience that will last them a lifetime. Providence High School coach and mentor, Susan Beckenham said it best, "Even though we walked away with scrap metal, it was a great learning experience for the teams." My thoughts exactly! NTMA livestreams all of their events at www.twitch.tv/roboterevo. Their next event will be held on Saturday, April 11th. For more information about the
NTMA Training Centers Robotics League events — including ways to get involved as a volunteer or sponsor — contact Terry Kerwin at terry.kerwin@trainingcenters.org Additional info is available at www.trainingcentersroboticsleague. org. SV
Small Bot Masters — Mike Jeffries ● by Brandon Davis
I
met Mike Jeffries in 2011. This new guy shows up at DragonCon with some serious hardware: a sweet 1 lb and a 12 lb that looked like it could stop a bullet. Well, I say new, but his first fight was the 2006 RoboGames. RoboGames that year had combat from 5.3 oz to 340 lbs. He brought Angry Little Person (1 lb) and Ruiner (60 lb). AngryLP went down to VDD in his first bout, and Ruiner got a 1-1. At RoboGames that year, there were 19 countries, 42 events, 167 teams, 424 entries, 466 robots, and 646 engineers ... one of those was Mike.
(RoboGames.net has years of stats on their website). Before building bots to pummel the opposition, Mike raced 1/24 scale slot cars at speeds of 30-70 mph on 100-200 foot tracks. Photos of his home venue (scrhobbies.com) show
fat tracks snaking over themselves on multiple levels with tight turns giving way to a long straight flat, then looping again. Tiny little electric motors with hair thin internal wiring zipping out of a turn need a great deal of assembly, maintenance, and troubleshooting. The races reward hand-eye coordination — the peculiar disassociation required to micro-manage a thing that is moving way too fast and is also far away. Take that package off to college, add a bit of learning, and you get what he describes as his worst failure of a bot, Mr. Self Destruct (30 lb):
Anodized Ti wedge plate, Algos.
SERVO 04.2015
27
MJ: While still in school, I attempted to rebuild Ruiner as a 30 lb robot named Mr. Self Destruct — which was a fitting name, as the robot exploded in testing. The bot was the product of months of work, it had hand formed zylon composite armor, and what was at the time one of the biggest spinning bars in the 30 lb class spun by one of the most powerful motors anyone would bother cramming into a 30 lb bot. During a test in a large, nearly empty parking lot, the gyroscopic forces from the weapon system ripped the bot apart, sending a large chunk of the chassis 75-100 feet away, directly over my head. If the piece had been thrown at a lower angle, I’d have had a 4 lb chunk of robot hit me at 100 mph or more, and likely would have been seriously injured or killed. Since then, I’ve taken a much more careful approach to testing and put a lot more effort into designing machines that aren’t prone to detonating due to their own forces. Since graduating, I’ve built 13 new machines ranging from 150 g to 30 lbs. As it stands now, the regular
fleet of robots consists of four 1 lb bots, two 12 lb bots, a 15 lb bot, and two 30 lb bots. In 10 words or less, describe your design philosophy: Form and function should never be mutually exclusive. Process — is there one in your work-flow? When building a new bot from the ground up, my general process is this: • Conceptual design (i.e., sketches, doodles, whatever else) • Part identification (figuring out what all needs to get crammed into it) • CAD design (most of my new bots are fully drawn in SolidWorks) • Part purchasing • Outsourced fabrication (anything I can’t make with my own gear gets done first) • In-house fabrication and assembly • Testing and modification
BotShop.
28
SERVO 04.2015
Are there any materials you prefer to work with? I tend to work mostly with metals. My go-to materials are Grade 5 titanium, 7075 aluminum, and 4130 steel. Which materials and in what ratio depends on what’s being built. If I have to use plastic, I’ll mainly go with UHMW-PE. I’m also planning to start messing around with 3D printing on the small bots which will bring ABS into the mix. Tell me about your favorite tools: My top five tools in no particular order: angle grinder, machinist hammer, Wiha ErgoStar hex set, impact driver, and a TIG welder. • Angle Grinder: At events, this is the best way to finish off the repairs on bent or torn parts. Pair it with a good hammer and even some serious bending, and damage can be fixed in fairly short order. An absolute must if your bot needs to have a sharp wedge to work properly. • Machinist Hammer: This tool I actually made myself while in
school. It’s a pretty simple hammer with a brass face on one side and a nylon face on the other. The handle also has a compartment that holds a center punch. The big thing with the softer faces is you can use this to help get bent parts back into shape while minimizing the additional damage done in the process. • Wiha ErgoStar hex set: Hex wrenches are a must if you use higher grade fasteners, and this is by far the best wrench set I’ve found. The case is geared together so you can twist one wrench and all of them will rotate out for easy access. Sure, it may be a bit of a gimmick, but it’s handy when you’re in a rush. • Impact Driver: Pretty much the only thing I use this for is getting the armor off and back on my bots as fast as possible. When time’s tight near the end of the event, anything that can get the bot opened up and put back together faster makes it that much easier to be ready for your next fight on time. • TIG Welder: Compared to MIG welding, I just find using the TIG welder relaxing. When you’ve got a bot that needs a lot of welding with precise positioning and precision parts, it’s really nice to be able to spend a few hours in the shop getting it done correctly and cleanly. Mike has set himself up a nice little work space — not surprisingly closely integrated with the rest of his life. A portion of his shop is in a side room that connects the living room and kitchen. From here, he creates the machines that make me drool with envy. In addition to the technical engineering excellence of his
construction and design, there is an artistic element. The anodization that he applied to Algos’ (1 lb) titanium wedge plate adds nothing to its combat effectiveness, but is a beautiful touch that is all the more compelling for using soda pop. His Near Chaos team bots are black with radiating streaks of green. Talk about the most fun thing you ever built: The newest version of my 30 lb Sportsman class bot, Nyx is the obvious answer. The bot is fast (top speed of 15 mph), tough, and has an array of powerful weaponry to choose from. It’s an attempt to answer the old “rock-paper-scissors” problem with “why not all three?” The weapons are a crushing claw, a lifting fork, and an axe — any of which can be installed in under five minutes. A detailed report on the design and build is spread across the November 2014 - January 2015 issues of SERVO. Which is the best bot in your stable? Why? Since Nyx hasn’t actually fought at the time of this interview, I’ll leave it out. Given that, my 1 lb vertical spinner, Algos is the best by most common measures. Prior to Motorama 2015, it’s got a lifetime record of 32-10, and with the current setup a 19-5 record. It’s won several events and has been on the podium for most of the other ones. As far as why, it’s a very stable, durable bot with an active weapon that packs a decent punch. It’ll never be the biggest hitter in the class, but it’s got enough power in the weapon to do some serious damage, and a
shape that helps it deliver energy very effectively. The only bot I’ve got with a better record is Apollyon, whose third version had a 20-2 record prior to being retired, sold, and renamed. If you could build anything you wanted, what would it be? For NERC events, they allow a 50% weight bonus for shuffling robots (pseudo-walking via continuously rotating linkages), and there’s a concept that I’ve wanted to make if I wound up with the time and budget to pull it off correctly. The base platform would use four foot pods, each of which would have one side of the Jansen walking mechanism (most famously used on Theo Jansen’s Strandbeest) with the system geared to run at 10-15 mph. This kind of speed with a relatively compact version of the mechanism would mean it would be taking several hundred steps per second with small sharp metal feet. The rest of the bot would be designed to be able to accept weapon modules similar to the way that Nyx does. The core bot would be designed such that a plow or wedge could be attached, while still being below 30 lbs to allow it to compete at Robot Battles events where there isn’t a shuffler bonus. Then, the remaining 15 lbs could be dedicated to modular active weapon systems that could be added for NERC events. Personally, I can’t wait to see what happens. SV Mike Jeffries’ Near Chaos website is http://nearchaos.net.
Mr. Self Destruct done blowed up.
SERVO 04.2015
29
AUTOMATION WITH ACTOBOTICS
By JĂźrgen Schmidt
FIGURE 1. Finished Actobotics-based wire measuring and cutting machine with controller.
As robot enthusiasts, we enjoy building fighting robots, line followers, and machines that can terrorize the local cat or dog. What we really want, however, is a robot that will clean our house, fold clothes, pull weeds, and perform all those jobs we'd rather avoid. So, if we can sometimes make some mundane task easier through robotics, I consider that a significant "win." 30
SERVO 04.2015
Post comments on this section and find any associated files and/or downloads at www.servomagazine.com/index.php/magazine/article/april2015_Schmidt.
BACKGROUND Every serious “maker” has created some of the tools he or she uses. Sometimes it’s as simple as grinding a screwdriver to fit a particular screw, or as complex as building a custom CNC router for cutting out robot body parts. In the course of building gadgets in small production runs for myself and my customers, I run into simple, repetitive tasks and say, “I could train a monkey to do this,” but go on performing them because housing and training monkeys can be a messy business. Then, just before my mind goes absolutely numb from boredom, inspiration hits: “I could have a machine do this for me!” While my “monkey” hands are going on with their simple task, my brain’s engineering department FIGURE 2. Original Meccano-based wire measuring machine from 2003. kicks in, and my thoughts are off designing my next project. connected to a rubber wheel via some gears. An idler In this particular case, the task is to measure and cut wheel holds the wire against the rubber wheel, and every battery lead wires. I’ve done thousands of them over the time I hit a button the stepper motor turns a fixed number years — all the same length. I didn’t want to spend a lot of of steps, resulting in uniform wire lengths that I then clip time designing and building a machine to do this because off. the goal was to save time, not go off on a new This system has worked well enough, but every time I development project. Also, I had orders to fill. Once the used it I thought of possible improvements. I kept putting mental gears finished spinning, I pulled out my mechanical them off because they weren’t really that important, and I prototyping kit (a.k.a., Erector set) and got to work. was always in the middle of something else when I used it. Growing up, I had many construction toys. I started out Then, I got a project that would benefit from a more with wooden blocks, moved on to TinkerToys® and flexible machine. The drawbacks of the current one are: LEGOs®, and ultimately Märklin Erector sets. The Märklin kits had gears, wheels, shafts, beams, and other parts that 1. It doesn’t cut the wire. allowed my creativity full reign. I used them into my teens, 2. There’s no integrated reel holder. but then moved on to other things. 3. It doesn’t count the number of wires measured. When I became interested in robotics some decades 4. I need to reprogram the processor if I want to later, I tried to find my old Erector set but, unfortunately, it change the length it measures out. was lost during various moves. The German company doesn’t make the sets anymore but similar parts are My upcoming project needed various lengths of lead available from the British (now French) company, Meccano. wires, so it was finally time for an upgrade. The first I accumulated a good collection of parts via eBay and built question that comes to mind when considering an upgrade an assortment of robots — only some of which were is, “Do I try to fix the original or do I start over?” deemed noteworthy by my cats. When it came time to build my wire measuring machine, this was naturally the resource I turned to. The end result is shown in Figure 2 and you can see a YouTube video of it in action at http://youtu.be/ykguK0ylfCM. Making robot prototypes using the Meccano I couldn’t remember when I first built it – I had to track components, I discovered some of their limitations. The down the source code for the processor that drives it – and biggest one is that the structural members are made from discovered I’ve been using it since 2003. The basic principle soft steel. They’re heavy and bend easily. Other issues of the machine is a microprocessor-driven stepper motor include the odd 4.08 mm axle and bore size, a lack of
SELECTING A CONSTRUCTION KIT
SERVO 04.2015
31
few of each as I want. I ordered a sampling of structural members, motor mounts, shafts, bearings, gears, and a hardware kit. Upon examining them when they arrived, I found that the aluminum structural members are quite strong and light. The assembly hardware is based on hex socket head 6-32 screws. The balance of through and threaded holes in the various parts is such that you rarely have to use a nut to fasten things. If you’ve ever worked with an Erector set, you know that frequently you have to go to great lengths to fit a nut on a screw that comes out in some awkward FIGURE 3. Actobotics parts, additional hardware, and tools. location. I put some pieces standard motor mounts, and no option for using ball together in various combinations to get a feel for the bearings. While I could probably upgrade my hardware with components, and to figure out what I would need for my the Meccano components, I have other projects in mind new machine. I did run into a little trouble with the plastic where I know the Meccano won’t work. I decided to start gears, which appeared to fit too tightly. Some SDP-SI gears over since this project would be a nice way to get some of similar specifications worked fine, so I knew it wasn’t an experience with a new construction system. issue with my design. I documented and reported this to In the course of reading Nuts & Volts and SERVO ServoCity and got replacement gears in a few days. Magazine, I learned there were several robot construction (Thanks, Brian!) systems available. In order to choose the best one for me, I Apparently, the original gears I got had not been cut came up with several guidelines: correctly. Turns out, I didn’t need the gears after all, but I’m sure they’ll come in handy in the future. Figure 3 shows my 1. The components have to be strong but light enough new parts organized into some plastic boxes. The two trays to build real world machines, not just at the top show what’s left over from the Actobotics parts demonstrations. after I built the new wire cutter. The tray on the bottom left 2. The building system needs to be friendly to “foreign” is an over-the-years accumulation of 6-32 hardware, and on parts, so I can use motors and gears from other the bottom right I show some of my tools. manufacturers. After playing — excuse me, working — with the 3. I need to be able to buy individual parts as opposed Actobotics parts for a while, I brought out some other to preselected (and often expensive) kits. parts. I have some 1/4” bore pulleys from SDP-SI, as well as 4. I would be building my own electronics, so the gears, salvaged stepper motors, Buehler gear motors, and, vendor offerings in this area would not factor into of course, the Meccano parts. As I searched for possible the decision. parts to combine with the Actobotics, I also discovered some sliding door wheels and bearings that had a 1/4” Naturally, I started by looking at all the advertisements bore. The 1/4” parts fit nicely onto the Actobotics shafts. in SERVO Magazine. Then, I did some Internet searching. I Actobotics supports several shaft diameters, but the most found a number of vendors and kits, any one of which common is 1/4” (which is quite sturdy in contrast to the would have thrilled me as a Christmas or birthday present in Meccano 4+ mm shafts). my youth. Only one of the vendors had what appeared to While comparing some of the Meccano parts to the meet my requirements: Actobotics from ServoCity. They Actobotics ones, I made some exciting discoveries: there are have a wide range of parts and the online catalog shows several holes in the large channel that accommodate the many pictures of them in use, so I can order as many or as Meccano shafts; some of the channel hole spacing matches
32
SERVO 04.2015
the Meccano hole spacing; and the Meccano wrenches fit the Actobotics square nuts. Future Actobotics constructions may be able to adopt some of the now (for all practical purposes) orphaned Meccano pieces.
THE NEW DESIGN Having decided that I made the right choice in selecting the Actobotics parts for my new machine, I started laying out a design. The core mechanism is the wire feeder. When I prepared my second order for parts from ServoCity, I also ordered some rubber feed wheels from SDP-SI, and some new stepper motors. I took a guess at the torque and probably ended up with too much power, but who can complain about too much power, right? Figure 4 shows the basic path of the wire through the machine. At the right side, you see the spring attached to the black tensioner arm. The silver cylinder that I use as an idler on the left end of the tensioner arm is a salvaged disk drive ball bearing whose bore was just the right size to slip onto the 6-32 screw. The wire is fed from right to left through various guides to the feed wheel, which is connected directly to a 40 oz-in NEMA17 stepper motor via a 5 mm to 1/4” shaft adapter. The wire is pushed into a piece of brass tube, mounted so it’s positioned in the jaws of the cutter. The brass tube and the plastic cross member are held in place with one of my favorite adhesives: Amazing Goop (see sidebar). Figure 5 shows the cutter assembly mounted on the feeder channel, as well as a mount for the wire reel. For the cutter, I selected a simple wire stripper and removed the plastic handles and setscrew. Initially, I planned to use a small diagonal cutter to clip the wire, but I couldn’t find any that could be mounted conveniently. Then, I tried using scissors. The Fiskars I used have some available mounting holes after removing the plastic handles. However, the wire wouldn’t hold still; it kept wriggling away from the closing jaws. Finally, I came upon an old wire stripper with the two notched cutting edges. These would trap the wire, and if I removed the wire gauge adjusting bolt, the wire stripper would become a wire cutter. Voilà! I ordered a new one, drilled the necessary holes with carbide-tipped drill bits through the heat-treated steel, and mounted it as shown. This is topped off with a 76 oz-in NEMA-17 stepper motor to power the cutting mechanism. The video listed in Resources demonstrates the linkage between the motor and the cutter. From the upgrade wish list, I’ve addressed two items: a wire cutter and reel holder have been added. The other two items — counting wires and easily changing the length
FIGURE 4. Close-up of wire feed path.
FIGURE 5. Completed Actobotics assembly.
measured — would have to be handled by the controller.
ELECTRONICS My skills and collections of spare parts have grown a bit since I made the original controller for the Meccanobased wire measuring machine. It consisted of a Microchip PIC16F84A connected to a DS2003 Darlington driver which, in turn, powered the four coils of the unipolar stepper SERVO 04.2015
33
motor I salvaged from an old IBM PC floppy disk drive. This is powered by an IBM PC power supply (visible in Figure 2) which provided the five volts for the processor and the 12 volts for the stepper motor. The only user interface is the pushbutton, which triggers a specified number of steps in the motor and then stops. To achieve my design goals, the new controller would need a display and several buttons to change the operating parameters. I would also need to control two bipolar stepper motors. Since the activation sequence of the coils is a little more complicated in bipolar vs. unipolar steppers, I would be using dedicated controllers. Finally, I would need a microprocessor to manage all this. The final lineup of major components consists of: • Generic HD44780-based one-line/16-character LCD display • Two EasyDriver 4.4 bipolar stepper controllers • PIC18F26K22 processor • Assorted pushbuttons, terminals, and other
electronic components • Solderable prototype board • Regulated 12V 2A wall adapter The schematic is shown in Figure 6, and the resulting assembly is shown in Figure 7. There is no particular magic or rocket science in this control board. Connecting an LCD display to a controller has been described in other Nuts & Volts and SERVO articles, and there is a lot of additional information on the Internet. The EasyDriver boards are a pleasure to use because they take all the mystery out of using stepper motors. You connect a power supply, connect the motor windings to the correct terminals, and then connect three signals to your processor. These signals are: Enable, Step, and Direction. Additionally, the EasyDriver boards have a step-down regulator, so you can use a single power supply for both motors and control electronics. There is an option to set this to either 5V or 3.3V, depending on the type of
FIGURE 6. Schematic for controller.
34
SERVO 04.2015
RESOURCES Actobotics Hardware: www.servocity.com 76 and 40 oz-in NEMA 17 Stepper Motors: eBay Rubber Drive Wheel: www.sdp-si.com Part #A 7T 5-UR07525 EasyDriver 4.4: www.allelectronics.com Part #SMD-67 Info: www.schmalzhaus.com/EasyDriver Wire Stripper/Cutter: www.mouser.com Part #578-100X
the controller you can half, quarter, or eighth step for each step signal delivered to the controller, resulting in a possible resolution of 1,600 steps per revolution, or .225 degrees per step. Some controllers even allow 16th steps. When selecting micro-stepping, you need to adjust the timing between steps to get maximum power and smoothness. I’ve used micro-stepping in other projects, however, I stayed with the regular full step for this one since that provided enough precision for my machine.
Generic HD44780 LCD: Junk box Other Electronic Components: Parts on hand Amazing Goop: eclecticproducts.com CCS PIC C Compiler: www.ccsinfo.com Meccano Wire Measuring Video: http://youtu.be/ykguK0ylfCM Actobotics Wire Cutting Video: http://youtu.be/qVjijZRdiTA Author Website: www.jgscraft.com
controller you’re using. I selected the default 5V since I need that to drive the LCD. I selected the PIC18F26K22 because that’s what I’ve been using lately. I don’t take advantage of any of the special features or peripherals. Due to the popularity of do-it-yourself 3D printers, CNC routers and engravers, egg printers, and other motioncontrol projects, there are several stepper motor control boards available from Pololu, SparkFun, and other suppliers. I selected the EasyDriver because it featured the step-down regulator, supported micro-stepping, and was in stock at a vendor where I was buying some other parts. Micro-stepping is a nice feature that can give you very precise control of a stepper motor. Most stepper motors have 200 steps per revolution, or a resolution of 1.8 degrees per step. By setting the micro-stepping jumpers on
SOFTWARE Circuit design and software testing was done on a solderless prototype board to be sure I had the right connections, and to test some basic software routines. The initial software tests consisted of sending a sequence of STEP signals to the EasyDriver. Each stepper motor has its own preferred timing for optimum operation, so I needed to experiment. If you send the STEP signals too fast, the motor can’t keep up and stalls. Send them too slowly, and the motion is not very smooth. If you look at the code, you’ll see each motor has different timing to get a smooth motion. I ultimately ended up with two subroutines for driving the motors: Cut() and Feed(). Cut() simply makes a complete revolution of the motor by issuing 200 step commands. I’ve included the code for this subroutine below so you can see how easy it is to control a stepper motor with the EasyDriver: void Cut( void ) { output_low( M2ENA ); output_low( M2DIR );
// energize stepper // set direction of // rotation
for( i=0; i<200; i++ ) { // one full revolution at full step
FIGURE 7. Finished control board.
SERVO 04.2015
35
output_high( M2STP ); delay_us( 1 ); output_low( M2STP ); delay_us( 1500 );
// // // // // //
send step pulse length of step pulse end of step pulse allow time for motor to move
} output_high( M2ENA ); // de-energize motor since we don’t need // to actively hold the position. }
Feed() consists of three parts. There is a speedup, run, and slowdown. The purpose behind this is to avoid jerking on the wire spool too much. When you examine the code, you’ll see that for the speedup portions the initial time between steps is 1,625 microseconds (µs); this narrows to the ideal 1,200 µs in a loop. This speedup consumes one inch of wire. The corresponding slowdown works in reverse and also consumes one inch of wire. The run section accepts a parameter — the value of which is the number of 5ths of an inch (0.2”) to feed. If the run parameter is set to zero, the minimum length of wire that can be cut is two inches. A third subroutine is Settings() which sets up the operating parameters. Five pushbuttons are used in
36
SERVO 04.2015
conjunction with the LCD to display, change, and save various parameters. I’ve used this arrangement on many other projects, and it can be used for complex menus with several levels and many items. For this project, we have only two settings: quantity and length. During menu operations, the five buttons are labeled: Up, Down, Decrease, Increase, and OK/Save. Up/Down is used to scroll through menu items; Decrease/Increase is used to change their value. The buttons are usually arranged in a cross pattern with the Save button in the center. I didn’t have room for that on my board, so they’re stretched out in a line. The OK/Set button is used to enter and exit the menu. When not in menu mode, the buttons have dedicated functions. They are: Run, which feeds and cuts the number of wires set up in the menu; Feed, which feeds a single length; Cut, which performs a single cut; and Stop, which interrupts the program started by pressing Run. Please see the source code available at the article link for complete details and comments. This program was written for the CCS PIC C compiler, however, it should be easy to convert to other flavors of C and BASIC.
OPERATION AND CONCLUSION The controller displays the saved settings when it turns on as you can see in Figure 7, which shows that it is ready to cut 25 pieces of wire, each five inches long. Pressing the RUN button will start this process. Figure 1 shows the completed machine, and you can see it in operation at http://youtu.be/qVjijZRdiTA. While testing and recording, I found it so entertaining — and even mesmerizing — that I quickly accumulated a year’s supply of cut lead wires. Now, I face the dreary task of stripping insulation from each end of the wires. While I have my monkeys doing that, I’ll be trying to figure out how to add that function to this machine. This project accomplished two things: I now have a brand new, fully featured wire measuring and cutting machine, and I found a new construction set. I’m very pleased with the strength and overall utility of the Actobotics components. The only non-Actobotics parts in the new machine are the rubber feed roller, a spring, the bearing idler wheel, and the wire cutter. While the two motors are not Actobotics parts, the construction system does provide mountings for
the stock NEMA-sized stepper motors. Based on my experience with this project and the desire to eliminate other boring tasks, I’ve already started planning my next Actobotics-based practical gadget. SV
A Practical Adhesive When I glue something, I usually want it to stay put — until I want to make a change. Then, I'm stuck. That's the advantage of Erector sets: You have nuts and bolts and can assemble, disassemble, and reassemble at will. With glue, your decisions are usually final. Several years ago, I discovered Household Goop, which has become my primary workshop adhesive. The glue — now called Amazing Goop — is an air-drying clear compound that dries to a tough rubbery consistency. Since it is air-drying, you can't glue two non-porous materials together face to face. You can, however, apply a filet around objects that need to be attached to each other. The glue will stick to almost any clean surface. It doesn't work well on soft or oily plastics such as ABS and polyethylene. It does adhere well to acrylic and other hard plastics. Due to its flexibility, it's good for gluing fabrics and leather. One of the key advantages of this adhesive for me is that it is removable. Its rubbery nature when dry is such that it holds together and can be stretched. This lets me pull it out of a seam or filet I laid down a week or a year ago.
SERVO 04.2015
37
The Robot You've Always Wanted Part 4: Controlling the Arms and Turret By John Blankenship and Samuel Mishal
Last month's article demonstrated some simple techniques for enabling our life-sized Arlo robot (Figure 1) to navigate from room to room throughout your home. This month, you'll see how Arlo's arms and turret can be controlled through a second instance of RobotBASIC running in the background. The principles and techniques discussed here can be utilized with other languages and robots. he home navigation behavior discussed last month was possible primarily because of a compass and an array of PING))) ultrasonic sensors controlled by the RobotBASIC Robot Operating System (RROS). Arlo has many additional sensors, though. He has three line sensors under the base and eight sensors on his hands. There are two cameras on the Window’s 8 tablet and one more on the turret mounted just under the robot’s head. The turret also holds a beacon detector and two ranging sensors: one IR and one ultrasonic. The turret’s many sensors add numerous options for those wanting to improve the navigational capabilities discussed last month. The turret’s two motors, as well as the six motors powering each arm are controlled by a Pololu 24-channel Mini Maestro Servomotor Controller as shown in Figure 2. This controller was chosen because of its ability to
T 38
SERVO 04.2015
Figure 1.
Figure 2.
Post comments on this section and find any associated files and/or downloads at www.servomagazine.com/index.php/magazine/article/april2015_Blankenship.
Figure 3.
interface with both analog and digital sensors in Port # Function Port # Function addition to controlling motors. Both of the turret0 IR sensor 12 Right wrist left/right mounted ranging sensors provide an analog output, 1 Ultrasonic sensor 13 Right hand open/close and each of the robot’s grippers has four digital 2 Left shoulder rotate 14 Turret up/down sensors. 3 Left shoulder up/down 15 Turret left/right These 14 motors and 10 sensors make up a fairly complex system of their own. For that reason, 4 Left elbow up/down 16 L-Hand right finger a full-featured interface is needed to make it easier 5 Left wrist up/down 17 R-Hand right finger to utilize the new capabilities. Interfaces like this can 6 Left wrist left/right 18 L-Hand left finger be a valuable addition to many robotic projects, so it 7 Left open/close 19 L-Hand across will be explored in some detail. 8 Right shoulder rotate 20 L-Hand switch RobotBASIC interfaces with the Pololu servo 9 Right shoulder up/down 21 R-Hand switch controller using a serial port. Interfacing with the 10 Right elbow up/down 22 R-Hand left finger RROS also requires a serial port, which presents a 11 Right wrist up/down 23 R-Hand across problem because RobotBASIC can only handle one serial port at a time. Of course, the software could switch between the two ports, but such switching can servo controller. You should install their servo controller take hundreds of milliseconds, so a faster method must Windows driver and software. It allows you to preset be used. your preferences for speeds, pulse limits, etc., for each One solution is to let a second copy of RobotBASIC motor. Arlo’s servomotors run at full speed, but with an run in the background to handle all aspects of the Pololu acceleration of 3 for smooth starts and stops. Once controller. Since the second copy runs in parallel with the everything is set up, RobotBASIC can control the motors primary RobotBASIC program, each can have their own over a USB cable using a virtual serial port. serial port. In addition, it is possible to assign timeYou should also set up the script shown in Figure 4. sensitive tasks to the background program while the main When it runs on the servo controller, it transfers the program tends to other things. sensor data as three bytes: one for the IR; one for the Figure 3 shows the port assignments for the Pololu ultrasonic; and one for the grippers where each bit SUB ReadSensors # wait for all servos to stop moving BEGIN GET_MOVING_STATE WHILE REPEAT # read IR analog range data 0 GET_POSITION 3 DIVIDE 0 GET_POSITION 3 DIVIDE 0 PEEK 1 PEEK GREATER_THAN IF SWAP ENDIF DROP 0 GET_POSITION 3 DIVIDE 0 PEEK 1 PEEK GREATER_THAN IF SWAP ENDIF DROP #read analog ultrasonic data 1 GET_POSITION 1 GET_POSITION 1 PEEK 2 PEEK LESS_THAN IF SWAP ENDIF DROP 1 GET_POSITION 3 divide 1 PEEK 2 PEEK LESS_THAN IF SWAP ENDIF DROP #read 8 gripper sensors 0 #bit byte for gripper sensors # read each gripper sensor and encode status # into byte
16 GET_POSITION 512 LESS_THAN IF 1 PLUS ENDIF 17 GET_POSITION 512 LESS_THAN IF 2 PLUS ENDIF 18 GET_POSITION 512 LESS_THAN IF 4 PLUS ENDIF 19 GET_POSITION 512 LESS_THAN IF 8 PLUS ENDIF 20 GET_POSITION 512 LESS_THAN IF 16 PLUS ENDIF 21 GET_POSITION 512 LESS_THAN IF 32 PLUS ENDIF 22 GET_POSITION 512 LESS_THAN IF 64 PLUS ENDIF 23 GET_POSITION 512 LESS_THAN IF 128 PLUS ENDIF # stack now contains three bytes # (2 analog and 1 8-bit digital) # add two synchronizing bytes 2 1 # send all bytes BEGIN DEPTH WHILE SERIAL_SEND_BYTE REPEAT QUIT
Figure 4.
SERVO 04.2015
39
available over the USB interface unless the serial IN and OUT pins of the controller are tied together. Using the interface this way also causes an extra byte to be transferred (although this byte is not mentioned in the 19 documentation). 20 Furthermore, on rare 21 occasions, the interface can get out of sync. This is easily corrected by having the receiving 22, 23, 24 program always watch for the byte values 1 and 2. Once seen, the next three bytes will be the desired data. Since a separate instance of RobotBASIC will handle everything associated with the Pololu controller, we need a way for the main program to communicate with the background program. Figure 5 shows the structure of a 25 element array that will be used for this communication. The array data will be passed back and forth between the two programs as a disk file (RobotBASIC has easy-to-use commands for reading and writing arrays as disk files). Let’s look at the array to see how it can Figure 6. control the motors and transfer sensor data. Communicating with the array is very efficient, represents one of the gripper sensors. A general with a total overhead of about six milliseconds. When the description of the script follows, but to fully understand array is passed to the background program, it will it, refer to Pololu’s documentation for the controller — compare the positions stored in elements 0-13 and — if especially if you are not familiar with stack-based any motors are not already in that position — commands languages. will be sent to the servo controller to move those motors. The beginning of the script waits for all the servos to When the motors have stopped moving, the sensor data stop moving. As you will see, this will be read from the controller makes many operations much easier. utilizing the script from Figure 4 and Figure 7. Next, the script obtains and scales the stored in elements 14-16 of the array. data for the IR and ultrasonic rangers. The data passed for the motor In both cases, several readings are positions should be the values shown obtained, but only the longest in the servo controller’s Window’s distance is used. This proved to make software mentioned earlier. the range data more reliable. The Elements 18-24 are commands to gripper sensors are read and encoded be executed by the background into a single byt, with each bit program when the value of the representing the state of one of the element is non-zero. Let’s look first at eight sensors. element 18. Depending on the value, Two additional bytes (values of 1 the turret will scan horizontally or and 2) are added to the stack to help vertically, taking seven readings (as ensure synchronization before all five shown in Figure 6) using the IR bytes are sent to RobotBASIC. Due to and/or ultrasonic sensors. Each Pololu’s design, these bytes are not reading will be compared to the limit Array Elem. 0 1 2 3 4 5 6 7 8 9 10 11 12 13
40
Parameter Left shoulder left/right Left shoulder up/down Left elbow up/down Left wrist up/down Left wrist left/right Left hand open/close Right shoulder left/right Right shoulder up/down Right elbow up/down Right wrist up/down Right wrist left/right Right hand open/close Turret up/down Turret left/right
SERVO 04.2015
Array Elem. 14 15 16 17 18
Parameter Gripper data Ultrasonic range in inches IR range in inches Figure 5. Limit (for scans) REQUEST Scan Bit 0: a 1 requests IR scan Bit 2: a 1 requests ultrasonic scan Bit 3: 0-Horz, 1-Vert REQUEST to close hand REQUEST Look L/R for object near hand REQUEST Hand forward until object found For above three REQUESTS, use 1 for Left hand and 2 for Right hand Reserved for user expansion
(one inch units) specified in element 17. If an object is detected within that range, a bit will be set in the answer data. If both IR and ultrasonic scans have been selected, then the bit will be true if either sensor detects an object within range. The answer data will be returned in the array element 18. Remember, appropriate programming can allow this scanning to take place in the background while the main program does other things. In order to understand the commands controlled by elements 19-21, we need to examine the gripper sensors as shown in Figure 7. Sensors 1, 2, and 3 are Pololu IR reflective sensors with a range of two inches (part #1132). Sensors 1 and 2 point outward from the gripperâ&#x20AC;&#x2122;s fingers when the hand is wide open. They turn inward as the gripper closes. Software can monitor these sensors to center the hand in front of an object to be picked up. Sensor 3 in Figure 7 scans across the opening between the fingers. Once the gripper is centered, the arm can be moved forward until the object to be picked up is detected by sensor 3. The hand can then be closed until the snap-action switch (sensor 4) closes, indicating that grip pressure has been obtained. At that point, the pulse width of the open/close servomotor could be used as an indication of the objectâ&#x20AC;&#x2122;s diameter. If the array element 19 is a 1 or 2, then the left or
right hand will be closed until the switch closes; the final position of the gripper will be stored in either element 5 (the left hand) or element 11 (the right hand). Elements 20-24 are provided for future commands to help the user control the arm. For example, element 20 could request the hand to move slightly left and right trying to find an object with its forward-facing sensors. If an object is found, the hand should center itself with the object. If no object is found, the hand should return to its original position and a zero should be placed in element 20. As another example, element 21 could be used to request that the hand move forward for a short distance. If an object is detected with sensor 3 (Figure 7), then the arm will move slightly forward and stop, ideally placing the object in the grasp area. If no object is detected, the hand should return to the original position and a zero should be placed in element 21. Having commands like these (and others using elements 22, 23, and 24) should make it much easier to write programs to manipulate Arloâ&#x20AC;&#x2122;s arms and grippers. When the main program wants the background program to perform any of these actions, it simply modifies the array elements appropriately and saves the array under the name ProcessNow. When the background program sees this file, it will perform the
Main: gosub Init while TRUE repeat until FileExists ("ProcessNow") gosub Process FileRename("ProcessNow","DataReady") wend end
SerOut char(0x84),char(i+2),char(4*P[i] &0x7f),char( (4*P[i]>>7)&0x7f) Last[i] = P[i] // remember "last" position endif next Figure 8. gosub ReadSensors return
Process: mRead P,"ProcessNow" // read the file data into the array P[] gosub MoveServos if P[18] then gosub Scan if P[19] = 1 then gosub CloseLeftHand if P[19] = 2 then gosub CloseRightHand if P[20] then gosub LookLR if P[21] then gosub ForwardUntil mWrite P,"ProcessNow" // write the Array data to the file return
CloseLeftHand: for ih = Last[5] to ClosedLeft step 25 // close hand till switch closes SerOut char(0x84),char(5+2),char(4*ih&0x7f),char((4*ih> >7)&0x7f) gosub ReadSensors if P[14]&LHswitch then break next Last[5]=it // remember "last"position P[5] = it // and update current position P[19]=0 // zero out request to move hand Return
MoveServos: for i = 0 to 13 if P[i]!=Last[i] // if servo position has changed // move servo (see Pololu documentation)
// portions omitted due to space limitations // full program available in download
SERVO 04.2015
41
requested actions and update the file with the current servo positions and turret data before renaming the file DataReady. The main program can perform other actions if desired, while it watches to see if the file DataReady exists. When it does, the file can be read back into the array so that the returned information can be used to influence the robot’s behavior. Figure 8 shows a small portion of the remote program to give you an idea of how the program works. Space does not permit a complete listing here, but a zip file containing all the programs discussed, as well as the supporting library routines can be downloaded from the article link. Readers wanting even more information on building their own Arlo should watch for the book, Arlo: The Robot You’ve Always Wanted, available this summer from Amazon.com. main: gosub InitAll while true //note: comments show examples of verbal //commands gosub CheckForVoiceCommand if InString(VoiceIn, "PROGRAM") // end program break elseif Instring(VoiceIn,"ARLO") // Arlo call Say("Yes john what can I do for you", happy) elseif Instring(VoiceIn, "GOOD") // that was good call Say("I am glad you liked it", happy) elseif InString(VoiceIn, "DEMO") //Demo your emotions, do a face demo gosub DemoFace elseif Instring(VoiceIn, "FORWARD") //move forward, forward please gosub MoveForward elseif Instring(VoiceIn, "RIGHT") //turn to your right, turn right gosub TurnRight elseif Instring(VoiceIn, "AGAIN") or Instring(VoiceIn,"REPEAT") gosub DoAgain //do that again, repeat please elseif Instring(VoiceIn, "KITCHEN") //go to the kitchen,move to kitchen Dest=Kitchen // As discussed in Part 3 of this series gosub "From"+ToString(Cur)+"to"+ToString(Dest) elseif Instring(VoiceIn, "WHO") //who are you gosub Greeting elseif Instring(VoiceIn,"WAVE") gosub DoWave //wave to me, please wave endif
42
SERVO 04.2015
Figure 9 shows a small portion of a large main program that demonstrates how easily Arlo can be controlled. The full version of this program is included in the article download. The program makes use of Window’s ability to talk and recognize speech as discussed in an article in the March 2014 issue of SERVO. You can see Arlo performing these actions by watching the YouTube video titled Arlo: The Robot You’ve Always Wanted at http://youtu.be/ohpLRN-y2wY. As you can see, the main program in Figure 9 watches for key words in voice commands to carry out the requests. Using only key words instead of complete phrases can make the robot appear to be more intelligent. You can ask Arlo to move forward, for example, by saying please move forward, or go forward now, or just the word forward by itself. Notice also that you can use the Say function to wend call Say("Program will end now. Goodbye", normal) end MoveForward: rForward 30 LastMove = "Forward" //allows other commands to //know what happened last return Greeting: call Say("My name is Arlo",normal) call Say("I am the robot you have always wanted",happy) LastMove = "Who" // allows REPEAT to work with this command return TurnRight: rTurn 40 LastMove = "Right" return DoWave: // position arm for wave P[6] = RightArmSafe // rotate arm so save to raise it gosub MoveServos for ti=3 to 5 P[ti+4]=ArmData[6,ti] // setup new arm position next // close hand P[11] = RightHandClosed // request closing action gosub MoveServos // perform the actual wave for ti= 1 to 3 // wave 3 times P[10] = WristForWave gosub MoveServos
command Arlo to say text expressions with a specified emotion (the mouth automatically synchronizes with the speech). Watch the video mentioned above to better appreciate these features. The Say function is provided in the program download. It utilizes a library routine that also allows access to the Window’s 8 Tablet’s sensors. Many actions can be provided with standard RobotBASIC commands (moving the robot forward, for example, with rForward). The arms and turret are moved by setting servo position values in an array, calling MoveServos to send that array to the background program and then waiting for it to be processed. Advanced actions can be created by those that want them. For example, telling Arlo to GUARD THE HOUSE might invoke a behavior where the robot periodically navigates through the home taking pictures and sending them to you (RobotBASIC has commands for sending P[10]+=440 gosub MoveServos next gosub DropArm // return to normal position call Say("How was that",normal) return
email and communicating over the Internet using both TCP and UDP protocols). Arlo can also be programmed for completely autonomous behavior. For example, he can monitor his own battery condition and could be programmed to use his navigation skills to find a charging station and plug himself in. With Arlo’s sensory capabilities, he can perform nearly anything a hobbyist or student might want him to do. He truly is the robot you’ve always wanted. SV
gosub Greeting elseif LastMove = "Scan" gosub DoScan endif return
MoveServos: mWrite P,"DataReady" FileRename("DataReady","ProcessNow") // tell background to process repeat until FileExists ("DataReady") // wait for background to finish mRead P,"DataReady" return
DemoFace: call Say("okay",normal) \delay 100 call Say("I can do that for you",happy) call Say("This demo shows how to make me say what you want",normal)
DoMore: if LastMove = "Right" rTurn 10 elseif LastMove = "Left" rTurn -10 elseif LastMove = "Forward" rForward 10 elseif LastMove = "Backward" rForward -10 endif return DoAgain: // allows specific commands to be repeated if LastMove = "Right" gosub TurnRight elseif LastMove = "Left" gosub TurnLeft elseif LastMove = "Forward" gosub MoveForward elseif LastMove = "Backward" gosub MoveBackward elseif LastMove = "Wave" gosub DoWave elseif LastMove = "Who"
for horz=0 to -100 gosub DrawFace next call Say("I can be angry",angry) \delay 2000 horz=0 // controls horizontal position of eyes call Say("And I can be Happy",happy) \delay 2000 call Say("Or sad", sad)\delay 2000 call Say("Even surprised", normal) call Say("",surprise)\delay 2000 call Say("Pretty good huh", happy)\delay 2000 horz=100 delay 1000 horz=0
Figure 9.
return
SERVO 04.2015
43
M is for the Robot that ARM Made By Dave Prochnow
It's got two wheels and a blue printed circuit board (PCB). Offhand, you might think you're looking at a new Arduino powered robot. That initial assumption would be wrong, however, and oddly enough, that error is a good thing. elcome to the new “mbed” world of ARM 32-bit MCU, edge-detecting sensors, piezo buzzer, LEDs, embedded robotics. Whoa! Stop right and buttons. Most of these valuable extras are dangerously there. If you’re a recent arrival to this soldered to the underside of mBot. Don’t get me wrong, whole Internet of Things (IoT) notion of a completely connected world, then you might not be familiar with mbed (see What is mbed?). In fact, even as an IoT novice, you might scratch your head when studying this new robotic platform from Outrageous Circuits called mBot. First of all, mBot stands for “mbed (ro)Bot.” Not to be confused with the Mississauga Board of Trade (MBOT) which is located in Ontario, Canada. Sold as a low parts count kit, mBot (as seen in Figure 1) can be up and running in just a matter of minutes. While you might think that mBot bears a striking resemblance to many other two-wheeled bots (like the Magician chassis from DAGU Hi-Tech Electronic Robotics), there are some impressive Figure 1. A low parts count makes mBot readily accessible to every robot builder. extras that are included with mBot: a
W
44
SERVO 04.2015
Post comments on this article at ww.servomagazine.com /index.php/magazine/article/ april2015_Prochnow.
Figure 2. A piezo buzzer is located on the underside of mBot.
these PCB placements are only “dangerous” due to being exposed to debris as mBot goes scooting along. And scoot it does — two powerful geared motors drive two 2-5/8 inch diameter plastic wheels along at a screaming 20+ inches per second. This ARM-powered robot does lack connectivity (a fundamental pillar in the mbed platform), there isn’t any visible degree of machine-to-machine security (another one of those pillars), nor does this design seem to be very energy conscience (e.g., 7.4V needed for operation). So, where is Waldo mbed hiding? Although not exactly “right under our nose,” the answer lies right under mBot. Beginning our tour of mBot’s underside, we stop at the piezo buzzer. In Figure 2, you can see that this buzzer is soldered directly under the rear drive motors. This is not a cheap crummy piezo “beeper.” This buzzer can wake the dead. In fact, during the out-of-the-box operation, the builtin firmware’s programmed modulating scream (uttered as mBot avoids falling off a table) makes it difficult to talk to someone else in the same room. You’ve been warned. Ahh, now we’re getting somewhere. Our next stop in this underside tour is the real deal: the 32-bit MCU. Okay, knowledgeable readers are aware that Outrageous Circuits is a division of GHI Electronics, LLC, and GHI Electronics is a
iParts List • mBot $30 (outrageouscircuits.com/shop) • (2) Polymer Lithium-Ion Batteries - 850 mAh; $9.95 each (PRT-00341; sparkfun.com) • (2) JST Right Angle Connectors - Through-Hole Two-Pin; $0.95 each (PRT-09749; sparkfun.com) • Scrap Wire
Figure 3. An NXP LPC11U2X ARM microcontroller controls mBot.
significant contributor to Fast and Easy (FEZ) ARM CortexM4 MCU development. So, it should come as no stretch of the imagination that mBot sports an NXP LPC11U2X MCU. Located just to the right of the mBot skid ball in Figure 3, this MCU is where all of the mbed excitement is happening. A powerful 32-bit ARM Cortex-M0 MCU, the LPC11U2X operates at 48 MHz with 8K RAM and 32K Flash memory. Along with a built-in USB 2.0 interface, low power operation, SPI, and I2C, this particular MCU is also mbed compliant. What does that mean? Well, for one, you can program this robot via an online
What is mbed? Built as a platform concept for supporting embedded 32-bit ARM Cortex M-based microcontrollers (MCUs), mbed is trying to ensure that all future IoT devices will be playing from the same sheet of music. In the mbed OS mindset, this compatibility begins with energy conservation, and extends through system-level connectivity and security. Providing a C++ application development framework, mbed provides support for Bluetooth Low Energy, cellular, Ethernet, Zigbee, Wi-Fi, machine-to-machine device management protocol, and end-to-end IP security. Fielding a series of alpha and beta distributions throughout 2015, mbed is looking towards October 2015 for the release of mbed OS 3.0. You can learn more about mbed at mbed.org. If you'd like to get your feet wet with building mbed-powered devices, there is a "cookbook" wiki of instructions and tutorials at developer.mbed.org/cookbook.
SERVO 04.2015
45
4. Delete the firmware file (e.g., firmware.bin) from this mBot drive. 5. Drag and drop your newly programmed mBot file (downloaded from the online mbed OS and named firmware.bin) into the mBot drive. 6. Disconnect/dismount the mBod drive and reset the robot. Your new program will now run on mBot. So, what can you control on mBot? Plenty! There are three buttons, four LEDs, and two edge-detection reflector sensors. Figure 4 shows one of these sensors. In the stock mBot firmware, these sensors are used for detecting the edge of a table. Once detected, mBot wails through its piezo buzzer, flashes Figure 4. There are two edge-detecting reflector sensors on the front underside corners of mBot. the topside red LEDs, and backs up. mBot backs up as fast as it drives, too. Web-based integrated development environment (IDE). You’ve been warned again. Therefore, any computer with a browser and Internet Returning to the top of the mBot PCB, there are several connection can write C++ programs for mBot. Furthermore, solder pads along the lefthand side that provide user access you don’t have to worry about compilers, installers, and to the I2C and SPI ports of the NXP LPC11U2X MCU. Also shown in Figure 5 is a separate set of pads for connecting toolchains — just log in and begin coding. to the mBot power supply. It is this power connection that An even better facet of being an mbed compliant MCU we will deal with next. is that mBot can be programmed or Flashed via a simple In order to operate the stock mBot, you will need two USB-based drag-and-drop operation. Here’s how it works: 3.7V 14500 batteries. While these batteries are sized similar to more conventional AA batteries, mBot requires 7.4V at 1. Plug mBot into your computer. ~ 900 mAh for proper operation. The culprits for this power 2. Hold button BTN1 down while pressing and requirement are the two geared motors and not the MCU. releasing the RESET button. According to Outrageous Circuits, 14500 batteries (and 3. A drive named CRP_DISABLED will appear on your a charger) for mBot can be purchased from Amazon. If you desktop. don’t want to purchase a specialized battery and charger combination just for mBot, there is an alternative power supply that can be easily swapped for the 14500 batteries. Many robot builders will already have a suitable battery replacement on hand — 3.7V @ 850 mAh polymer lithium-ion batteries from SparkFun Electronics, for example. If, on the other hand, you don’t have these types of batteries, then Figure 5. Both I2C and SPI ports are available for connection to the onboard ARM microcontroller.
46
SERVO 04.2015
you might try substituting a 7.4V RC battery pack from a remote controlled truck or airplane model. Either battery replacement should work — just watch the current output and keep it around 900 mAh. After you remove the soldered 14500 battery pack from mBot, you will need to connect your two substitute 3.7V batteries in series with each other. (Note: If you’re using a 7.4V RC battery pack, you can skip this step). Use Figure 6 as a guide for assembling two JST connectors together in series. Just remember to solder one JST positive pin to the other JST connector’s negative pin. Then, use the remaining positive and negative pins for connection to mBot in the next step. Figure 6. Remove the 3.7V 14500 battery holder and replace it with JST connectors. Solder the remaining positive wire from the serialized JST connectors to the battery pad on mBot using Figure 7 as your guide. The other negative wire from the pad. If you are using a 7.4V RC battery pack, connect the combined JST series connector is soldered to the mBot GND pack’s positive lead to the mBot battery pad and the pack’s
Ahoy, PowerMate If you've ever wondered about the output from a USB power source, then PowerMate ($15) from Outrageous Circuits is the tool for you. No more grabbing your multimeter to confirm the voltage or current being spit out from a faulty wall wart. Just let PowerMate be your middle man. This nifty tool is plugged in between your device and your power source. Then, just press either button BTN1 for voltage or button BTN2 for current, and toggle the readout on the LCD.
PowerMate from Outrageous Circuits is a valuable tool for visually monitoring the current and voltage from any USB power supply.
Figure 7. The new JST connectors are soldered to the mBot power port (i.e., the battery and GND pads).
SERVO 04.2015
47
Here’s an undocumented mBot feature: Press button BTN1 to turn mBot OFF. You use the RESET button to then turn mBot ON. Also, make sure you have the mBot wheels safely raised off the surface of the table before you connect your batteries. After you’ve snapped the batteries into the JST connectors and the mBot wheels are spinning, then you can set your new mbed-powered robot down on the table. A large round table works best for mBot. As shown in Figure 8, the edge detection and wheel drive reversal by mBot can be a bit hair-raising. mBot is affordable, programmable, and downright fun. Likewise, there’s plenty of opportunities for experimentation with mBot. Aside from all of the little goodies hiding inside the ARM MCU Figure 8. Watch out! The two edge-detecting reflector sensors do a good job of (e.g., USBMouse, USBKeyboard, deep keeping mBot on a table and not crashing onto the floor. sleep mode), mBot comes with two Melamine medium density fibreboard negative lead to the GND pad on the mBot. (MDF) encoder wheels. These wheels might be suitable for A warning here for 7.4V RC battery pack users: Don’t providing quadrature encoder motion control for mBot. connect the pack directly to mBot. Rather, use a suitable connector for your battery pack for soldering onto the Looks like it’s time to go back and look at the robot. This precaution will enable you to recharge your “dangerous” underside of mBot for some encoder battery pack. mounting holes. Yup, there’s two there! SV
48
SERVO 04.2015
Basics of Soldering 3 Part
By Bob Wettermann and Nick Brucks
Post comments on this article at www.servomagazine.com /index.php/magazine/article/april2015_Wettermann.
Surface-Mount Technology (SMT) parts are by far more common than the through-hole component mounting style for today’s printed circuit boards (PCBs). Open up any electrical device around your house (ideally one you don't care about too much) and you'll notice almost every component lies flat on the board rather than having a lead run through the PCB. This style of PCB mounting allows SMT style components to be placed very quickly on to PCBs, while taking up much less space than their through-hole counterparts. This makes them very desirable for modern electronics. ypically, SMTs are harder to hand solder than through-hole parts. Because of this, most industrial SMT soldering is done by machines. However, knowing how to solder SMTs by hand is a valuable skill if your project has strict space requirements or in the case where you need to rework or repair a machinemade project manually.
T
Figure 1. What you'll need.
50
SERVO 04.2015
Before we get started, here’s what you will need for this installment: • • • • • • • •
Soldering iron with small chisel tip Wire solder Solder flux Isopropyl alcohol and tissues Acid brush Solder wick Printed circuit board Tweezers
As described in previous parts, remember to take the necessary ESD and safety precautions to avoid any potential hazards to you or to the components. Always assume the soldering iron tip is hot, and make sure to wash your hands after soldering — especially if you’re using tin-lead solder. It is also always a good idea to make sure that you are properly grounded (see Part I of this series) to avoid any ESD damage. The first type of SMT we’re going to talk about are passive component packages as are typical of resistors and capacitors. These are usually flat rectangular chips with
Roboticists need a plethora of skills to create and construct their automatons. Knowing how to solder is a major part of moving from simple kits into the realm of advanced circuits and chassis.
Figure 2. Two SMT resistors (dime is for scale).
metallization typically covering five sides of the rectangular end, which will be soldered, The main challenge in soldering these component body style pieces in place is the same thing that makes them so useful in designing electronics: they’re small! Soldering these surface-mount components in place requires a steady hand and for you to take care with the amount of heat applied. The big thing you have to watch out for is if the part “tombstones.” Since flat chips usually are very light, as the liquid solder cools and contracts the part can flip up to one side. The final result is called a “tombstone” because the part will stick up vertically. Hold down the center of the SMT with tweezers when soldering to prevent this from happening. Let’s get started. 1. As always, clean the lands for soldering using isopropyl alcohol and wipe them dry with a kimwipe to ensure solderability. 2. Melt a small drop of solder onto the tip of your soldering iron. Use this to tack a little bit of solder to one of the leads on the PCB. 3. Once this solder has cooled, set the part down so that both leads are making contact with the pads. Apply liquid flux to one side of the part before soldering. At this point, make sure the part is properly aligned. After you solder down one side, the part cannot be moved without having to start over again. 4. Reflow the side that you applied solder to earlier. While holding down the center of the part with tweezers, place the soldering iron tip on the junction between the pad and lead to reflow the solder. Refer to Figure 3. 5. Apply flux to the other side. Place your solder wire on the point where the part meets the lead and use the soldering iron to apply heat. The small size of these parts means it will only take a little solder to
Figure 3. Soldering one side of a five-sided rectangular body SMT component.
do the trick. Be careful about holding heat on one side of the chip for too long; these components will conduct the heat from one side to the other easily, and begin to reflow the solder on the opposite side from where you’re applying heat. This will tombstone the part.
Figure 4. A fully soldered SMT resistor.
6. Clean and inspect the final result. While this is not a comprehensive list, some common errors for soldering this style of component include: • Component has nick or chip out that exposes the active elements. • Component is not in contact with one pad surface (tombstoned). SERVO 04.2015
51
Figure 5. Two SOT components.
• Component side overhang is more than 50% of the pad or width, or component end overhang of any amount. • Solder fillets come in contact with the top of the component body. Another SMT type you’re likely to see are transistors and diodes. These generally look like a small component with three (sometimes more) flat leads coming out from the component body: two on one side, and one on the other. It is important to remember that these parts have polarity and the arrangement of the leads helps to identify that. This is useful, since running current through these parts the wrong way will damage them. While you don’t have to worry about tombstoning like you do with flat chips, be careful about accidentally bending the leads of these parts. Bent leads tend to break and are a hassle to deal with when trying to solder down a part. The process for soldering these components in place is: 1. Clean the lands of the PCB with alcohol as before. 2. Tin the pads (described in Part 2) by flowing solder onto the pads and then removing it with a solder wick. Remove any excess residue by cleaning with isopropyl alcohol and an acid brush. 3. Set the part on the pads. Since there is only one way that the part will fit on the pads, you won’t need to line up any notches to ensure that you have the correct polarity. 4. Apply flux to one of the leads of the part and soldertack it down to hold the part in place. To tack the part down, place the soldering iron on top of the flat part of the lead and apply solder to the back of the curved side of the lead where it meets the pad. 5. Flux and solder the other two leads, using the same technique of laying the soldering iron on top of the
52
SERVO 04.2015
Figure 6. Tacking down one of the leads.
lead and applying solder to the back. Then, go back and solder the tacked-down lead. 6. As always, clean and inspect the final product. Some errors you might want to look out for include: • Component leads are more than 50% off of the pad surfaces. • Component lead’s toe overhang. • Excessive solder use. • No evidence of properly wetted fillet around the lead and the pad surface. • Solder fracture between the lead and solder fillet. The final type of components we’re going to look at are SOICs and QFPs. Even compared to the DIPs discussed in the through-hole soldering sequence (see Part 2 of the series), these parts have many leads. Because of this, they are both hard to solder and easy to damage. To avoid bent or broken leads, handle these parts gently. 7. As always, clean the lands and pads with the alcohol method. 8. Optionally, you can tin the lands to prepare for soldering. Before we continue, there are two ways that you can approach this task. You can apply liquid flux and solder to every pin one by one, which is an easier but tedious task. Alternatively, you can use a method called “drag soldering.” Drag soldering uses solder’s property of sticking to the pads to your advantage, but is more difficult to master. To drag solder, apply a small bead of solder to the tip of your soldering iron. Then, at an angle of about 30 degrees on the foot of the lead, pull the soldering iron down the row of pads at a moderate pace. Don’t apply too much pressure as you go or you will bend the leads. On the
Figure 7. Soldering one of the leads. Figure 8. A QFP-100; note the large number of leads.
last lead, sweep the iron away from the toe of the lead. If you decide not to use drag soldering, soldering these parts lead by lead is similar to how you solder diodes and transistors — just on a smaller scale. Apply flux, and then while heating the top of the lead, melt a little solder onto the back. 9. Whichever method you choose, place the part making sure you have the correct polarity as indicated by the notch on the chip. 10. Once you’re satisfied that the part is in the correct place, tack down two diagonally opposite leads to hold the part down. Lay the tip of the soldering iron on one of the leads and apply a little solder at the junction where the lead meets the lands to tack it down. 11. Drag solder or solder the pins one by one, depending on which method you chose earlier. Start with a side that doesn’t have a tacked lead to make sure the chip stays in place. Again, do not push too hard when doing this or the leads will bend. 12. Inspect the connection, and reflow or add solder as needed (make sure to reapply flux every time you do so). Remove any solder bridges between leads by reflowing the solder where you see this occurring. 13. Repeat this process for every side of the component. 14. Clean and inspect the final product. Several common errors here include: • Incorrect orientation. • Component is positioned whereas leads are more than 50% off of the pad surfaces. • Pad delaminated around the outside edge. • PCB overheated damage (blistering/ delamination).
Figure 9. Drag soldering a QFP-100.
While we didn’t have time to go over every type of SMT available, these procedures are applicable to other body styles beyond just the three discussed. Drag soldering in particular is a useful technique to master if you find yourself hand soldering a lot of many-leaded components, since running through 100-pin chips lead by lead can be quite tedious. Even if you don’t solder SMT parts on a regular basis, it is still always good to have at least some knowledge of how to solder them — just in case. In the final part of this tutorial, we will discuss the placement and soldering in place of advanced package types such as QFNs (leadless devices) and BGAs (area array devices). SV SERVO 04.2015
53
Extreme Motor Speed Control! MegaMoto GT Shield Our Highest Current motor control for Arduino™ 6 35A Continuous - 50A peak 6 7V-40V 6 H-bridge or Dual Half-bridge 6 Built-in Fan 6 Current sensor output 6 Over-temp and over-current protection
New The Hydra 6 6 6 6 6 6
7V - 28V Triple 6.5A/8.0A peak h-bridge Current/Temp limiting R/C inputs w/mixing Limit switches on one channel 2.0”” x 2.1” x .5”
Continued from page 17
Handheld Digital Multimeter The PRO-50A is a highly versatile, economically-priced DMM with a large 3-1/2 digit LCD backlit display for comfortable viewing. A key portion of the ARX STEM Video Curriculum centers on how to use this meter and some of its basic applications for robotics. The PRO-50A is housed in a protective rubber boot for extra drop-protection in the classroom environment. Its many functions include measuring voltage, resistance, amperage, capacitance, frequency, transistors, and temperature. One PRO-50A per four ARX robots is recommended. List price is $50. ARX Student Self-Study Package The package is also a turn-key 10-week STEM course using the ASURO robot where students learn basic electronics, mechatronics, and programming in the C language. The ARXSTSSP is a complete package for one selfstudy student. It includes everything needed to build a robot and follow the curriculum. List price is $780. For further information, please contact:
Big Bots! Big Motors! Big Power!
Global Specialties
Mobile Manipulator
The Vyper 6 120A+ Fwd/Rev 6 250A Peak!!! 6 8V - 42V 6 R/C input 6 Analog pot input 6 Supports 8 AWG wires! 6 Overload protected
MADE IN THE USA
6 Rugged Construction 6 2.85” x 2.25” x 1.75”
www.robotpower.com Phone: 360-515-0691 s sales@robotpower.com
54
SERVO 04.2015
R
obotnik — a Spanish company specializing in robot product development and robotics R&D services — has developed a new mobile manipulator called RB-1. RB-1 is a mobile manipulator designed with extensibility and
www.globalspecialties.com
If you have a new product that you would like us to run in our New Products section, please email a short description (300-500 words) and a photo of your product to: newproducts@servomagazine.com
modularity for research and application customization. The robot has been designed using a single type of the Korean manufacturer ROBOTIS’ actuators, corresponding with their Dynamixel PRO. The Dynamixel PRO servo actuators integrate a controller and servo amplifier inside the actuator housing, simplifying its interconnection to two supply wires and two additional wires for a communication bus. Personal CNC Mills The arm has an Shown below is an articulated humanoid anthropomorphic configuration of Shown here with robot leg, built by researchers at the optional stand 7DOF, plus 1DOF to elevate the torso and accessories. Drexel Autonomous System Lab (DASL) and one gripper. All actuators are with a Tormach PCNC 1100 milling attached directly to the element machine. DASL researcher Roy Gross holders with the exception of the estimates that somewhere between 300 second wrist axis which transmits its and 400 components for “HUBO+” has been machined on their PCNC 1100. torque by means of a pulley. This allows it to increase the payload, but at the same time increase the manipulability index. Regarding sensors, RB-1 mounts a Hokuyo URG-04LX-UG01 laser, a 2D laser range finder for navigation, PCNC 1100 Series 3 starting at: localization and gyro board, and a $8480 2DOF pan-tilt unit for environment (plus shipping) perception by means of a Microsoft Kinect/ASUS Xtion PRO Live RGBD www.tormach.com/servo sensor, to recognize objects in the environment, but also for navigation and localization purposes. Another advantage of RB-1 is that it has completely open source software (ROS), so everyone can contribute by uploading their own modules for development and programming. RB-1 is ideal for R&D applications, AAL (Ambient Assisted Living), indoor mobile manipulation, or remote handling, among others. Run motor controllers or servos with RB-1 has different configurations. AndyMark’s easy and affordable PWM And signal generator. sign The complete configuration of 13DOF has a price of 46.200€ • PWM PW Generation Standard servo range - 1000ms-2000ms (approx. $52); the version which has Arduino extended range - ~540ms-2300ms an arm of 6DOF is around 44.000€ Comfortable one-hand operation • Co (approx. $52). The mobile base • 9V Battery Operation (battery not included) platform can be ordered separately for 12.500€ (approx. $52). Visit AndyMark.com and view our wide selection of robot parts! For further information, please contact: for 5% off your next order Use coupon code
Thrifty Throttle Th
“SERVO5”
Robotnik
Website: www.robotnik.eu
Kokomo, Indiana • www.AndyMark.com • 877-868-4770 SERVO 04.2015
55
HelloSpoon
Have you ever seen a robot feeding a person? I've actually watched a number of robots trying to do this task, but was never satisfied with what I saw. Of course, there are already robots that are able to feed people with upper limb difficulties or with a palsy, but they are generally big, ugly, expensive, and not available for everybody. That’s something I set out to change. The goal was to create a robot that was portable, affordable, and very easy to reproduce by anyone with the desire to help another person feel independent again. Along the way, maybe I might just inspire people to learn more about robotics and programming. That’s how HelloSpoon was born (Figure 1).
56
SERVO 04.2015
Figure 1. A blue baby elephant robot. Bet you’ve never seen anything like HelloSpoon before.
Let me introduce myself. I’m a recently graduated Mechatronics Engineer from Mexico. My desire is to create affordable and fun robots with the goal of helping people in need. HelloSpoon brought my dream to life. HelloSpoon is a very unique, affordable, social robot, with the capability to feed children, the elderly, or anyone with upper limb movement restrictions, debilitating diseases, missing limbs, muscle control problems, or even temporary injury requiring immobilization of their arms. Post comments on this article at ww.servomagazine.com /index.php/magazine/article/april2015_Gonzalez.
A DIY Robot to Help People with Upper Limb Difficulties By Luis Samahi Garcia Gonzalez In this article, I’ll describe the basics of: 1. Building the 4DOF robotic arm 2. How to do the embedded programming 3. How to start creating apps that connect directly with this robot. Hopefully, you will understand more about this ambitious project, and maybe be inspired to build one yourself.
What Do I Need to Build My Own HelloSpoon Robot? All the basic components are easily obtained from your favorite suppliers (Figure 2). OpenCM-9.04: Open source controller developed by the Korean company, ROBOTIS. It uses a 32-bit ARM Cortex-M3 (STM32F103C8). It’s their first open source oriented product and you can find the schematics and all the info online. Dynamixel XL-320: Low cost smart actuator also developed by ROBOTIS. It uses the same communication protocol as its “older” brothers, and has the same features (position feedback, temperature, velocity adjustment, etc.). The new revision of the actuator includes a metal pinion (Figure 3) instead of a plastic one, which improves the durability of the actuator and actually makes the motions smoother. Li-Ion Battery with Charger: Small lithium-ion rechargeable battery. It includes a PCM to protect the battery from overcharge, discharge, and excessive current. The charger has an LED to let you know when the battery is completely charged (RED means charging; when it turns off, the charge is complete). BT-210 Bluetooth module: This device enables serial communication (UART) via Bluetooth. The plastic case protects the circuits, and a connector cable attaches the module directly to the OpenCM-9.04 board in your robot. These are the four main components behind HelloSpoon, and what provides the foundation on which to make the robot affordable. While also available from a number of suppliers, you
Figure 2. These are the main components behind HelloSpoon robot.
Figure 3. New metal pinion version (right) gives smoother motions in comparison with the plastic pinion version (left).
can go to www.hellospoonrobot.com to purchase any of these components individually, or get a complete kit with everything you need to build your own HelloSpoon robot.
Okay, I Have the Components. What’s Next? Figures 4, 5, and 6 show parts from the kit, and how SERVO 04.2015
57
Figures 4 and 5. From left to right, these are the steps to build HelloSpoonâ&#x20AC;&#x2122;s robotic trunk. Figure 7. There is where you attach the spoon, or you can download other parts to 3D print them.
Figure 6. This is how the robotic trunk should look when you finish.
Parts List: Dynamixel XL-320 OpenCM-9.04 BT-210, Bluetooth module Li-Ion battery 3.7V 1,300 mAh LB-040 Li-Ion battery charger set LBB-040
www.robotis-shop-en.com/?act=shop_en.goods_view&GS=1611&keyword=XL www.robotis-shop-en.com/?act=shop_en.goods_view&GS=2394&keyword=opencm www.robotis-shop-en.com/?act=shop_en.goods_view&GS=1484&keyword=bt www.robotis-shop-en.com/?act=shop_en.goods_view&GS=1608&keyword=battery www.robotis-shop-en.com/?act=shop_en.goods_view&GS=1609&keyword=battery%20charger
Videos: HelloSpoon Presentation 2014 How do children react to a robot like HelloSpoon? Is HelloSpoon able to help an elder in need? HelloSpoon Robot Dancing Test Other Resources: HelloSpoon Webpage Tumblr Blog YouTube Channel
58
SERVO 04.2015
www.youtube.com/watch?v=ZNsaZi97yXs www.youtube.com/watch?v=_4gjcYZBOdA www.youtube.com/watch?v=A3plItwTWG8 www.youtube.com/watch?v=N4W9AOp233o
http://hellospoonrobot.com http://hellospoonstories.tumblr.com www.youtube.com/user/HelloSpoonRobot
they are assembled to create the arm. As you can see in Figure 7, there’s nothing at the end. This is where you attach the spoon or whatever tool you may want. If you have access to a 3D printer, there’s a section on the webpage where you can download different tools created to fit perfectly with HelloSpoon’s robotic trunk that are ready to be Figure 8. Here’s how you connect everything to make it work. Don’t forget to change the printed. position of the switch on the OpenCM-9.04. How about teaching your robot to paint? Or draw pictures? Maybe add a camera ... your imagination is the Figure 9. ROBOTIS OpenCM IDE is the only limit. best way to program your OpenCM-9.04 Once the robotic trunk is built, testing is based projects. easy. Just connect all the components as shown in Figure 8. All the actuators should blink red after you move the switch on the OpenCM-9.04. Note: If you purchase the kit, there is a plastic shell which is used to cover all the electronics and the robotic trunk. It wasn’t quite ready for prime time at the time of this writing, but it will be by the time you read this article.
Time to Set Your Programming Environment! First Test Incoming!
You have to select OpenCM-9.04 from the boards listed and add the library to your sketch (Figure 12). Or, you can just try downloading one of the examples to your board to see if everything is working properly.
Right now, your OpenCM-9.04 has no programming installed, because it’s you who are going to make the robotic trunk move to suit your own whims. It’s time to move to your PC (Windows, Mac, or Linux machine) and download the OpenCM IDE (Figure 9). OpenCM IDE is based in Arduino and Processing. If you’re already somewhat familiar with these platforms, understanding how it works will be a nobrainer! Also, go to the Github page for HelloSpoon (Figure 10) to download the appropriate library needed to program your robot using some fairly easy to understand methods, developed exclusively for HelloSpoon. You can use the normal methods from OpenCM IDE to control Dynamixel servos, if you want. To have this library available in your OpenCM IDE, just copy the folder named “HelloSpoon” (of your current IDE version) to the libraries folder inside your OpenCM IDE root folder as shown in Figure 11. After doing this, you’re ready to open OpenCM Figure 10. Go to http. //github.com/HelloSpoon and you’ll find a collection of codes to be used with your HelloSpoon. IDE for the first time. SERVO 04.2015
59
Figures 11A, 11B, and 11C. This is the same way you add libraries to the Arduino IDE. Don’t forget to select the right version of the library according to your OpenCM IDE version.
Here is a list of the more important methods included inside the HelloSpoon library for you to experiment with:
A
B
begin() - This is the most important method of the library. You must include it every time you want to code your robot, as it starts the communication between the board and the Dynamixel XL-320. moveJoint(byte id, word value) - This is another very important method because it allows you to move the actuators to the desired position. To function properly, it requires two values: the ID for the joint number (1-4) and the value for the desired position (0-1023). setJointSpeed(byte id, word value) - This method sets the desired speed of each actuator. It accepts as values the joint number ID (1-4) and the value to control the speed of moving to the desired position (0-1023); where 0 is the maximum RPM value without controlling the speed, and 1023 is about 114 RPM. getJointPosition(byte id) - As the name suggests, this method returns the actual position of the actuator. It accepts the joint number ID (1-4) as a parameter. Now that you know some of the basic methods, let’s take a look at how to code a very simple test: #include <HelloSpoon.h> HelloSpoon robot; void setup(){ robot.begin(); // Remember you MUST write // this line every time. for(id = 1; id < 5; id++){ robot.LED(id, “white”); delay(100); } delay(2000); for(id = 1; id < 5; id++){ robot.LED(id, “green”); delay(100); } }
C
void loop(){ robot.moveJoint(4, random(500, 800)); delay(1000); }
That’s it! Download this code to your OpenCM9.04 and see how the magic happens!
60
SERVO 04.2015
B
A
Figures 12A and 12B. Selecting the appropriate board to develop and adding it to the library you want to use is really easy.
Is That it?
To make the app work with your robot, you need to download the file named FactoryCode.ino (which is located in the Examples folder of the HelloSpoon library) to your board. This main app is not going to be “released” as it is an open source project, but the flowchart (Figure 15) will help you understand what’s in the algorithm and the steps to follow to make it work.
By this time, you should have the robotic trunk ready; understand how everything should be connected; and know how to program motions and everything related to using the HelloSpoon library with the OpenCM-9.04 and OpenCM IDE. However, there’s one more very cool thing to know that will change the way you experience this robot. HelloSpoon is smartphone based (Figure 13), which makes him completely unique and different from other robots (also more affordable). Thanks to the smartphone, we have speakers to play songs, as well as give our elephant a cute voice (in English, Spanish, Japanese, or Korean); microphones to understand what the user is saying (thanks to the PocketSphinx Engine); a big (or small) screen to display the face and expressions of the robot; and a full easy-to-use and interactive interface to customize your experience. The smartphone provides a new way to interact with HelloSpoon, so you can create as many applications as you can imagine. Right now, the main HelloSpoon app is only available on Google Play for the Android phone (Figure 14), and is compatible with version 2.2 to 5 of the OS. If you download the application, please rate it and leave some Figure 13. Thanks to the smartphone, it is now possible to interact between the user and the robot without adding more components. feedback after using it. SERVO 04.2015
61
Figure 15. Hereâ&#x20AC;&#x2122;s the flowchart explaining how the main app works.
62
SERVO 04.2015
However, in the same Github where you downloaded the library, there is a collection of pretty basic Android apps that contain the libraries used in the HelloSpoon app, as well as some resources like the faces and a few voices. These apps will help you learn a bit about Android programming and how to connect your smartphone with a Bluetooth-ready device like HelloSpoon — or any robot you would like to create in the future.
Taking a Break and a Glance at What’s Next One of my personal goals when I started this project a couple of years ago was to motivate people to not only create robots for the sake of creating robots, but with the goal to help somebody else in need. I hope that my efforts will motivate you to build a HelloSpoon robot or help you feel confident enough to create your own affordable smart devices that might help others. I’m now experimenting with IoT and Cloud Robotics for HelloSpoon. So, you will soon be able to control the robot over the Internet, thanks to a new board and library that’s being developed for it. You can track the progress online by following HelloSpoon on social media. Please let me know your suggestions, your ideas, if it was hard to build, if you want new methods in the library, if you want to design more tools for 3D printing, etc. I’m looking forward to hearing your comments. Feel free to go to hellospoonrobot.com and join the community to let me know you want to be part of this project. Also, you can learn more about HelloSpoon development on Twitter @HelloSpoon and through the Youtube channel HelloSpoonRobot or contact me directly by email at hellospoonpr@gmail.com. SV
Figure 14. If you are an Android user, go to the Play Store and download the HelloSpoon app.
SERVO 04.2015
63
The SERVO Webstore CD-ROM SPECIALS
4.2015 FEATURED
ROBOTICS Arduino Robot Bonanza by Gordon McComb Create high-tech walking, talking, and thinking robots. "McComb hasn’t missed a beat. It’s an absolute winner!" Breathe life into the robots of your dreams — without advanced electronics or programming skills. Arduino Robot Bonanza shows you how to build autonomous robots using ordinary tools and common parts. Learn how to wire things up, program your robot's brain, and add your own unique flair. $29.95
Build Your Own Quadcopter: Power Up Your Designs with the Parallax Elev-8 by Donald Norris Build a custom multirotor aircraft! Build and customize radio-controlled quadcopters that take off, land, hover, and soar. Build Your Own Quadcopter: Power Up Your Designs with the Parallax Elev-8 features step-by-step assembly plans and experiments that will have you launching fully functioning quadcopters in no time. $50.00
64
SERVO 04.2015
Making Things Move: DIY Mechanisms for Inventors, Hobbyists, and Artists by Dustyn Roberts
In Making Things Move: DIY Mechanisms for Inventors, Hobbyists, and Artists, you'll learn how to successfully build moving mechanisms through non-technical explanations, examples, and do-it-yourself projects — from kinetic art installations to creative toys to energy-harvesting devices. Photographs, illustrations, screenshots, and images of 3D models are included for each project. $29.95
Build Your Own Humanoid Robots by Karl Williams GREAT 'DROIDS, INDEED! This unique guide to sophisticated robotics projects brings humanoid robot construction home to the hobbyist. Written by a well-known figure in the robotics community, Build Your Own Humanoid Robots provides step-by-step directions for six exciting projects, each costing less than $300. Together, they form the essential ingredients for making your own humanoid robot. $24.95
Build Your Own Teams of Robots with LEGO® MINDSTORMS® NXT and Bluetooth® Plan, design, assemble, and program robot squads that communicate and cooperate with each other to accomplish together what they can’t do individually. Inside the authors show you how to construct a team capability matrix (TCM) and use the Bluetooth RoboticOriented Network (BRON) so your robot teams can share sensors, actuators, end effectors, motor power, and programs.$30.00
Robotics Demystified by Edwin Wise YOU DON'T NEED ARTIFICIAL INTELLIGENCE TO LEARN ROBOTICS! Now anyone with an interest in robotics can gain a deeper understanding — without formal training, unlimited time, or a genius IQ. In Robotics Demystified, expert robot builder and author Edwin Wise provides an effective and totally painless way to learn about the technologies used to build robots! $19.95 We accept VISA, MC, AMEX, and DISCOVER Prices do not include shipping and may be subject to change.
Or order online http://store.servomagazine.com/home.php SPECIAL OFFERS
Forbidden LEGO by Ulrik Pilegaard / Mike Dooley Forbidden LEGO introduces you to the type of free-style building that LEGO’s master builders do for fun in the back room. Using LEGO bricks in combination with common household materials (from rubber bands and glue to plastic spoons and ping-pong balls) along with some very unorthodox building techniques, you’ll learn to create working models that LEGO would never endorse. Reg $24.95 Sale Price $19.95
The SERVO Buddy Kit
PROJECTS 3D LED Cube Kit
PS2 Servomotor Controller Kit
From the article “Build the 3D LED Matrix Cube” as seen in the August 2011 issue of Nuts & Volts Magazine. An inexpensive circuit you can build to control a servo without a microcontroller.
For more information, please check out the May 2008 issue or go to the SERVO webstore.
Includes an article reprint.
$39.55
This kit shows you how to build a really cool 3D cube with a 4 x 4 x 4 monochromatic LED matrix which has a total of 64 LEDs. The preprogrammed microcontroller that includes 29 patterns that will automatically play with a runtime of approximately 6-1/2 minutes. Colors available: Green, Red,Yellow & Blue. Jig and plastic cases also available.
This kit accompanied with your own PlayStation controller will allow you to control up to six servomotors. Includes all components and instruction manual. For more information, please see the February 2011 edition of SERVO Magazine. Assembled units available! $79.95
$57.95
SERVO 04.2015
65
To order call 1-800-783-4624 SERVO Magazine Bundles
S av e $1 0. 00 O nl y $5 7. 95 ! Now you can get one year’s worth of all your favorite articles from SERVO Magazine in a convenient bundle of print copies. Available for years 04, 05, 06, 07, 08, 09, 10, 11 and 2012.
Robot Building for Dummies
Any bot builders out there? Get cool robotics stuff from my store! Call me at my order desk! Visit my online store @ www.ser v omagazine .com Linux Robotics
by Roger Arrick / Nancy Stevenson
by D. Jay Newman
Discover what robots can do and how they work. Find out how to build your own robot and program it to perform tasks. Ready to enter the robot world? This book is your passport! It walks you through building your very own little metal assistant from a kit, dressing it up, giving it a brain, programming it to do things, even making it talk. Along the way, you’ll gather some tidbits about robot history, enthusiasts groups, and more.
If you want your robot to have more brains than microcontrollers can deliver — if you want a truly intelligent, high-capability robot — everything you need is right here. Linux Robotics gives you stepby-step directions for “Zeppo,” a super-smart, single-boardpowered robot that can be built by any hobbyist. You also get complete instructions for incorporating Linux single boards into your own unique robotic designs. No programming experience is required. This book includes access to all the downloadable programs you need. $38.95
$24.95
CNC Machining Handbook: Building, Programming, and Implementation by Alan Overby The CNC Machining Handbook describes the steps involved in building a CNC machine and successfully implementing it in a real world application. Helpful photos and illustrations are featured throughout. Whether you're a student, hobbyist, or business owner looking to move from a manual manufacturing process to the accuracy and repeatability of what CNC has to offer, you'll benefit from the in-depth information in this comprehensive resource. $34.95
FOR BEGINNER BOT BUILDERS
$59.95
$49.95
$39.95
The labs in this series — from GSS Tech Ed — show simple and interesting experiments and lessons, all done on a solderless circuit board. As you do each experiment, you learn how basic components work in a circuit, and continue to build your arsenal of knowledge with each successive experiment. For more info and a promotional video, please visit our webstore.
66
SERVO 04.2015
ADHD Students Benefit from Brainwave Monitoring Programs
By Holden Berry
ADHD is a disorder in children that has been diagnosed more and more over the past decade. Whether it's the hyperactive consumer culture, different teaching and parenting methods, or simply more awareness among doctors, the rates of ADHD in children have indisputably been on the rise. So, what's the solution to this epidemic? The answer to that is, there isn't one. Or, to phrase it a little better, there is no one solution. Every child is different and reacts differently to treatments. Fortunately, doctors are making vast improvements in medicine and treatment methods. Some of the recent advances can be credited to Play Attention â&#x20AC;&#x201D; the leading cognitive training program for not only ADHD patients, but anyone who would like to train their attention span and increase their capabilities to learn. SERVO 04.2015 67
A student and teacher utilize Unique Logic's Bodywave armband technology.
The same technology originally designed for NASA pilot training is helping students and adults alike. any people will see TV commercials for websites using cognitive games, claiming that through the “magic of Neuroplasticity” you can raise your IQ and become vastly more intelligent. These companies will often require payments just to play a few brain games and solve some puzzles. Many medical tests have shown these methods of “brain training” to be no more effective than a game of chess or simply reading books. In a sense, people are paying $15-$30 for some memory games, when they could visit the library and achieve the same results. Play Attention is a company actually making huge reaches in ADHD treatment. They take the cognitive brain training games and add in a little machinery that makes all the difference. Through the use of BodyWave Technology’s brainwave monitor, they can track student’s attention while playing the games. While the user plays the game, he/she must assert a certain amount of focus on them. If the participant gets distracted, the game stops. The only way to play is to pay attention to it. So, ADHD students — whose minds are very prone to wandering — must actively give full attention to the games they are playing; they can even see their brainwave feedback on the screen. Over time — just like training for a sport — these students focus and attention skills increase, and quite often bad behavior related to ADHD decreases drastically. Play Attention was originally developed by a school
M
68
SERVO 04.2015
teacher. He was making an attempt to help his students who struggled to stay focused in class. He discovered that through cognitive exercises and training, people could increase their attention span and help hone mental skills. His further research and discoveries led to the first patent in the area of cognitive training, making Play Attention not only the most popular program of its type, but the pioneer as well. The technology utilizes the same brainwave tracking equipment used in NASA pilot training, originally invented in the 1980s. Pilots use the program to increase their attention span, so when they switch to autopilot they do not become distracted. The pilots would play the cognitive games while a headset gave them neuro feedback in order to gain data about attention span, mental engagement,
Other Uses of Brainwave Monitoring Systems • Headsets that keep drivers from falling asleep behind the wheel. • Headsets that can accurately predict when an epilepsy patient will have a seizure. • Neuromarketing utilizing brainwave monitoring to measure responses to certain marketing stimuli like colors and graphics. • The United States Army is currently researching EEG (Electroencephalography) software that allows soldiers to communicate through reconstructed brainwave signals.
A mother and daughter using Play Attention games to increase focus.
Post comments on this article at ww.servomagazine.com /index.php/magazine/article/april2015_Berry.
and stress levels. Games that are similar to the ones that are helping pilots stay safe are now helping students and adults alike. So, why is Play Attention so different than other brain training games? Well, think about any time you’ve played a video game; you may be fairly invested in the game attention wise, but there is nothing physically keeping you focused. I know when I’m playing a round of the video game, FIFA 15 I pause the game multiple times to either text someone back, change the music I’m listening to, get a snack, talk to my roommate, etc. It’s easy to assume that if I (a non-ADHD student) loses focus many times during a simple game of FIFA, a child suffering from ADHD could have a very tough time focusing on an educational game. They might play it and be successful in it, just like how I may win my game of FIFA. However, that doesn’t guarantee any sort of prolonged attention, which means no guarantee of any increase in attention span. Play Attention requires full absorption into the game, so if a student glances out the window for a second, the game pauses. They can’t play again until they’re completely focused on the screen, ensuring that the student is training their brain for prolonged periods of attention. How effective is Play Attention? The Tuft University School of Medicine questioned the same thing. They performed two separate clinical studies in the Boston schooling district to put Play Attention to the test. Each one concluded that students with ADHD who used Play Attention all showed improved focus and attention, strengthened cognitive skills, and better behavior. These students were tested six months later, and the skills they gained during their time using Play Attention had stuck with them, showing that this system is more than just a temporary boost. The doctor performing the experiment was so convinced by the results that she later opened her very own Play Attention center in Boston. The popularity of Play Attention has also led to it receiving five patents on the process. So, the program has more than just medical studies backing it up, but sales and
patents to confirm its legitimacy. Are ADHD students the only ones who can benefit from this program? Absolutely not! In no way is the usefulness of Play Attention limited to just ADHD students. Many educators are using Play Attention in their daily lesson plans for their whole class. With games focusing on attention stamina, completing tasks in a timely manner, short term memory, and more, every student would find participation in this program helpful. It doesn’t stop there, either. Many adults and professionals are using it in the office. Just like many kids, adults find it difficult to pay attention while at work, meet deadlines, complete projects, etc. Many employers are beginning to use this program to help their employees become more efficient. It is very clear that Play Attention is the future of cognitive training. With thousands of adults and even more children benefitting internationally, it is safe to assume that within the next five years there will be even more improvements to the technologies, accuracy, and effectiveness of Play Attention. BodyWave has even done away with the clunky headsets that most people associate to brainwave monitoring, and have replaced them with small, more comfortable armbands that are equally effective. Because so many thousands of people are showing improvement from these technologies and games, it should be expected that Play Attention will remain on top of the ADHD treatment world for the foreseeable future. For more information on Play Attention, visit their website at www.playattention.com. SV
SERVO 04.2015
69
Twin Tweaks
by Bryce Woolley and Evan Woolley Go to www.servomagazine.com/index.php/magazine/ article/april2015_TwinTweaks to comment on this article.
Rise of the Simple Machines
L
ast time, we outfitted our prototyping platform, Protobot with a lever arm to do the back-straining work of sandbag filling. We were pleased with the effectiveness of the arm, which was able to fill a sandbag with ease using the mechanical advantage imparted by one of the classic simple machines: the lever. The advantageousness of the lever arm was limited by a few factors, namely the length of the arm. To give the arm a decent range of motion with one degree of freedom, we needed a long lever arm. With the end effector extending far from the pivot point, we needed an even longer arm for the motor to pull down on. If we wanted an arm that could really perform feats of strength, we would need something as large as Archimedes’ earth mover. A better solution for improving Protobot’s strength, however, was within our grasp. All we had to do was look to another one of Archimedes’ favorite simple machines. We happened to have two custom-machined pulley
GIVING
SOME SCALE TO THE LEVER ARM.
blocks back from Evan’s days as a mechanical engineering undergrad at UCSD. Pulleys are humble machines as unassuming as levers, but they have the ability to add crazy amounts of mechanical advantage to your project. How much mechanical advantage could we add to Protobot? Would its newfound strength be the first step on a path to robotic ascendancy and machine overlords, forcing us to consider a time machine for our next project to undo our folly in this one? There was only one way to find out.
Hasta la Vista, Mechanical Disadvantage PULLEYS
70
IN BLOCKS.
SERVO 04.2015
Along with levers, pulleys are one of the six classic simple machines (the others being the inclined plane, the wedge, the wheel and axle, and the screw). In general, simple machines are meant to help with the most basic of
Twin brothers hack whatever’s put in front of them, then tell you about it.
tasks — changing the direction of a force and multiplying it. That might not sound very exciting, but simple machines are the backbone of the techniques used to build everything from the Great Pyramid of Giza to modern skyscrapers. At its simplest, a pulley is comprised of a wheel on a shaft with a cable or belt running along the circumference of the wheel. A single pulley wheel can only change the direction of a force, but using multiple pulley wheels allows you to multiply your input force through the power of mechanical advantage. When multiple pulley wheels are grouped into one casing, the assembly is called a block. A block might contain two, three, or many more pulleys. You will generally encounter blocks in the wild in groups of two, where one will be the fixed block and the other the moving block. Even though a pulley is classified as a simple machine, that doesn’t necessarily mean it’s a cake walk to make a nice one. Evan found that out firsthand at UCSD, where as part of his studies he took a mechanical design course that tasked him with crafting two pulley blocks to meticulous standards. Starting with a block of aluminum and a cylinder of plastic, Evan was required to use mills, lathes, and drill presses to add two channels for the pulley wheels, and shape the block into an elongated octagon. He cut the pulley wheels to the proper thickness, drilled the holes for the shaft, and added grooves to the wheels (sometimes called sheaves) to better contain a cable. Some say that the art of sculpting is in the taking away. Evan, however, did not take away quite enough, and received an A- for making a miscalculation for one of the milled cuts. Fortunately, you don’t need to be Michelangelo to make a functional pulley block and, in this case, an Awould be just fine. The pulley wheels spun nicely on the shaft and fit well in the block slots, with ample room for a cable to fit into the grooves. One end of the blocks had a countersunk hole that could be used to mount the block or tie the fixed end of a cable to. The other end of the block contained a threaded hole to accommodate something like a bolt or an eye bolt. After completing the blocks for class, they lay dormant for years, biding their time until the perfect moment arose — like Skynet before it became self aware.
ROOM
FOR IMPROVEMENT.
PLACES
FOR PULLEYS.
First, Crunch the Numbers. Then, Crunch Humanity. The perfect time to put the pulleys to work was now. To give us a better sense of the strength we were imparting
MOUNTING THE
BLOCKS.
SERVO 04.2015
71
GUN TACKLE
GUN TACKLE
FORCE DIAGRAM.
to Protobot and to be better able to compare the benefits of the lever arm and the proposed pulley system, we wanted to bust out the trusty pen, paper, and calculator to crunch the numbers like good roboticists. The mechanical advantage of the lever arm is easy enough to calculate — all we have to do is balance the torque, τ: τ1 = τ2 F1*r1 = F2*r2 F1 *(r1/r2) = F2 where F1 is the input force, F2 is the output force, r1 is the
LIFTING 20
72
SERVO 04.2015
LBS WITH THE GUN TACKLE.
IMPLEMENTATION.
length of the input arm, and r2 is the length of the output arm. Balancing the force shows that the greater the ratio between the input and output arms, the lower the input force needs to be. The ratio of input arm length to output arm length thus expresses the mechanical advantage of the arm. Busting out the trusty tape measure revealed that the input arm length was 47 inches and the output arm was 26 inches; 47/26 ≈ 1.8. That means the mechanical advantage of the lever arm should allow the robot to pick up 1.8 times the weight it normally would be able to. What kind of maximum strength could we expect from such an arm? To figure that out, we needed to know how strong the motor was, but that’s not as simple as just looking up the stall torque of the motor. Looking at the stall torque in this instance is almost as tempting as handing over all control of the military to a synthetic intelligence called Skynet because it’s a nice easy number to spot right there in the spec sheet. However, stall torque is the torque at which point the motor stops moving. Our robotic arm wouldn’t work so well if we were counting on the stall torque. Another potential issue with using stall torque is the current draw from the motor. On Protobot, we run all of our motors through fuses for safety. If the current draw of the motor at the stall torque exceeds the threshold of a breaker, the breaker will pop and the motor won’t work (though that is, of course, a much better alternative to burning up the motor). When evaluating motor performance, it’s better to look at motor performance curves. Motor performance curves will demonstrate the relationship between variables like power, speed, torque, and efficiency. Protobot’s lever arm was powered by a Fisher-Price motor like those included in the FIRST Robotics kits, and pawing
through some spec sheets and motor curves led us to an estimation of our motor torque at about 25 ft-lbs. That means the motor could lift a weight of 25 lbs at a perpendicular distance of one foot. That’s not exactly how our motor was exerting force to lift something. To raise the lever arm, we had a cable that connected to the end of the input arm wrap around a drum driven by the Fisher-Price motor. What we were really interested in was the linear force that the motor imparted to the cable. This easily calculated by dividing the torque by the radius at which the force was acting — in this case, the radius of LUFF TACKLE the drum that the cable was IMPLEMENTATION. being wrapped around. With a drum radius of about 1.25 in (0.1 ft), that gives a linear force of about 250 lbs! This is simply an estimation that likely does not adequately account for the inefficiencies of the motor gearbox or rotating drum assembly, but it still highlights the awesome power of a gear ratio like the one in the FisherPrice gearbox, and the advantage of applying that force over a small lever arm (in this case, the drum radius). When you add the lever arm into the equation, that means that the lever arm should be able to lift about 450 lbs! Well on the way to Terminator strength. Add in the pulleys, and we should have a veritable T-1000.
LUFF TACKLE
FORCE DIAGRAM.
motorized drum, and the carabiner made it easy to mount and remove the pulley when needed. Mounting the fixed pulley took a little more thought. The pulley wheels needed to be in the same plane as the drum and the other pulley wheels. Fortunately, the moving pulley dangled almost directly above the back of the robot. We repurposed an aluminum bracket that had once been used to mount a radio transceiver into a pulley block mount. One more hole made with the drill press was all we needed to pick up the countersunk hole on our pulley block, and the size of the bracket helped the fixed block clear the battery that made its home in the bot’s caboose. With the pulleys mounted, all we needed to do was rig them up for major mechanical advantage.
Welcoming Our Robotic Overlords Before figuring out the precise rigging of the cable on our pulley blocks, we wanted to get the pulleys mounted. In a block and tackle system with two blocks: one is the fixed block and one is the moving block. For us, the moving block was easy to figure — it would go on the arm. Fortunately, the piece of all-thread that we had previously tied the cable to was the perfect mounting point for our pulley block equipped with an eye bolt. We couldn’t just hook the eye bolt over the all-thread and call it a day, however. That would give our pulley wheels the wrong orientation. An easy solution was to hook a carabiner over the allthread and hook the eye bolt to the carabiner. This ensured that the pulley wheels were in the same plane as our
LUFF TACKLE
LIFTING
30
LBS.
SERVO 04.2015
73
We ditched the sandbag and duct taped up the bottom of the bucket with a sort of duct tape basket weave (we’re pretty sure that will get you the basket weaving merit badge). Satisfied with the structural integrity of our new end effector, we loaded it up with 20 lbs of free weights. Protobot had no problem at all lifting it. Instead of going crazy finding more weight to push the gun tackle to its limit, we just wanted to raise Protobot’s limits with the next block and tackle arrangement: the luff tackle. When drawing out our force diagram for the luff tackle, we offset the pulley wheels — drawing them all together like they appeared in one block would be a confusing proposition in two dimensions (and we simply didn’t have the patience for some fancy isometric drafting). Looking at the force diagram for the luff tackle, you can see there are three cable sections holding up the weight. By now, you’ve surely caught on to the simple rule of thumb for determining the mechanical advantage of a pulley DOUBLE TACKLE FORCE DIAGRAM. system: However many lengths of cable are wrapped around the pulleys gives you your mechanical advantage (by The first pulley arrangement we wanted to try is called length, we mean the distance between the fixed block and a gun tackle. To get a better understanding of the forces at the moving block). work, we diagrammed the pulley arrangement. The basic We upped the ante a little bit by throwing a few more idea behind the force multiplying ability of a pulley might free weights into the bucket and giving the luff tackle 30 be most easily visualized by imagining a weight hanging pounds to lift. Protobot of course had no problem, and the from a rope. If the weight is 100 lbs and there is only one smoothness of the cable running through the pulleys was rope holding it up, then there is 100 lbs of tension in the quite the sight to behold. There was still more that we rope. But what if we held the weight up with two identical could do with our pulleys, though. ropes? If the weight is hanging there perfectly still in a The final arrangement we wanted to test out was the state of static mechanical double tackle. Sketching out the equilibrium, then the tension in force diagram indicated that we each rope is 50 lbs. Many hands could expect a mechanical make light the work, as they say. advantage of four. We rerouted the That’s essentially what a pulley cable to pick up the last pulley allows you to do — divvy up the wheel, and we put the arm to tension in the cable over several work. The 30 pounds was nothing, lengths. Looking at our force like asking Arnold Schwarzenegger diagram, you can see there are two to lift a pack of fluffy rice cakes. We rope lengths holding up the weight, scrounged up a few more free meaning that each takes on half weights to make it 40 pounds. the weight. This is a mechanical If Protobot was covered in a advantage of two. shell of living tissue to make it Actually, rigging up a block and indistinguishable from the humans tackle system is kind of like a game it was hunting, surely it would not of cat’s cradle. Fortunately for the have even broken a sweat. We gun tackle, there isn’t too much found a cinderblock to throw in, cradling to do, and we had the and it didn’t seem to slow down system rigged up in no time. We the arm at all. We found a large were excited to do our initial test, block of steel that we would use as but first we had to do something a block in our press and tossed it in about our end effector. The the bucket. The duct tape at the sandbag was one of our limitations bottom of the bucket seemed to last time — the slippery sandbag strain a lot more than the Fisherwould slide off our arm if it carried Price motor, but the arm once again DOUBLE TACKLE IMPLEMENTATION. too much weight. raised with ease.
74
SERVO 04.2015
We pulled out a scale (like the kind you use to weigh your luggage) because we wanted to know how much iron (or steel, rather) Protobot was pumping. We hooked the scale to the end of the bucket and took a reading of about 60 lbs — 60 lbs, you might say, does not seem like a feat of superhuman strength. If you were lifting like Protobot, however, it might be a different story. Remember that the bucket is at the end of a long lever arm — one that was 26 inches. Thinking of the pivot point of the lever arm as Protobot’s shoulder, the torque generated by the bucket full of steel is 130 ft-lbs. That’s nothing to sneeze at. It would be like doing a front dumbbell MORE WEIGHT! raise with a 60 pound dumbbell. Protobot would certainly beat us in an arm wrestling match. Going back to the number crunching would allow us to estimate the maximum strength of Protobot’s new pulley power-up. We conservatively estimated the linear force generated by the motor as about 250 lbs. The lever arm imparted a mechanical advantage of 1.8, and the double tackle arrangement imparted a mechanical advantage of 4, for a total mechanical advantage in the system of 5.8. That means Protobot can lift 5.8 times more weight than it could with the motor alone. Our estimate for the maximum lifting power of the arm would be a whopping 1,450 pounds! Humanity is doomed.
Terminating Design Constraints One of the things we loved about this project is that we were able to massively improve the performance of Protobot’s arm merely by implementing a better mechanical design. We didn’t need a stronger motor; we didn’t need a beefier battery; and we didn’t need to refine any lines of code. What is the point, one might ask, of an arm with so much mechanical advantage? We couldn’t possibly use all of it, could we? Even in our preliminary tests, our bucket topped out at holding 60 lbs. If we put much more in it, something else would have failed before the Fisher-Price motor had reached the end of its strength. Perhaps the lever arm itself would have fractured, or the bucket end effector would have been ripped off like the arm of someone standing in the way of a Terminator. With all of that, isn’t that excessive mechanical
DOUBLE TACKLE
LIFTING
60
LBS.
advantage just wasted potential? Not necessarily. Remember the motor curves we mentioned earlier? Taking another look at those reveals the benefits of having more mechanical advantage than you know what to do with. Having so much mechanical advantage means that the linear force needed to lift the weight is really quite low. Low force means low torque. When we don’t need a lot of torque from the motor, that means we can get more speed — perhaps run the motor at a higher level of efficiency and significantly reduce our power consumption. More than that, having tons of mechanical advantage can help you do something even more liberating than finally overthrowing our robotic overlords — eliminate (at least a few) design constraints. Knowing that you have a mechanical design that can more than handle any forces you expect from it means that you can focus on other things. You make the arm move as fast as you want without worrying that you’ll trade off so much torque it won’t work. You can add more mechanisms without worrying that the arm will draw so much power it will run down the battery before the end of your match. By powering up your mechanical design with tons of mechanical advantage, you’re essentially eliminating some of the variables you would otherwise need to worry about, making the rest of your entire design that much easier. Which, of course, gives you more time to figure out how to save the life of the leader of your resistance against the overpowered machines you helped unleash. SV Check out the YouTube video at http://youtu.be/CLJhNjds3Qk. SERVO 04.2015
75
a n d
g{xÇ Now
by Tom Carroll TWCarroll@aol.com
What's New in Robotics Spring is 'breaking out all over' and robots are doing the same in 2015. Robots of all types are becoming very prevalent in our daily lives. Non-industrial consumer and home robots are fast overtaking industrial and military robots in sales numbers and sales income figures. For so many years, consumer robots consisted of either highend 'toy' robots such as the Tomy Omnibot 2000 Figure 2. Heathkit Hero 2000 robot. shown in Figure 1, or kit and educational robots such as the Heath Hero 2000 shown in Figure 2. Figure 1. Early Omnibot 2000 robot. Adding the number '2000' to the model hopefully indicated to the prospective customer that the product was of the latest technology. The new millineum did bring forth many new robotic products. ther home robots were either usually small toys or complex hobbyist-built machines. The RB-5x shown in Figure 3 by RB Robot typifying what a ‘working woman’ would want for her home, or the TOPO shown in Figure 4 were also very popular ready-built ‘home’ robots in the 1980s. The other non-industrial category of robots that was not intended for the home environment were the expensive university research platforms or similar non-consumer robots such as the Denning Sentry robot shown in Figure 5 from the early ’80s.
O
Consumer Electronics Show 2015 Each January, the International
76
SERVO 04.2015
Figure 3. The RB-5x robot on the cover of Working Woman.
Figure 4. Androbot TOPO, the brainchild of Nolan Bushnell — inventor of Pong.
Advances in robots and robotics over the years.
Post comments on this article at www.servomagazine.com/index.php/magazine/article/april2015_ThenNow.
CES takes place in Las Vegas, NV and always displays the most innovative and latest advances in electronics and technology. This year’s 2015 event was no exception. There was more than 170,000 attendees (with 45,000 of those from outside the US), and 3,600 exhibitors that wowed everyone Figure 5. Denning security robot from with things like 4K TVs, the early 1980s. wearable electronics, computers and software, and, of course, many different types of robots. It is the presence of robots that has dramatically increased over the years since I first attended CES in the ’90s when most of the bots on display were the radio controlled ‘promotional robots’ such as International Robotics’ SICO shown in Figure 6 and a few other ‘toy’ categories.
Toshiba's Communication Android
Figure 6. International Robotics' very popular promotional robot, SICO.
Figure 7. Toshiba’s Communication Android can converse via hand language in Japanese.
Figure 9. Keeker, the intelligent home entertainment and security robot.
One robot seemed to create the most media buzz at CES 2015, and that was Toshiba’s ‘Communication Android’ named Chihira Aico shown in Figure 7. Called creepy, eerie, scary, terrifying, and other unkind monikers by the media, Toshiba’s robot is intended to communicate via Japanese sign language with those who cannot speak. The mechanicals of the female humanoid move somewhat smoothly, though it is the hands that have the most natural movement. The scary part that delves into the depths of the ‘Uncanny Valley’ is the deadpan facial expression, along with the shaky arm movements.
Working with Osaka University and the Shibaura Institute of Technology, Toshiba’s industrial robot background helped integrate the 43 actuators in the robot’s joints and face to produce a fairly realistic creation. The female android will eventually possess speech recognition and synthesis, and should be capable of acting as a receptionist or exhibition guide within the next year. Hiroshi Ishiguro has made many creations that come close to approximating human appearance as well as movements, but this robot illustrates that we have a long journey to arrive at a truly human-like
Figure 8. The movie poster from the 1976 film, Futureworld.
automaton that could pass a visual Turing Test — if there is such a thing. The 1976 film, Futureworld makes me wonder if we will ever attain true synthetic humans. The poster for the movie shown in Figure 8 says it all: “Futureworld. Where you can’t tell the mortals from the machines ... SERVO 04.2015
77
Figure 11. Mercedes-Benz F 015 and Cambot. Figure 12. Three views of Budgee. Figure 10. Cambot, the Mercedes Benz 'SpokesEye' robot.
even when you look in the mirror!” Almost 40 years later and we’re still not there.
Keeker The little French robot, Keeker was also introduced at CES 2015. It can be described as a mobile speaker and video projector for the home, but its makers see it as a lot more. Shown in Figure 9, it reminds me of the possible offspring of R2D2 and an egg. It has the capacity to project a 40 inch 1080P image from two feet away, and offers 360 degree sound from six 25 watt speakers. It can be controlled remotely and has a built-in camera for surveillance. Its ultrasonic range, infrared, light, air quality,
Figure 13. Budgee, the robot assistant.
78
SERVO 04.2015
temperature, and humidity sensors can monitor a household. With the projector and six speakers to power, I’m not sure how long the battery will last before needing charging. It’s a Kickstarter funded project with an estimated cost of $1,990.
Cambot Promotional robots have long been seen at CES events, but one was so memorable that people came from all over the venue just to see it. It was Cambot (shown in Figure 10) — not the Mercedes-Benz F 015 Luxury In Motion concept car that CEO Dieter Zetsche was presenting (seen in Figure 11). “Just the cutest little robot you’ve ever seen!” stated PC World. Zetsche had the three-wheeled robot set loose
Figure 13B. Business woman in hotel with Budgee carrying her luggage.
on the floor to get footage of the vehicle’s extremely fancy interior (that was complete with individual swivel chairs and entertainment systems), but much of the audience feedback was about the robot. “Just watch this little guy roll around the stage. You want to hug him. I know you do,” were some of the comments made.
Budgee Another robot that was introduced at CES (and on many TV shows) is the robot, Budgee shown in Figure 12 by Five Elements Robotics in New Jersey. The robot’s main function is to be “a reasonably priced robot assistant who carries your things so you don’t have to.” At $1399, the cute little robot will follow you around (a small transmitter that you carry) as you shop at up to 2.4 mph as seen in Figure 13. It stays at a distance behind you that you select. He can greet you and state the status of his systems, and can hold up to 50 pounds of groceries, miscellaneous items, or even luggage. He charges in 2-3 hours, and can operate for up to 10 hours on a charge. He had a few hiccups at CES, but that was probably because of so many RF signals in the exhibit halls that he couldn’t pick up his own signal. That wouldn’t happen in a real world situation.
Raybot and Benebot from Ecovacs A couple of unique robots were
presented from Ecovacs — a company known as makers of various types of cleaning robots. One of the cleaning robots is the RAYBOT shown in a solar panel demonstration at CES in Figure 14. The RAYBOT won the coveted 2015 CES Innovation Award. With the Figure 15. Cute proliferation of large little Benebot solar farms, keeping stole the hearts Figure 14. The award-winning Ecovacs’ of CES solar voltaic panels dirt Raybot cleaning a solar panel. attendees. free has been handed over to robots that do Figure 16. Care-O-bot 2 by not use water in the Germany's Fraunhofer Institute. cleaning process. “Capable of cleaning commercial and utilityscale solar photovoltaic panels up to a 75 degree angle, the RAYBOT safely sweeps, blows, and vacuums the panels to remove Figure 18. Care-O-bot 3 shown with component descriptions. dust and dirt, ensuring that the maximum sensors, an LCD display screen for amount of sunlight is exposed to the videos, and a laser to point customers panels to produce energy,” stated Jeff Figure 17. Care-O-bot 3 with pliable foam covering and advanced arm. in the right direction. He is designed Mellin, Director of Marketing for to interact with customers via an LCD Ecovacs Robotics. screen and cute squeeky voice. “Solar power has become one of has been my main interest for a the most rapidly implemented number of years, and this German renewable sources of electricity for development is encouraging. Care-Ohomes and businesses around the bot was designed and implemented to world. However, many people forget actively assist humans in their day-tothat dust and dirt can hinder the day lives as a household assistant to energy output because it blocks the independently fetch and carry items, sun’s rays. The Raybot can help ensure Not all of the flashiest robots act as a communications assistant for that solar photovoltaic panel systems were seen at the CES 2015. One of a user, and enable them to lead are always clean for optimum the best designed home care robots independent lives. The fourth of the performance.” (in this engineer’s opinion) is the Careseries is much less expensive and yet Just as with the Mercedes O-bot designed by Germany’s is supposedly more versatile. ‘spokeseye’ (sorry, I had to say that) Fraunhofer Institute for Manufacturing The first Care-O-bot from the Cambot, it was the cute little Benebot Engineering and Automation IPA in 1998 timeframe was strictly a research that also won the hearts of the CES Stuttgart. I have long been enthralled platform that led to the second attendees. Benebot (shown in Figure with the development of the Care-Oversion shown in Figure 16. I briefly 15) is a shopping assistant robot from bot series of robots — now in its discussed this robot nine years ago in Ecovacs that is capable of having full fourth iteration. this column. The design seemed to be conversations with customers. He The development of an affordable centered on care for the elderly, as comes equipped with numerous personal robot assistant for seniors seen in the photo. A handle bar in the
The Evolution of Fraunhofer Institute's Care-O-bot
SERVO 04.2015
79
Figure 19. The Care-O-bot 3 shown with its arm in a fetch and carry mode.
rear allowed the robot to serve as a mobile walker, while the high quality manipulator arm could deftly handle over six pounds of payload. The third version in Figure 17 shows how the arm can be stowed behind the robot when not in use, and can serve a person with the versatile combination tray and LCD touch panel. Figure 18 illustrates the internal components of the robot and Figure 19 shows the arm in action. The present cost of the Care-O-bot 3 is estimated to be about $320,000 — about the same price category as the Willow Garage PR-2. It is rather pricey as it is basically handmade and machined. The precision machined components, the two SICK S300 and one Hokuyo URG-04LK laser scanners, three Pentium-level processors, the Schunk LWA3 arm, and SDH gripper with a 47” reach are quality components that add to the cost.
Figure 20. The new Care-O-bot 4.
Powered by a 60 Ahr/48 volt lithiumion battery, this 57” tall robot weighs almost 400 pounds. It is a very capable robot, and its durable soft foam exterior make it very appropriate for use around seniors and other humans. It bends forward at the waist, and several sensors and cameras are on a pan and tilt platform behind the smoked plastic head shield. The most recent Care-O-bot 4 in Figure 20 shows the current design direction to bring the overall cost down. Note the slanted ‘face’ — it has the same kind of cuteness as the little Benebot. Utilizing formed sheet metal for the internal structure rather than machined beams has brought the cost down dramatically. It is now available with a second arm as shown in Figure 21. The modular construction allows
the robot to be configured in many ways, based on the needs of the specific buyer. IPA hopes to lower the cost of a final version to about $11,200 (10,000 Euros) — a price point that would be more affordable to seniors and their families in need of in-home care. It is composed of six independent modules for added flexibility which can be separated as shown in Figure 22. The refined gripper for the new Care-O-bot is in Figure 23. “The fourth generation of the Care-O-bot is not only more agile, modular, and charming than its predecessors, but it also stands out through the use of cost-reducing construction principles,” explained Dr. Ulrich Reiser, Project and Group Leader at Fraunhofer IPA. “Its streamlined design with two arms attached at the side and a type of a head means that the robot is reminiscent of a human being. However, developers did not want its appearance to be overly human ...” (much like the Toshiba Communication Android). The Care-O-bot 4 design has gone from 20 degrees of freedom to 31, while lowering overall cost. “While the concept for the Care-O-bot 3 was a more reserved cautious butler, its successor is as courteous, friendly, and affable as a gentleman.” Utilizing the modular
Figure 22. Care-O-bot 4 modular base used to carry luggage. Figure 21. Care-O-bot 4 with dual arms.
Figure 23. Refined Care-O-bot 4 robot arm gripper.
80
SERVO 04.2015
construction, if the intended purpose of the Care-O-bot is to serve drinks, one hand can be replaced by a tray, or the mobile base platform can be used on its own such as a transport for luggage in a hotel. I’ve spent quite a bit of time highlighting the evolution of the CareO-bot as it is one of the best examples of a very sensible evolutionary approach to robot design that I’ve seen. Yes, the fourth generation seems to have steered away from strictly a home assistant robot for seniors, to a design that can be configured in many ways to suit many particular applications. Less costly, yet still structurally sound internal construction coupled with off-the-shelf sensors such as the Microsoft Xbox Kinect cut manufacturing costs but not functionality. A buyer can add one or two optional arms, upgraded arm joints, different cameras, and various communications systems to suit their specific tastes. The Care-O-bot 4 can still function as an assistant for seniors while also remaining capable of being reconfigured as a receptionist, museum guide, mobile information center, medical assistant, or autonomous transportation robot.
Modbot's Standardized Parts Many of us have had an idea pass through our minds, and after a few sketches on a pad of paper or napkin, we want to implement it as soon as we can to prove a design point. If we are in need of an articulated robot arm, say, to add to a mobile platform, we rush to our machine shop to quickly build something. Two guys from Melbourne, Australia — Daniel Pizzata and Adam Ellison — felt they had a great idea to simplify this process. They developed the Modbot method of constructing robot appendages, using only three components (Figure 24) and a robotic assembly (Figure 25). Using these
Figure 25. Modbot robotic assembly.
Figure 24. Modbot components.
items seems like an easy way to construct a high quality arm, and more components are being added to the line. Their incubator, design, and prototype lab, Highway 1 is located in San Francisco, CA. As they state, “the cool piece of engineering is the small round servo, inside of which is the motor, bearings for load bearing, the transmission, and the encoder,” which is shown in Figure 26. “Everything is neatly packaged and then slipped inside a joint ready for links to be attached.” Pizzata believes that the primary reasons that robots aren’t more visible in manufacturing is that “robots are too expensive and complex. They’re locked away in expensive research facilities.”
Final Thoughts Advances in robotics in the past few years have not been limited to those unveiled at the International CES. The DARPA Robotics Challenge search and rescue Atlas robot that I mentioned in last month’s column has had its tether cut (Figure 27), and it can now operate on its own without external power and control. Some
Figure 26. Modbot servo module showing four slip-rings for interconnectivity.
have compared this advance, “like a teenager going off to college, DARPA’s Atlas robot has cut the tether and is walking on its own without a safety line.” Today’s robots are becoming very smart through applications of artificial intelligence, advanced sensor technology, high energy power sources, and new and efficient electromechanical features such as arms, appendages, articulated grippers, and self-balancing ability. Robots are becoming independent entities and are able to operate on their own for long periods. It is not just government agencies such as DARPA and major centers of learning such as MIT, Stanford, or Carnegie Mellon that are the incubators of the latest robotic technology. Kickstarter companies, spin-offs, and struggling garage-style groups such as Modbot mentioned earlier are delivering so many new ‘why didn’t I think of that’ products to today’s marketplace. I can well imagine that there are a few readers of this article who will soon be making headlines with an amazing robotic product.
Figure 27. DARPA DRC Atlas robot soon to lose its tether.
All I can say is good luck and keep it up. SV SERVO 04.2015
81
- -
COMPONENT LEDs â&#x20AC;¢ LED BULBS â&#x20AC;¢ LED ACCENT LIGHTS
For the finest in robots, parts, and services, go to www.servomagazine.com and click on Robo-Links.
Need electronics? www.nutsvolts.com GET THE
DISCOUNT!
Mention or enter coupon code NVRMZ142 and receive 10% off your order! AM/FM Broadcasters â&#x20AC;¢ Hobby Kits Learnng Kits Test Equipment ...AND LOTS OF NEAT STUFF!
Advertiser Index All Electronics Corp. ..................................................17 AndyMark .............................................................55, 82 AUVSI ..........................................................................15 Firgelli ...........................................................................21 HiTec ........................................................................2, 82 LF Components ..........................................................63 Little Bits Electronics ...................................Back Cover M.E. Labs .....................................................................48 Maker Faire ..................................................................49 Maxbotix .....................................................................82 PanaVise ......................................................................37
82
SERVO 04.2015
Parallax .........................................................................37 RoboGames ................................................................13 RobotShop, Inc ....................................................82, 83 Robot Power ...............................................................54 Sherline Products .........................................................3 SuperBrightLEDs .........................................................82 Team Synergy Moon ..................................................36 The Robot Marketplace .............................................23 Tormach .......................................................................55 Weirdstuff Warehouse ...............................................17
• ATMega 2560 (256Kb !lash @ 16MHz) • Compact, six layer PCB design • Integrated vibration damping • MultiWii and Arduino compatible for DIY projects • Invensense MPU9051 (Gyroscope, Accelerometer, Magnetometer) • MS5611 Barometer with foam cover Ba • Venus 838FLPx 50Hz GPS
*
*
USERGENERATED HARDWARE IS HERE. Get started at
littleBits.cc/bitLab littleBits makes an expanding library of modular electronics that snap together with magnets. Itâ&#x20AC;&#x2122;s the easiest and most extensive way to learn and prototype with electronics. Create complex circuits in seconds: no soldering, wiring, or programming required (unless you want to).
The bitLab is the new marketplace for user-generated hardware. You can submit your own hardware designs for modules you want to see added to the littleBits library. If your design gets enough community support, weâ&#x20AC;&#x2122;ll manufacture it, market it, sell it and give you a percentage of the sales!