An Adventure in Engineering Design, Programming, and Pursuit of Robotic Projects: Updated 09/08/2009 |
|
A-Robot PLog...
Monday, September 7th, 2009 - Catching Up with the Articles... again Droid sub goes under Antarctic ice on 5000 D-cells (8 January 2009) “We believe that the underwater market is the next frontier for robots,” said Helen Greiner, iRobot co-founder… There are a few machines which can carry out simple tasks independently under water - such as the Talisman from BAE Systems - but iRobot are probably right to say that there's still room left in the subsea droid market” DARPA seeks crawling, burrowing river-recce sub bot (31 October 2008) Contract inked for rinky-dink ink squirt squidroid - In response to this article... I'm highly amused at the naming convention, the timing of when I was building my vehicle, and the damn fact that I missed the Broad Agency Announcement about it! Granted... this is what I was talking to the other division at SAIC about through the murk of poor communications about that time... Unmanned Underwater Riverine Craft (UURC) Solicitation Number: BAA07-20 Agency:
Other Defense Agencies Here's a resource from Marine Tech - a different kind of ROV competition from SeaPerch (more advanced)
August 24th 2009 - the R&D Program Parallax Part of interest: AD5220 10K Digital Potentiometer Price: $3.25; probably can use this with the relay card to have sensitivity to the voltage output Communications parts of interest: for Ethernet to USB correction
Wrote an outline for various technology paths. Nominally I would build a project plan & schedule to try and achieve these. But at the moment I'm just going to track it.
Monday, August 17th, 2009 - Catching Up with the Articles It's been a nice couple weeks getting Inky 2.0 up and working, improve video, and then starting the potted camera project for use on the camera test bed, Inky, Blinky (to be sketched out), and eventually Clyde.
It all started by purchasing some 3M Scotch-Weld Epoxy Potting Compound Adhesive DP-270 Clear and some ABS plastic from McMaster-Carr. To get started, I wanted to design an LED flasher just for visual navigation purposes (and use some of my spare parts on something amusing). I also wanted to try waterproofing it also, so I made up the board soldered it, tested it, and then made up a box for it. That was a fun time... fortunately lessons being learned, I changed my concept for the real target of water-proof experience: the Logitech QuickCam.
I hacked apart one of the two Logitech QuickCam Deluxe cameras down to the bare circuit board, then made a box for it, and then setup the camera inside to be epoxied. I did so around 4pm on Saturday afternoon. By 10pm Sunday evening the mix still had not set, so I put a bit more epoxy into the container and mixed it up well.
How's this for cool? Brijesh recommended this site to me for trying to go for a higher torque solution. One of those things that would be sweet of I had an R&D program associated with this project (or at least some minions).
http://www.gobrushless.com/shop/index.php?app=ccp0&ns=display&ref=splash
Tuesday, August 4th, 2009 Wow what a month. I've been running pretty heavy over on getting Inky 2.0 constructed and neglected any real documentation save some photographs. Inky was tested this weekend at my parents pool. Some video was taken although it wasn't particularly captivating for the mission success. I had to both tape and control the vehicle myself since help was otherwise unavailable. Those are the breaks though and I hope to get a legitimate taping soon. Regardless this past week concluded the rapid assembly of the protoboard and the case which housed the board of education BS2, the custom H-bridge board, and terminal strip for wiring. From the 18th to the 29th was spent laying out the protoboard, obtaining all the necessary components and soldering... twice. The lesson learned was that you layout the board, then draw wiring paths with a marker, then remove the components. Do not solder them in place. Instead solder the connecting wires first then install the components. Fingers and hours are saved that way. I had to tear out all the MOSFETs and it was horrific. Thankfully however all the components still worked after the fact. And the design now supports 2 full H-bridge's or 3 half bridges. The next step will be to add yet another motor driver add-on board to act as the 3rd half bridge driver to utilize all three sets of MOSFETs. A 5th driver wouldn't fit well on the existing arrangement and is better suted vertically mounted.
Tuesday, July 14th, 2009 After getting home late from sailing tonight I just had time to fix up some of the website issues and also post this really cool article about an automated UAV refueling system built by the Israelis.
"The Technion students, under the direction of Prof. Benjamin Landkof and Robert Zickel, worked on the project for the past year. The project did not include the development of an actual UAV refueler, instead the 10 student team focused on a special algorithm that controls a camera attached to the end of the refueling pipe. The camera focuses on a small red light that marks the target for it, calculates the distance between the pipe and the fuel opening and instructs the small wings that guide the fuel pipe towards the opening. The camera can give instructions not only with respect to pipe direction but also to extend its length, if necessary, from six to 12 meters (20-40 feet)." Pretty sweet! Thanks to Scott for sending me an email about this.
Monday, July 13th, 2009 - PS2 Control Full Light Demo PS2 control with the 3 custom built H-bridges is now fully prototyped! Now the fun begins to transfer the circuitry to protoboard. I suppose this means I'm also going to have to figure out something to do with the BS2 and pop it off the Board of Education (BoE). Next steps are to complete the protoboard and take it to the tub for some quick testing before going back to the pool. At that time I'll have incorporated the structural modifications to Inky as it moves from Inky 1.2 (current build post Father's Day visit) to Inky 2.0. Thereafter I'm going to put Inky down for a bit and go hard after the Camera on a Stick project (Blinky) and get Clyde started. Clyde is the larger variant of Inky concept to haul around some significantly larger mass payloads.
Since this is the best layout sans capacitors (they're on board #2) Here's a close up with the components called out.
And what would a journal entry be without a demonstration video - this one by Angela.
Saturday, July 11th, 2009 Hooked up the PS2 controller circuit to an LCD circuit Thursday in order to help debug while not attached to the computer and also experiment with the serial communications. Command structure is very similar to the DEBUG command in PBASIC but there's a few unique tricks such as the home, carriage return, and others. It was a very easy implementation and was up in 15 minutes or less and has been very useful. Started on the motor controller board Thursday evening and finished up Friday. I completely messed up the MOFSET lead drawing. I thought the gate was the middle. Oops.
BS2 board with LCD and motor lines plugged into it. Motor lines are at the bottom (blue and yellow wires from P12 and P13) and connected to 220 Ohm resistors to the plug at right to protect the board. The LCD is plugged into PIN 14 thru the ribbon cable at top.
H-bridge Motor driver using MOSFETs and the 4424 driver IC. Motor is powered from the upper left terminal. On the right side of the board are the IRLU024N MOSFETs and the left are IRFU5505s. Two pulldown resistors are used on the inputs of 10,000 kOhm with a 104 and 105 cap in the extreme upper left. I had some issues trying to mount an LED on the board from the left power to the right ground in series with first a 1500 Ohm resistor and then a 3000 Ohm. I have no idea what was happening. As voltage increased first the LED got brighter, then it dimmed... then it started to sizzle. Weird stuff. It was just 12VDC so something weird was going on that I need to understand.
Manuever sheet. This is something to deal with later, but need to devise the command tree for the three motors and how they're going to be controlled. By feel it seems fairly intuitive to control each motor with a single joystick (left and right) and then control vertical motion using the L1 and L2 buttons.
I did experiment briefly with PWM outputs to the motor. This video highlights this.
Wednesday, July 8th, 2009 So it's been a rough week and a half since the last posting. However, progress has been made on the robot front! First on June 30th, I got out the old MakeDC motor controller and hooked it up to the Arduino for its first ever power up test at all... and ended up driving a small 3V motor with it. After reviewing the design more thoroughly I got a bit disgusted with the designer because the nimbus didn't allow for a higher voltage in value than the 5V that comes from the microcontroller to power the two 4424 ICs. This of course is nonsense since you essentially just need to put another wire input into the PCB... considering they added pull-down resistors and Schottky diodes - I'm guessing that the designer wasn't an electrical engineer and if he was... God help us. At any rate, my claims of fraud were amplified against that group for running off with my $20.
So after doing that, I tried to remove the 4424 ICs from the PCB to try and salvage them. This was to no avail. I need different tools than just a standard solder sucker and a solder gun. So the next logical thing was to start looking up parts at least and gather an inventory. This was done over a few days with parts showing up 7/6/09 from DigiKey. To forumulate a good list of parts, I consulted by Intermediate Robot Building book by David Cook. He has a couple specialized chapters specifically on motor controllers which were extremely helpful at understanding different designs and concepts. So I ordered a few different types of parts to try and work out a design that way with power MOSFETs, resistors, diodes, and the 4424 chipset in order to be able to PWM control the motors for Inky.
With the order in the mail however, I turned back to a Christmas present project the PS2 controller. Of course, I needed a fine way to control the motor drivers which was pointed out to me by the experiments with the Arduino. So I hopped back on that bandwagon this week in getting the BS2 stamp off the shelf and hooked in. After a few nights of toiling away at a circuit without a NPN transitor and some resistors... I went to RadioShack and bought my delinquent parts set for $3 (for a sizable package of NPN and PNP transistors). These parts were also listed in the motor driver section for a small motor (which would have been much more suited to the MakeDC driver!!!). Anyway... so all things got hooked up tonight and finally worked. Have a nice video and some images to share.
Saturday, June 27th, 2009 Article on MSNBC from a TODAY Saturday, June 27th, 2009 on 9 January 2009 about The Big Idea by Donny Deutsch
Love is the answer (http://www.msnbc.msn.com/id/28528528/)
I have never met a truly successful person who was not fired up about their work. Take a look at the icons in business today — the Donald Trumps, the Rupert Murdochs — and you’ll see the gleam in their eyes. These guys have so much money, they don’t have to work another minute of their lives. They work because it turns them on. You want to know who’s doing well? Notice the people with the big shit-eating grins on their faces.
An act of life
On The Big Idea, we celebrate people who have the courage and stamina to make their dreams come true. But in every case, the road to success starts with an idea. Some people think a big idea is like a lightning bolt out of the blue that slams you in the head. You know, that “Aha!” thing. But it’s hardly ever like that. The big idea isn’t an act of God. It’s an act of daily life. Simply put, the idea that will make millions starts with an observation. It comes down to a keen awareness of your life and the lives around you. It’s the moment when you say, “There’s gotta be a better way.” It’s the moment when you ask, “How can I solve this problem?” It’s the moment when you see something and think, “Huh, maybe that will work in my neighborhood.” The real big ideas are organic. They come from life.
Thursday, June 18th, 2009 Put Inky into CAD and updated the mainpage to be more project oriented with this page taking the backseat. I'm not completely satisfied yet, doesn't have the Justin's stamp of approval, but that's where we're at now anyway. I updated the Squidlian project page also to include the latest photos available.
Tuesday, June 16th, 2009 Finished updating the Inky project log and everything is up to date. Uploaded a number of YouTube videos and pictures. And... Inky went in the Potomac and survived! (well the dock that leads to the Potomac) but woohooo!
Monday, June 15th, 2009 Updated the Squidlian page with the cancellation notice. Will be posting much on the Inky and Camera on-a-stick projects shortly. I had successful in the pool tests of Inky (far more advanced than anything with Squidlian) and already learned a lot (which was the entire point!). So of course I need to start getting my engineering notes and videos and photos up on this site! Ahh!
Also, I suspect that I may change the decor of this site, but we'll see... At least change some of the images / background.
Monday, May 25th, 2009 Lots and lots of project updates that may get posted this week. I've been doing a lot of work offline with regard to the Inky project. I also have prototype frames for Blinky and Clyde already started. Lots of parts are on order so no completed things yet. I have tested out the control box for Blinky in the mean time and setup a calculator for displacement. To do more precision work I needed a scale (ordered). In the mean time while I await my tether and motors...
Ocean observatories: New wave of science? Scientists know the oceans regulate the global climate, nurture a food chain from microscopic algae to blue whales, and churn the cycle of life with earthquakes, volcanoes, and tsunamis. But their data collection tools – ships, satellites, and buoys – have restricted them in space and time. Now the National Science Foundation's $400 million Ocean Observatories Initiative is poised to open an era of big ocean science, where anyone with a broadband Internet connection can do a virtual dive and stay as long as they please. As a first phase, scientists are preparing to invade the waters off the coasts of Washington and Oregon with a suite of sensors, robots and cameras that continually report to shore via fiber optic cables. The breakthrough would give scientists a ringside seat to everything from life-spewing eruptions to a whale’s life journey. If Congress approves final funding, construction could begin in 2010.
Sunday, May 3rd 2009 - Hunt the Wumpus! This weekend amid working out stuff for our vacation, hockey, and studying I took the opportunity to write and test "Hunt the Wumpus!". It's a simple 20 room maze game by which the player has to avoid pits, bats, and the foul smelling Wumpus shown here.
Figure 1 - The Wumpus.
Each of the rooms is connected by tunnels to another set of 3 rooms. This pattern forms a dodecahedron pattern of 20 vertices build around 12 pentagon faces. So this world replicates a form of a spherical world in which players face challenges and have limited information. The bats for instance will transport you from one room to the next (of which there is a choice of three). You can be put back the way you came on one trip in and the next go to another room entirely and possibly be dropped down a pit to your horrible death or right on-top of a Wumpus. The Wumpus can kill you if you accidently bump into him or if you miss by shooting an arrow into the wrong room. The Wumpus will move randomly if woken past bats and pits and perhaps right on-top of you! At any rate, the whole point is to kill the Wumpus to win before dying or running out of arrows (you have 5).
As it is the perfect map building game for artificial intelligence this is a great game to experiment with and make various changes to for autonomous agents. The agents have a goal - seek and kill the Wumpus at a cost don't fall into a pit or get eaten by a Wumpus. The rooms have limited information that can be sensed - if you are near a pit you feel a draft, if you're near bats you hear the bats, and if you smell a wumpus you're near one! Each of these cues indicates that there are hazards near by but the agent (or player) doesn't know which room any of these things are in. Sometimes there can be multilple sensory stimulations simulatenously. But the rules of the game say that bats, pits, and wumpuses can't exist in the same spot. So after that you can build a map as shown at right in Figure 2 and solve the puzzle for the entire layout.
Figure 2 - Game design (note dodecahedron map lower left, code upper left, and game map for scenario 1 at right).
Below shows the game in play from my desktop computer. Note this is the same scenario used in Figure 2 so it was an easy hunt. Anyway - that's enough fun for me for the week... back to studying for hopefully my last final for my master's degree! woohoo!
Monday, April 27th 2009 - The Wumpus Problem! After having a fun instant message discussion with Derek about him being a wumpus ( a mysterious monster that lives in a cave)... for being inside on a beautiful day... [I by the way had an excuse in finishing my X-15 paper].
The beautiful thing is that source code is provided! I can build my little AI agent games and have a good old time!
Monday, April 20th 2009 Hey we have new names for the new family of robots! Inky, Blinky, and Clyde! Pinky of course the fourth... may or may not join the boys club. We'll see how well these builds go.
Inky of course was the first one to be thought of since we have Squidlian... then it just so happened that the rest of the family showed up!
Saturday, April 18th 2009 Purchased and started reading "Build Your Own Underwater Robot And Other Wet Projects Book" - seems like an absolutely excellent place to start. I can't believe the Google hits don't have this higher. I missed the "your own" instead of searches for building ROVs, etc. I stumbled upon this with my volunteering for the SeaPearch competition early in the month on 2 April at a local high school competition as an engineering notebook judge. I have since found that a few of my ROV peers used this book and in general it's an excellent baseline text.
All things considered I plan on building 2-3 LEGO ROVs, 2-3 SeaPearch ROVs, 1 SeaFox ROV fully loaded, and an overhead camera apparatus of two different sizes (fish tank & bathrub / pool / river). The objective is to have a test bed (fish tank) setup with sufficient size to test out maneuvers and controls year round. Last year's design concept was too big to test except in the swimming pool - that was a mistake. With the three different classes of vehicles I have ample ability to play around and even stumble along on some other options like gliders and ballast pumps, sensors, and the like year round (until I get caught up with my software test bed / multiplayer games and writing my story...).
The SeaFox vehicle is most like the Squidlian. And I think after building a SeaFox I can then modify it and employ Squidlian advanced concepts. The Squidlian itself will need to be torn apart and parts salvaged. The design was too massive, too large and thus while transportable very underpowered. The futile attempts at completing it were just to get some success. Sometimes however, there's something call sunk cost and marginal valued returns of investment. Squidlian gave me a lot of nice lessons learned on subsystems, microcontrollers, and electronics but didn't get me underwater. So we'll go with the simpler vehicles and see what comes of those designs going forward.
To conclude for the day and get back to my final paper of the year here's a pretty cool article from AP on a glider style AUV. Yellow submarine to try again for Atlantic glideThe first glider was lost after it developed a leak, possibly from a biteAn
unmanned, nonmotorized glider can rise and dive, seeking out currents
that will carry it along without worrying about refueling. Whenever it
comes to the surface, it radios its findings to scientists. A second try
at sending the little yellow submarine gliding across the Atlantic Ocean
to collect scientific data from beneath the waves is about to get under
way.
Tuesday, April 7th 2009 Created a links site for maintenance
Saturday, January 17th 2009 Alas... more time has gone by and the ROV hasn't made it to the water. On 21 November of 2008, I presented successfully my AIAA Conference Paper - Underwater Vehicles as Spacecraft Simulators. This was the culmination of the efforts for 2008 - I had to fight tooth and nail to get a B- in my AME 525 math class, a nearly impossible feat. I had expected to get a C and needed a very high A on my final exam to pull of even a measly B-. Fortunately this did in fact occur and I not only moved through the course into my final semester, but also enabled being reimbursed for the class... no small economic feat with $4300 at stake.
So what of the Squidlian? With summer of 2009 I hope to get Squidlian into the water and taking some live images. I'm not sure whether plans of derivative vehicles will come to fruition since the amount of resources and time were so high. I'd prefer in the future to work with my desktop robots and perhaps even transition back to the fish tank ROV concepts. Smaller is definitely easier to deal with and much much less expensive. The goals will always be to learn something and learning things quickly and not dealing with trials and tribulations of wiring up various complex mechanisms really slows down projects... and doing math (seemingly completely useless math in a closed book closed notes environment) definitely makes the brain do weird things. I believe this week was the first I can say that I started to actually feel normal again.
Managing expectations through May 2009 I plan on working on finishing off my degree to a similar level of competency that I accomplished and the end of last semester. Upon getting two As or A-s, or perhaps a A and a B+, I will graduate with at least a 3.5 GPA enabling a pathway to go for a Ph.D. While that pathway may or may not be closing due to other priorities coming to light, keeping doors open is always a good idea. Regardless, robotics will continue to be low key in the upcoming months and while I hope to work on completing some of my later incomplete work such as the temperature sensor and vertical controls, I also plan to convert over a PS2 joystick for control of ROVs in the future.
Tuesday, October 21st 2008 Review of progress so far for the month:
Bob is going to be turned over for the rest of the work for the remaining items for this month to be completed in the upcoming days and weeks. I have to close up shop unfortunately to deal with my Engineering Analysis class poor midterm grade. Thus revealing my fears that this project should have been completed before classes starting in the fall. So for the remainder of time, I'm going to go through a close-out on my end completing the documentation for the parts and what not that I haven't finished and reviewing the code here and there so that I can remember what I was thinking when I return to it over breaks in the action. This effort will be captured in a larger documentation package than was presented at the Robotics Meet-up (34 pages). And will get into the aspects of future developments and details that were missing. I will also put the code into the "deliverable" form for configuration management purposes. All of which are to result in meeting the documentation requirements stated.
Documentation: 1. Commented source code (e.g. set of BS2 files), microcontroller(s) (e.g. 1- BASIC STAMP 2), compile method/compiler (Parallax Basic Stamp Editor v2.3), and platform (Windows XP). Source code comments must declare all variables used & intrinsic function calls (e.g. FREQOUT). 2. CAD files, design drawings, and/or images taken during assembly with dimensions 3. Bill of Materials / Parts List; costs; vendor(s) 4. Electronics schematics & circuit verbal description using IEEE symbology as much as possible 5. Discussion about tips on building the ROV, mistakes to avoid, or possible additions that could/should be added to make it better. 6. Video (if possible) of the robot in action to show what it can do and why anyone in their right mind should try to repeat the construction process
So new goals remaining for the period from today through 21 November:
After 21 November will be to finish off any of the loose ends and keep bugging Bob to get it in the water by year's end.
Sunday, October 1st 2008 How did it get to be October already!?! Well, I didn't make my schedule adjusted deadline for getting the Squidlian into the water (with propulsive force that is) by 30 September, but I suppose that's alright as we are being conservative and making progress. There really is not a concern about temperature until it gets cold enough to start generating condensation inside the vehicle due to a thermal gradient between the outside and inside. Regardless, I'm going to start a new feature for the PLog - Goals of the Month.
October 2008 Goals of the Month:
Successes of September:
Sunday, September 8th 2008 Got some help from my post on the Arduino forum on connecting to my Arduino with my Visual Basic GUI. It is under the subject "Visual Basic / Arduino Control serial connect".
My Post: (9/5/08) "I'm
somewhat new to the Arduino Diec. - been using it for 3 months. I've
read some of the board postings on the issue of the automatic reset via
the DTR that occurs when opening and closing a serial port as well as
some of the issues with noise induction closing the port early.
This resulted in getting some feedback from user Digger450 resulting in learning about the function before the port is opened: _port.DtrEnable = True
Also... 01 Aug 2002 "Adrian Hudd had that precise thought some five years ago and started designing BoatScrubber. Now he's looking for investors to help him get his innovative product to market. Peter Nash spends time with a scrubber."
Interesting concept of course, but the major problem is that the device being anchored to the floor of the marina has to operate in a highly variable environment that includes erosion, as well as difficulty in current for a boat to move through an area, and placement issues for variant marina configurations. A mobile solution seems to be more preferable so seems that we did think of that!
Sunday, August 24th 2008 New Squidlian updates including the first recorded video in the tub and pool!
Tuesday, August 12th 2008 Uploaded a series of Squidlian updates about new progress with the GUI, compass, and new purchases.
Sunday, August 3rd 2008 Uploaded a series of Squidlian updates over the weekend including the completion of the first LED protoboard array and its testing.
Tuesday, July 29th 2008 Tested the LED circuit on the breadboard. More info under the submarine project log.
Monday, July 28th 2008 Tested the voltmeter Bob assembled and also started working with the LEDs. More info under the submarine project log.
Friday, July 25th 2008 Found an interesting article on something called the "Wow" signal today in the news. Some astronomers received a very large signal that has yet to be explained. The potential was that it was a intelligent civilization sending a signal, we however have no idea if it is true or not as we could not A.) find the signal again to try and repeat the observation or B.) discredit the reception as accidental Earth background noise (radio, etc.).
http://www.bigear.org/6equj5.htm
Regardless I thought it was novel how they characterized the signals from using the individual characters from 0-9 and A-Z to indicate signal strength. I plan to do precisely the same thing both to control the Squidlian and also get data back.
In other news... Project Submariner is now Project Squidlian. And a major milestone was reached with being able to serially send commands through the MCU to the relay card to turn on and off the bilge pumps!
Wednesday, July 16th 2008 Received more parts from JAMECO - including batteries, LEDs, servo extension wire & cable ends. I also learned the important difference between a 'Gull-wing' configuration for the darlington transitor array vice a DIP configuration... that is the two transistor arrays I purchased for the relay card don't fit... thus, I screwed up. Fortunately the parts were only $1.30... unfortunately I had to switch to DigiKey and try again. Hopefully the new parts won't take long to arrive. Their purpose is to be used for hooking up to the microcontroller that will send the voltage signal (high) through the analog channels to trip the relay switches.
Thursday, July 10th 2008 Updated the Submariner project - woo! Surprise milestone complete! Bilge pump tested after the arrival of the power supply!
Wednesday, July 9th 2008 Updated the Submariner project - did some parts ordering & work on the tilt system and other updates.
In Warren, PA while at the local hobby shop with my dad I purchased a set of nylon gears (Stevens International brand) for $17 including a number of shafts with multiple pairs of like gears from 2" to 1/2" in size. The gears can be used for creating a tilt/pan camera system I'm considering for the Submariner Project.
http://www2.stevenshobby.com:5641/
I also purchased at $8 - 50% off (a much already reduced item that looks like it was made in the 1992) from EKI Electronics Technology Program - 0-15V (300mA)variable power supply kit. Looks like a fun trial at playing with a potentiometer and possibly providing a very cheap low-end variable power supply to replace the need for batteries (if it works). This will be a project for the Fall/Winter. Lastly I purchased some 1/16" music wire used for some other projects.
I also had the very amusing thrill of sorting resistors with my parents (my mom called the modulators). I sorted them by leading two colors in my plastic sorting box of fun (enclosure with dividers) and labeled the contents with masking tape. Hopefully the sorting will work out well. It compresses the number of things to look at from hundreds down to about 2-6 per bin, so that should save some time in the future. I also added the safety masking tape to the open/close part... to hopefully avoid future catastrophes... and also masking tape strips to combine like types of resistors so you can pull them off the tape. Putting them back on the tape will be a test of fortitude.
Also received my first dial calipers set from Amazon ($16.50) while I was away. They're good for 8" measurements and switch between SAE/Metric. So far so good!
Tuesday, July 1st 2008 Updated the Submariner project
Thursday, June 26th 2008 Updated the Submariner project's task list.
Monday, June 23rd 2008 Updated the Submariner project
Tuesday, June 17th 2008 Updated the Submariner project
Thursday, June 12th 2008 Found this great tutorial (and a neat DIY website to boot at http://diydrones.ning.com/) on "HOW-TO: Make your own PCB." It starts, "confused by all this talk about Eagle PCB files, schematics, "fabs" and all that? Until about three months ago, so was I. But with a lot of late nights and hand-holding from Jordi, I finally figured it out and now find the fast-growing DIY hardware world mind-blowingly cool. Now you can zip up the learning curve a lot faster than I did by checking out this excellent new PCB fabbing tutorial by SparkFun."
Here's the link: Beginning Embedded Electronicshttp://www.sparkfun.com/commerce/present.php?p=BEE-8-EagleSchematic
Regardless... how freaking cool is this?
Introducing ArduPilot: the world's cheapest autopilot!
The decision to port the Basic Stamp autopilot to Arduino turned out to be an unexpected opportunity to make something really cool. I've taken Jordi's open source RC multiplexer/failsafe board, and mashed it up with an Arduino clone to create "ArduPilot", perhaps the cheapest autopilot in the world. ($110! That's one-third the price of Paparazzi)
Here's what it is: A custom PCB with an embedded processor (ATMega168) combined with circuitry to switch between RC control and autopilot control (that's the multiplexer/failsafe, otherwise known as a "MUX"). This controls navigation (following GPS waypoints) and altitude by controlling the rudder and throttle. These components are all open source. This autopilot is fully programmable and can have any number of GPS waypoints (including altitude) and trigger camera or other sensors
As with the Basic Stamp autopilot, to make a fully autonomous aircraft you need to combine this navigation autopillot with a stabilization system, for which we turn to our old friend, the FMA Co-Pilot (off-the-shelf infrared sensors and control board to keep the plane flying level), which controls the ailerons and elevator. By using Jordi's MUX, which allows us to switch from autopilot to manual RC control in hardware, we gain several advantages over the Basic Stamp:
1) Because the switching isn't handled by the processors, we don’t need to drive servos in real time, which means we don't need stand-alone servo driver chips (thus a simpler board) 2) We also don't need “mirroring” subroutines to pass through servo commands in RC mode (simpler code) 3) Don’t need power regulator, since we’re using regulated output from the RC receiver (simpler board) 4) The built-in MUX failsafe is cheaper and simpler than using a stand-alone one. I've taken a quick pass at the schematic and PCB (Eagle 5.0 format) for ArduPilot, although this will evolve as we go through the hardware testing cycle: Schematic, PCB board. You can buy the board here. Arduino code coming soon.
All together, this can be the basis of a sub-$500 UAV:
Autopilot: --ArduPilot PCB: $10 --Boarduino kit + FTDI cable: $35 (subtract $17.50 if you already have a FTDI cable) --PicoSwitch: $20 (we'll probably build this in the board in the next rev)[UPDATE: Jordi's now incorporated that into the board above. It's a TinyAVR chip ("IC3", $2.75) and its associated programming interface jumpers ("ISP")] --EM-406 GPS module: $60 --Multiplexer chip (available as a free sample): $0 --8 Samtec TSW-108-25-G-T-RA right angle servo connectors (available as a free sample): $0 (That's a $110 autopilot, thanks to the open source hardware. By comparison, the Basic Stamp version of this, with processor, development board and failsafe board, would run you $300, and it's not as powerful)
Stabilization: --FMA Co-Pilot: $70 Plane and RC equipment: --Hobbico SuperStar (includes motor, battery and ESC): $109 --6-Channel radio system (with proportional control for channel 6, to calibrate FMA system): $109 --Three servos: $45
This is something definitely to consider in the post-sub era!
Arduino-Boe-Clone Made some progress with the ABC-bot for serial control also. Update here.
Wednesday, June 11th 2008 Project Submariner to be completed in 7 weeks. That means I have to get the software and electronics working inside of 5 weeks...(for a 2 week build) and two of which I'm going to be on vacation... 3 weeks! Arrgh! That means the Project: Boe-bot (updated Project: Boe-bot) play time has really got to slow down in order to assure progress... whether or not the li'l guy is cute or not is irrelevant! I do want to build walls for the robot test bed area as well as build some test stand apparatus to do wheel, maneuver, and sensor calibrations. I will turn to my CAD program to help out with that as I also want to eventually do the overhead sensing with video or image processing and perform remote guidance via the desktop (or laptop) computer. I need to also sketch up the Boe-bot chassis for a general exercise.
Progress with the OpenCV software goes slowly. My desktop machine doesn't seem to want to play nice with the Logitech Communicate Deluxe in OpenCV. I get a solid green screen instead of an image (but no error messages). On the laptop the Preview program written by Shivang works perfectly. The Canny Edge Detection program again displays the image perfectly but I get an inverted Canny Edge image. I emailed Shivang last night about the green screen of doom as well as the inversion problems. At this point the Preview is all we require to operate for submariner to be considered successful. We need to build a GUI around it however or at least enable some means to communicate via serial.
Communication
architecture quick note: consider
replacing MCU line USB A–A female adapter and USB A to USB B with a
single female USB A to male USB B adapter. Also - look at
MicroCenter for parts.
In other news... Robofish teams of underwater robots looks like some people are trying to do some formation work undewater. Neat stuff and the hardware looks slick - but they too have a long way to go. : )
Monday, June 9th 2008 Attended a weekend Meetup for Shivang's session on OpenCV (Computer Vision). We learned how to setup Visual C++ 2008 Express with OpenCV and run various tests using a simple webcam as well as a more advanced camera. Topics included edge detection, hue saturation sampling, center of gravity measurement, and laser range finding with video. It was a great talk and will be continued the upcoming Sunday. At the meeting I also quickly setup my secondary (off-robot) Board of Education [serial style with USB adapter and quick mini-to USB A cable] with BS2 to play with a continuous rotation servo. It took about 5 minutes and I was highly amused to get it working off a 9V battery so quickly. I used it to quickly demonstrate servo centering with the Parallax servos.
I updated the Submariner project (new communication architecture and GUI) and Boe-bot projects (PING range finder). New YouTube videos were uploaded for the Boe-bot also. These are essentially examples of what not to do...
Thursday, June 5th, 2008 I
went to the DCdorkbot group meeting. I showed up way late due to
some overly confusing Google maps directions when I should have just
went up
Parts
http://www.epotential.com/radiofreegenome/make-dc-motor-driver-board
Over lunch today I completed the documentation for the ABC bot build (Worksheet 2). ABC bot update for more details.
Also was pursuing the web and found a Arduino shield for Ethernet connections... amusingly a link noted that DCdorkbot had a member talk about a way to build a cheaper one *sighs*.
http://www.adafruit.com/index.php?main_page=product_info&products_id=83 with original source at http://ladyada.net/make/eshield/ and also found an interesting reference http://blog.makezine.com/archive/wireless/
Sunday, June 1st, 2008 Arduino Boe Clone goes to YouTube! My Logitech QuickCam Communicate Deluxe web camera came in from Amazon.com on Saturday. It's a really good camera with some nice features for auto lighting control and things of that nature. ABC bot update.
Friday, May 30th, 2008
Tuesday, May 27th, 2008 Project: Submariner sees life in Solidworks! The vertical pieces are housing to LED lights. The clear section in the front will be the housing for a rotating video camera. The middle section is to include the MCU unit and be accessible via a screw off (and hopefully watertight) connection. The rear section to the back is still in work, but will include another T connection and house the Ethernet cable and tether from the surface. The rounds may just be replaced with more Ts in order to provide more access such as inserting batteries or ballast into the 24" horizontal length. The end caps are not yet drawn. For overall scale this is assuming 4" OD PVC pipe with 1/8" wall thickness (TBR). The Ts are drawn at 6" long with sections of PVC in 4, 12, and 24" sections. One-inch insertion depth is assumed at every joint.
Monday, May 26th, 2008 ABC Bot Update Hello 2nd Robot.
Also go to start straightening out all my electronics parts with a new 4 tray organizer enclosure. The dividers will need to be cut in some areas. But overall the enclosures house the electronics components and most sensors well.
Saturday, May 24th, 2008 Created the Arduino Boe Clone (ABC)-Bot project. Updated all the subsystem documents and the Project: Boe-Bot and Project: Submariner items.
Friday, May 23rd, 2008 Also found out we won 1st place for the 2nd week in a row on Tuesday night sailing! woohoo! Go Blue Boat!
I finalized the Arduino Photovore Worksheet 1 for DC/MD/VA Robotics and Automation Team the link is available here. Goal was to provide a combination of the hardware we worked with the previous weekend that migrated into a working robot and learn how to do the stuff I did with the Boe-bot last August (see project Boe-bot) on the flashlight following. Now it's just a matter of putting the unit together on a chassis which my extra Boe-bot chassis looks like it wants some love. The required open source servo code is here... with my code here.
Some of the images...
Overall probably the best documentation I've made. I may submit it to the societyofrobotics.com website as a tutorial. The means of operation are remarkably similar to coding in PBASIC. I found PBASIC to be much shorter however in necessary code by far. The C code was about 10 times longer in total length and required going through and understanding the Servo class for object definition. My first program in C in ~7 years... Yippie!
I was most excited when I got circuit/code (after debugging the code) to work the first time Tuesday night... don't screw up those servos!
Things left to do for the photovore:
Tuesday, May 20th, 2008 Blue Boat strikes again! On a crossing tack to defeat the infamous Jurate! We're not sure how we did relative to the other boats yet.. but the ones that crossed before us were of lower score so if we crossed with enough margin, we win with the handicap.
Note to self... create a section in the C2DH on the Basic Stamp2, the Arduino, and the Propeller MCUs. Also need to finish those other pesky sections that are not uploaded...
Saturday, May 17th, 2008 Attended my first DC/MD/VA Robotics and Automation Team meetup where I used the Arduino for the first time (after getting it in the mail Friday afternoon!). Met Shivang, Melanie, and Steve while saw some familar faces from other MSRS meetup and hope to get to know people better. Melanie provided us with a nice overview on microcontrollers and introduced some concepts such as the Arduino programming variant of C, the servo classes dug up from open source, and running some example programs. Afterwards I went out and purchased a new USB cable for the Arduino at Radioshack, but later returned it. I plan to build an example robot using the components for the servos, photoresistors, and LED using the Arduino. I did have luck getting a second servo incorporated... now just have to get rid of that pesky serial interface and figure out the code.
Friday, May 16th, 2008
Wednesday, May 14th, 2008
Ordered the Solidworks Student Edition 2007-2008 for 2 year license ($91). Yey for USC student ID!
Registered for attendance of the DCdorkbot events for the homebuilt motorcontroller board ($20). Meetings are June 5th and June 19th.
Derek
also emailed me with a link for small computers http://www.logicsupply.com/
in the $300-500 range
Monday, May 12th, 2008 Ordered the Arduino microcontroller ($35) with the shield add-on ($16) from Sparkfun.com for ~$55 for the club meeting on the 17th.
Monday, May 5th, 2008 My freedom is granted to me Thursday evening. So I'll begin going into hard core software design mode Sunday night on the sub's remote interface.
Tuesday, April 29th, 2008 After the near brain collapse last Thursday morning at 2 am - I seem to be back on track. This past weekend I started playing with the Boe-bot again for the first time in two weeks. While I enjoyed the torture of getting my thermal control paper in on-time (or so I thought was on-time... especially when working on it over my 1st anniversary weekend...btw I love my Scoot!) I enjoyed the break-neck speed of doing 8 weeks of work in 2.5 days of nearly continuous work. What can I say... I'm a glutton for punishment.
Mini Grand Challenge Ah well, I digress - I’m playing around with a Ardunio / Basic Stamp 2 / Propeller hybrid concept to go ~45+ mph on a hacked RC 4x4 truck. It's a nitro based system (gas powered). So that would involve new power / propulsion system dynamics. It also uses (obviously) real motors instead of servos for the high speed performance, another fun alternative to explore.
The wheels are about 6" high for scale. That puts the vehicle at about 20" long and about 10" high. I'll have to review the competition website for the "Mini-Grand Challenge" competition led up by Melanie Vida, et al. to see if we can use this size vehicle. If we hack this successfully - I have no doubt that it would win, it's ridiculously fast and that's the mission objective... fast. A prototype vehicle for only $30 was also found at Toys 'R Us. This could be a cheaper means to get through the setup and minimize risk. The Traxxas vehicle would be really just to win with style.
A general concept of the vehicle could be an advanced dead-reckoning system with turn sensors. If you can detect you're in a straight away and maintain a straightness to the course - you should be able to accelerate to maximum speed with a pre-programmed nominal burst. The maneuvers would then go in probably batches in a queue with a predictor / estimator routine for when the next maneuver should occur. The 180 degree smooth maneuvers could be detected by watching a history of the compass begin to waiver as the vehicle senses the road cones for the turn. We'd have to watch out for the vehicle getting too ambitious at cone avoidance (bouncing back and forth between lanes) as well as running off the course between cones. I think a priori assumptions would work with a dead reckoning system here by way of accelerometer could work to speed up the robot.. Since it is known that the width of the lane is 1 m and the course loop is 1 mile (~1600 m) you could definitely reckon through some periods of sensing. A temporary history of the compass and perhaps some encoding (though this would probably be very difficult with a high speed wheel?) in addition to the accelerometer could help out a lot in this area. I would be concerned about the drift of the accelerometer over the entire course to do the job itself, so the ability to do some local referencing to a map would be very useful. Lasers would be best to get the object detection ranging and angle with a video camera. This fits in well with my grand vision to play with lasers anyway. I had talked to Dr. Pearce about using a pair of ultrasonics to help out with the 'lane' detection. He hypothesized a course where the cone density was sparse so it could be likely that the ultrasonics would return back a bunch of trash from surface clutter in addition to trying to find a cone at a notional interval. Laser is a yet another new technology to the program and the video camera would be a huge leap - but maybe a year too advanced. But the video camera is after all being included in the submarine project - so it might work out after all.
Computing - The Ardunio microprocessor could act as primary master with the BS2 taking up the slack in slave role(s) while the Propeller board farms out the tasks and handles additional loading itself. This is a pretty complex architecture, but it could compete with PC based systems in that it would be multi-core parallel processing while they may not be. With the sparse experience I have to date with the Ardunio and Propeller chips I have little background on their capabilities unfortunately- let alone how to network them all together.
The competition is in November with some trials going on perhaps in the summer. I've been informed that these may be waived. We'll see I guess! I should also look into seeing if SAIC would sponsor us (Ken, Bill, and I)- cause that would rock!
Paper - Performance Metrics for Intelligent Systems Workshop There's also a paper to be submitted for another topic... discussed perhaps tomorrow. Submission 29 May 2008. Acceptance is 27 June with final papers due 25 July 2008 and the conference 19-21 August. Paper topic submission will be the test bed.
Monday, April 14, 2008 Met up with the MSRS group in Reston this evening. Met some of the principals and had a good time learning about MSRS. Looks like it's what I was looking for with my projects as a service oriented architecture. This fits in nicely with the overhead sensor concept for the robot test bed, the beacon network, C2DH, and ROV projects. Other things will be more carefully constructed such as the sensors, thermal/power, structures & mechanisms, and propulsion systems. A upper level service can fulfill tasked missions through this architecture in a queue (FIFO for instance). So if there's tasking to go gather data on square X1 and X2 then these things can be sorted by priority or executed in FIFO or in a logical constructor all the operations research people get to play with. Ah well - time for homework.
Sunday, April 13, 2008 After celebrating Bill's birthday with Rock Band fun and hanging with Rob and Derek I finally finished the first draft of my 50 page paper for thermal control systems! woo! So I rewarded this by starting to play with the robot parts again specifically the eB500 Bluetooth module. I successfully connected from Windows HyperTerminal but still haven't verified connectivity from the Boe to the PC. It says it's connected, but the LED connection light doesn't come on in that direction, a very puzzling occurrence. None-the-less fun will be had eventually.
I'm planning on going to see the Microsoft Robotics Studio (MSRS) presentation in Reston by Dave the Microsoft Robotic's Studio guy! Should be interesting to see how it works and whatnot before getting it going with the Boe-bot in Dashboard mode. Once I get the Dashboard application up and going, then I can realistically figure out how to control the submarine ROV - which is this summer's critical work.
I also successfully built a control algorithm for a constant magnitude velocity device to home in on a target. I believe this to be a good approximation to the initial propulsion method we will be using with the ROV where it basically will be a binary on-off function of thrust. Once on, the craft will obtain a steady state velocity in relatively short order (I hope) and then the control algorithm to go hunt things in the field of view is on its way. I did it from a completely different perspective however where the position of the ROV is on a global map looking from above and the target is also noted. This takes the autonomy away from the craft's body frame and puts the control algorithm in a global map frame in (x,y,z) coordinates. Currently the algorithm is setup for 2D planar motion and has no minimal stand off distance setup, but these things will come into play in time. This whole project was just a proof of principal from the Follow-the-leader Boe-bot code that will be put into practice also this summer once the second Boe is up and running.
Monday, April 7, 2008 Uploaded a new set of background files in sensors and others where I've made contributions to the SoR website and I can log those things for future consideration. I'm beginning to think about setting up my own forum type application, not for public use per se but more for efficiency of archiving. I need a means to have my projects highlight the subsystems while having the sub-systems accessible. I'm looking for a matrix web architecture that will work in this manner.
I also drew a large series of concept description images that are not fully ready to go out into the world. These images are going to be embossed with a TBD watermark in the background (mostly so they don't escape into someone else's technical paper before I write mine). All well, paranoia reigns free.
I should be able to soon get the GUI started as I received my D-LINK bluetooth module for my PC today. This was the missing link for setting up the Boe-bot's to the computer designed interface as preparatory measures for this summer's sub and "completion" of phase one of the test bed.
The rendezvous and dock project will have a new concept. The depicted concept has the agent going into a bay for power. I think I'll try and build a set of these bays and have the agents start there and then return there at the completion of their mission. For a true R&D, the application will have to await further developments to the test bed platform - probably the fish tank version (though with the submariner project this summer the fish tank version will only occur this year if I'm very lucky in meeting this summer's goals!).
I'm also still on the hunt for a reasonably priced CAD program. I'm interested in the AutoDesk Inventor program with the 2 year student version. I need to figure out how they deal with 'students' that like to continue with their license but don't want the full professional edition (which is way overkill).
Tuesday, April 1, 2008 Ken stimulated me into a fun string of ideas yesterday - that a multi-agent system GUI should have system adjustable parameters that are updated in real time. Thus so a leader-follower formation system could be instructed to follow at different ranges. Seems feasible. This changes my thought process a bit and opens up the workspace from remotely operating and collecting data to changing the behaviors in real time.
I also stumbled onto the fact that the GUI will need to have an addressing function for each robot. Those pesky servos all rotate at different rates and what not, so accounting for their pulse-widths and times required to perform reasonably accurate basic dead reckoning maneuvers like turn right, left, back, forward, etc. So the GUI will have to have storage for these values with an address lookup. This also makes it a bit more flexible for add-on systems (though, I doubt I'll get any more Boe-bots after these two). But I suppose if I go down the road of building a few more 'cheap' bots, this would be a good means to control the suite of them. Regardless the common components of the motion system matter as well as making the robots setup for specific pins for setting up the FREQOUT and HIGH and LOW commands to work appropriately.
Ken also inquired about whether the leader would know that it was being followed or not. I didn't think about this aspect as how it would influence the behavior. The Parallax school of thought had been to have the leader go in the roaming mode and the follower in no doubt... following mode. But does it matter if the leader knows how far ahead it is? He gave the good example of turning a corner and the fact that the follower might slam into the corner if cutting it too sharply. I suppose I'll have to grok this a bit more. I updated sections for the Rendezvous and Dock, Maze, Follow-the-Leader, and Formation and Scatter projects in GNC and took on updating the Missions section slightly for posting images of the concepts. More will be uploaded over the weekend and the current ones slightly edited. I have to figure out how to deal with that pesky design problem where all my projects have the big elements and how to lay out the Plog for the big new Submariner project. Sunday, March 30, 2008 Well, I seem to have made it through midterms ok. 98% on one test and the other is TBD, but I presume I did well enough. I ordered a number of sensors and components for the initial summer project, but not yet a complete Bill of Materials. I did order all the Boe-Bot wish list items from Christmas including: Encoder, PING ))) with bracket, and the Bluetooth EB500 module. I also ordered an entire second Boe-bot (the Microsoft Robotics Studio version) with the Smart Sensors package to essentially mimic almost entirely (except the encoders) the functionality of the original Boe-bot. I downloaded Microsoft Robotics Studio (C#) programming to provide the basis of coding up a GUI interface via serial connection. I also went forward and ordered some refresher parts for the Boe-bot kit, 2 extra continuous rotation servos, some wire extenders, and the Parallax Propeller Education Kit. Ok, so that was a lot of money - but it was a solid investment in all the major sensors and hardware I want to play with for the summer for the beacon localization project. Pictured below is the integrated product with IR & PING sensors, encoders, and the Bluetooth wireless implementation.
This guy is going to be called Red-leader. I'm going to put a big red sticky on the back of the Bluetooth unit and have the 2nd Boe-bot follow it around in formation as it goes through the table top course. Then post a response on the A.C.E.S. Autonomous Convoy Engagement System in the societyofrobots.com forum. I'll of course update the Boe-Bot website in the future when this is more complete.
Separately from the Boe-bot projects I ordered a new Arduino microcontroller from Modern Device Company (moderndevice.com) and a TTL-232R USB to TTL Serial Cable. The product is called a Bare Bones Board Kit (Rev. D). The product is setup that the user solders together themselves and uses the Atmega168 chipset to control the sensors and drive system of your favorite mobile agent. I ordered this upon joining the DC/VA/MD Robotics and Automation Group (i.e. an area club) and they're having a build in May for this product. I'm going to try and build one myself first then order a second for this build event to make a nice one because I know the first one will probably turn into garbage. In the end I suspect that this board will compete with either the BASIC STAMP2 or the Propeller board for the slot aboard the Submariner.
Aside from receiving all the parts over the past couple weeks (and getting my new and actually working cell-phone) - this weekend was a major leap forward in the robotics projects. Bob Soli agreed to work with me and partially fund the Submariner Bravo project, a variant of the remotely operated vehicle originally proposed and designed by Jason Rollette (http://www.rollette.com/rovrev2/)
Additional material posted here
Sunday, March 2, 2008 Tips from the Society of Robots (www.societyofrobots.com) that will be utilized during this summer's build phase. I cannot realistically see that I'll get any serious work done on these projects until May. Grad school is just too time consuming with the 50 pg write-up for Spacecraft Thermal Control Systems and the software project and homework for Attitude Dynamics. But as a reminder to self I'm adding these tid-bits as requirements for documentation:
Inclusions: 1. Commented source code (e.g. set of BS2 files), microcontroller(s) (e.g. 1- BASIC STAMP 2), compile method/compiler (Parallax Basic Stamp Editor v2.3), and platform (Windows XP). Source code comments must declare all variables used & intrinsic function calls (e.g. FREQOUT). 2. CAD files, design drawings, and/or images taken during assembly with dimensions 3. Bill of Materials / Parts List; costs; vendor(s) 4. Electronics schematics & circuit verbal description using IEEE symbology as much as possible 5. Discussion about tips on building your robot, mistakes to avoid, or possible additions that could/should be added to make it better. 6. Video (if possible) of the robot in action to show what it can do and why anyone in their right mind should try to repeat the construction process (this is my add)
The goal of course is to write some of the discussion, conclusions, analysis into conference papers or other publishable items [even if for my own sake], so having these materials available is a generally good idea. Independent verification of any new work is only possible if the robot agent can be independently constructed. Furthermore, in the event of disaster like a robot defenestration by a jealous wife, this will aid in the rebuilding process. Not all projects will be published in this detail on this site, but initial projects will be. Amusingly enough, the author of the SocityofRobots website clearly stated that the members location for documentation was not a robot blog. So, thankfully... I've already got that taken care of... heh!
Monday, February 11, 2008 Overhaul time! The 8 new categories have been created, now of course how do I organize the site. Each individual robot will have these 8 categories mapped to it, but an overall capture of this information is in general useful - it appears that some things will have to be double counted in some cases. But the point is to highlight the technology in the subsystems and integrate it into a project, so what the hay.
Sunday, February 10, 2008 Well, I certainly haven't been updating this site in a long time, haven't I? After being immersed in heavy school-booking for the Fall semester and then emerging on the other side of the Christmas and New Year holidays, seems that some progress still got worked on but the site not updated. The Boe-bot has been re-built with IR emitters and detectors. I also worked with my dad to complete the Boe-bot course baseline for the project. Using the example from the book "Lasers, Ray Guns, and Light Cannons" I built an optical bench out of 2 x 3" and some recycled 1/4 x 1/4" peg-board to form a 2' x 4' test bed. The inside of which was painted flat black, and the Boe was tested working well in the arena, successfully avoiding the edges while doing laps! Perhaps I should build some little robot cars and have them race?
At any rate, I discovered a few things when performing my tasks. One of which is that the Hovercraft project is going to be put on hold indefinitely as well as the Poleclimber project. The PC Joystick interface is somewhat much further down on the list as well and the vector laser has now been re-defined. The web-interface has changed in scope as well. So really only the Boe-bot, Maneuver, Formation, Maze and Rendezvous projects remain.
The projects are going to be reformed over the next few days under the similar spacecraft system categories of Sensors; Guidance, Navigation, and Control (GNC) (of which Attitude Determination and Dynamics is a part); Communications (including Telemetry), Command and Data Handling(C2DH); Payload; Structures and Mechanisms; Power & Thermal Control; and Propulsion. As the entire point of these projects were to get me prepared for autonomous spacecraft design applications, this is much more appropriate and re-focuses the entire effort. Further, by using the sub-systems approach it enables a more modular breakdown of some of the elements and also formalizes the functions of the tasks. While some items will unavoidably have cross-over, this is a bit more organized.
Sunday, September 16, 2007 Updated the Boe-bot project page.
Tuesday, September 11, 2007 This weekend I'm planning on completing Activity #1 Building and Testing the IR Pairs, Activity #2 Field Testing for Object Detection and Infrared and Infrared Interference, Activity #3 Infrared Detection and Range Adjustments, and Activity #4 Object Detection and Avoidance in Lindsay's Chapter 7. The goals are obviously to begin playing with active IR sensors be it reflectors and receivers and determine how to sense signals through the processor, calibrate them, refine some calculations, and then apply the knowledge for object detection. This is a much different type of activity than the photoresistors and touch sensors since the touch sensors couldn't detect objects at range and the photoresistors didn't detect objects at all. With the eventual goal of navigating a maze, the obvious sensor choice thus far would be something that can detect at range and use information to navigate before causing harm to the robot itself or wandering needlessly down a corridor. The eventual goal is to develop the Vector Laser project to scan down the length of a detected wall to determine if you receive photons the whole way along the path. The objective being of course to determine if there was a break in the energy and thus add evidence that a different pathway exists. The sensor when coupled with angular information could then size the opening if desired. The other application of the vector laser sensor was to pin-point landmark locations and relative locations to other robots. In this way a single robot could perform the navigation for all the family or robots while the other can interact with their own set of sensors. At any rate - on to reading Elachi and van Zyl getting some Remote Sensing coursework out of the way.
Tuesday, September 4, 2007 After reading Alice in Wonderland over the holiday weekend, I realized that even classical literature also has much place when talking about robots. Alice, our heroine, drinks and eats her way into different sizes throughout the story in each case earning herself a unique perspective on her environment and enabling different forms of interaction. Similarly while on the beach, I was bemused at the difference of the giant bulldozer and the minuscule pail and shovel used for sand castle palaces. Of course the difference is obvious, but how much do we think about the variation in scale? I know from personal experience when walking around it's pretty typical that a small child will be barely missed by my big gawky body, all the while they're slithering through a mass of people like a snake in tall grass. In each case both as the child and as the grown-up we have our perspectives and usually neglect the other plane of existence. That of course is where robotics can have a social impact, where the disparate perceptions of their masters from their robotic gadgets of the future will have to negotiate on a level playing field to succeed.
Wednesday, August 29, 2007 [edited 5 September 2007] Artificial Intelligence: A Modern Approach 2nd Ed. by Russell and Norvig (p.35) when discussing what is better a robot which can clean a floor with mediocrity, that is it takes awhile to do and dirt can accumulate over portions where it already cleaned, or a robot that cleans with rapidly and sits at the power station for awhile waiting to recharge. "Which is better - a reckless life of highs and lows, or a safe but humdrum existence? Which is better an economy where everyone lives in moderate poverty, or one in which some live in plenty while others are very poor? We will leave these questions as an exercise for the diligent reader."
To this I am amused, because either A.) the authors are communist or B.) they prefer the tortoise over the hare or C.) have a thing against hippies, celebrities, or other prima donnas. True to form the hare according to the story barely lost and well, the communists got smashed to bits (perhaps); we all enjoy a good tale of a Hilton, Lohan, or Spears behind bars, and have also heard of the shooting star that burned so brilliantly but faded into the void; however, we also know that our sun is just an average mediocre star burning pretty consistently and enabling our measly existences to occur, that wild partying leaves for serious hangovers and perhaps some nasty regrets and or bruises, and consistency is (typically) preferable to solitary moments of brilliance. Ah well, slow and steady it is. [Following is an addition 05 September 2007.] I'm not sure what that says about communism by the way.
Tuesday, August 28, 2007 Robot Class discussion (Mobile Robotics: A Practical Approach, Ulrich Nehmzow (ISBN 1-85233-173-0)): Japanese Industrial Robot Association (JIRA) divided robots into the following classes: Class 1: manual handling device: a device with several degrees of freedom actuated by the operator; Justin's Examples: remote controlled car, crane, etc.
Class 2: fixed sequence robot: handling device which performs the successive stages of a task according to a predetermined, unchanging method, which is difficult to modify; Justin's Examples: single skill welding robot designed for a single product type with hardwired software (firmware)
Class 3: variable sequence robot: the same type of handling device as in class 2, but the stages can be modified easily; Justin's Examples: re-programmable assembly line robot
Class 4: playback robot: the human operator performs the task manually by leading or controlling the robot, which records the trajectories. This information is recalled when necessary, and the robot can perform the task in the automatic mode; Justin's Examples: a robot which uses a open loop guidance system where fixed commands are stored in the memory and execution agent (i.e. microprocessor, etc.) when stimulated to navigate
Class 5: numerical control robot: the human operator supplies the robot with a movement program rather than teaching it the task manually; Justin's Examples: reactive closed loop control systems
Class 6: intelligent robot: a robot with the means to understand its environment, and the ability to successfully complete a task despite changes in the surrounding conditions under which it is to be performed Justin's Examples: iROBOT's Roomba
One may notice going through this list that much is left to be desired from these descriptions and in fact sometimes they are contrary to the structure of robotics today. For instance, robots trained with teaching pendants (PC Joystick Interface) via human interaction then become intelligent because of the knowledge used in a neural network perceptron. So there's a mechanism for staging in a way of a single system. Fortunately the author of Mobile Robots also offers the Robotics Institute of America's definition: a robot is a re-programmable, multi-functional manipulator (or device) designed to move material, parts, tools, or specialized devices through variable programmed motions for the performance of a variety of tasks (i.e. Class 3+). From the influence of other texts I've come to think of a robot as: an intelligent agent in which performance is gleamed in an environment by actuation of software and/or hardware stimulated by sensory perception. The reason why I prefer my own definition is that it encompasses that PEAS process: performance, environment, actuators, and sensors and parallels the "Triangle of Agent, Task, and Environment" in which any cannot be considered independently within a robotic system. That is take a robot from the garage and put it in a bathtub and perhaps you'll see that not all agents can perform tasks as capably in every environment.
Monday, August 27, 2007 Updated the Boe-bot project page.
Wednesday, August 22, 2007 Updated the order of content due to Jeff's prodding. Updated the Boe-bot project page.
Tuesday, August 21, 2007 Added the Boe-Bot picture from this evening to share a bit about what the Boe-Bot is all about. Updated the Boe-bot project page.
Sunday, August 19, 2007 The Parallax Boe-bot is the first step into my robotic adventures. The goal of this project is to complete the full set of exercises with the Boe-bot kit. The Boe-Bot itself is an acronym (as many robot projects are) of Board-of-Education Robot. These kits are sold at www.parallax.com for reasonable prices with bulk discounts for classrooms (high school).
The following text is largely a review of the kit's process with some interjection. As such the learning steps were divided by the author of Robotics with the Boe-bot, Andy Lindsay (version 2.2) into 8 separate chapters:
The first chapter (Boe-bot's Brain) took you inside the STAMP 2 microcontroller chip running off of the PBASIC programming language (a Parallax variant of BASIC). The next chapter Servo Motors began as a primer into subsystem testing and being able to send commands to individual servos and understanding that they as hardware are not perfectly calibrated from the factory and that with use and variable battery strength, servo rates change. This chapter also proved to be fundamental at enabling things like fixed angle rotations and fixed length maneuvers over short distances in later chapters (i.e. dead reckoning). This chapter can be revisited a number of times as you learn more about the robots servos via demonstration and full up system testing.
The next chapter's set of exercises began the full assembly of the Boe-bot (takes about 45 minutes at best). In this process you further test servo speed and begin extracting empirical trends for use in programming. A start/reset indicator is also explored. In chapter 4 is where the serious robotic action actually begins. Here you finally get to write commands to execute maneuvers such as turning left, turning right, forward, and reverse as well as enabling sequences of commands through combinatory subroutines (such as back-up and pivot left). Further discussion is given on tuning maneuvers and also defining how to execute maneuvers such as tracing paths of squares, triangles, and circles.
Chapter 5 actually enables true robotic behavior where the robot can actually go out and explore in an environment and react to it. This is the definition of a true robot, one that changes its behavior or functional responses with the changing environment conditions.
To clarify, lower levels of robotics (robot classes) are robots such as issuing a fixed set of commands and executing them while not actually moving in a fixed environment. Their environment is generally well defined, extremely structured and controlled. As an example, an industrial robot in a car manufacturing facility performs a set of actions that are always the same for that type of vehicle in repetition. These actions are scripted by the position and timing of arrival of the parts they are to work on and no unexpected parts are found, nor are unexpected events to occur like Harry Potter running down the assembly line dodging Dementors or unexpected environments to interact with like molten lava streaming out of a fissure. At any rate, they do not require the extra levels of intelligence to perform their functions with precision and accuracy. Mobile robots, however, exist in a set of semi-structured uncontrolled environments where variation and uncertainty exist such as people, animals, other robots, rain, sun, wind, objects that are relocated due to the actions of another force, stairs that have not been encountered before, etc. All robots however are interlinked with their tasks and their environments.
The whiskers themselves as sensors allow for the robot to respond to tactile senses where an obstacle is detected (when it is of sufficient/appropriate height and aspect with respect to the sensor). You can see from this chapter that where the sensors are placed on the robot matters significantly when you attempting to avoid certain kinds of things. Hallways for instance usually are not perfect rectangular prisms. Instead they are composed of a large amount of variation like doorways, archways, baseboards, etc. each of different depths, widths, and heights. It's rapidly discovered by watching your creation attempt to navigate that there are a few problems that it encounters such corners and how to escape them but also when approaching walls at a shallow angle. Sometimes the robot will scrape along before the sensor is fully pushed and unfortunately will roll onto its side instead of turning away. Other obstacles like shoes are too low of a profile to be sensed by the whiskers and too large to be ran over by the wheels in the designed form. These sorts of issues initiate unique solutions such as potential redesigns in both software and hardware to respond better.
Chapter 6 enables some new types of sensor reaction behaviors and for the first time enables changes in the navigation processes due to information gathered at some distance from the physical robot itself. You can begin to appreciate the ability to predict an action at a greater distance allows for a more efficient response. You can also play very amusing games like: 1.) follow the light, 2.) hide in darkness, etc. where you can say what is preferred light or darkness and the robot will wander either toward or away from it, quickly, slowly, by turning completely or slightly, are the changes different with different strengths of light, etc. These are the types of decisions the roboticist can trade in the software/hardware dance of the robot design.
Chapter 7 and 8 are more advanced topics which involve and invoke different types of object detection at distances. You can learn about frequency sweeping, noise detection, following lines, following other robots, detect the edge of a table and many other applications. The important thing to consider is that you learn different sensor types, their capabilities, potential overlap in capabilities, potential disparities, and complexities associated with each particular sensor type.
What the selection does not assist in explicitly learning is how to fuse or combine sensor data from different phenomenologies to act on the information intelligently. An example is retaining the whiskers with the photoresistors. The Boe-bot can follow a flashlight but will avoid running into objects to do so by feeling for objects of close proximity, but this is a rare case where such a combination is effective. A better example would be when you mount sensors at different heights such as an ultra sonic range sensor at 6" height with IR transmitters and receivers looking at a distance 6" in front of the vehicle at the ground you can achieve two different pictures of objects ahead of the robot. One that some objects of different heights need to be avoided in different ways such as either going over or around them. Other objects may be even possible to classify them as being a type of object that can be plowed out of the way such as a ball, a shoe without a human foot in it, etc. But those types of intelligent processes take a more sophisticated set of mental functions (i.e. subroutines) and perhaps even training (artificial intelligence via neural networks, etc.). References:
Sunday, August 12, 2007 Beginning to setup the project pages. Looks like I have a lot of goals (and a wild imagination). But well, what's money good for anyways?
Saturday, August 11, 2007 Today begins the website content upload and structure. The point of the site is to document progress with robot projects and to act as a communication site to interact with other hobbyists with similar ideas or have experienced similar problems that I will undoubtedly encounter along the way. Cheers! |
Links to Projects: About the Author: An astronautics engineer, the author is interested in studying artificial intelligence and more specifically the intelligent agents created to accomplish specific tasks. The goal of his projects are to build a robotics test bed for experimentation and discussion amongst peers. |
|
Copyright 2009, Justin S. McFarland. All Rights Reserved. |