<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Steven Jens Jorgensen
Massachusetts Institute of Technology’14

“Mens et Manus” To pursue knowledge through hands-on learning.
Completed Projects Listing:
6.270 Robot
2.007 Robot
OmniDrive Full Scale Version
OmniDirectional Drive Prototype
On Going Projects Listing
SigEp Laboratory</description><title>Hands on Learning</title><generator>Tumblr (3.0; @handsonlearning)</generator><link>http://handsonlearning.tumblr.com/</link><item><title>2.007: A Carnival Journey</title><description>&lt;p&gt;&lt;img height="418" src="http://farm9.staticflickr.com/8166/7200284880_d9a69b667b_z.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;And here&amp;#8217;s my completed 2.007 Robot minutes before I sent it off to impound.&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm9.staticflickr.com/8025/7200469962_fa8c56b3ff.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;But how did it came to be!? &lt;/em&gt;I&amp;#8217;ll try my best to recount the events of designing and what went through my head&amp;#8230;&lt;/p&gt;
&lt;p&gt;The 2.007 game this year is carnival themed.&lt;/p&gt;
&lt;p&gt;Here is MIT&amp;#8217;s article this year &lt;a href="http://web.mit.edu/newsoffice/2012/2007-robotics-competition-0511.html" target="_blank"&gt;&lt;a href="http://web.mit.edu/newsoffice/2012/2007-robotics-competition-0511.html" target="_blank"&gt;http://web.mit.edu/newsoffice/2012/2007-robotics-competition-0511.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve always done robotics competition with a group or at least with another person. This is the first time I&amp;#8217;ll be designing, manufacturing and assembling the entire robot.&lt;/p&gt;
&lt;p&gt;Tasks include: &lt;strong&gt;pressing&lt;/strong&gt; a button to grab a ticket, &lt;strong&gt;blowing&lt;/strong&gt; up a balloon, &lt;strong&gt;hitting&lt;/strong&gt; the high striker and &lt;strong&gt;spinning&lt;/strong&gt; the ferris wheel.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the point distribution:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pressing+Grabbing ticket:&lt;/strong&gt; 1pt for every ticket&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blowing up a balloon:&lt;/strong&gt; 2pts/Liter&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HighStriker&lt;/strong&gt; - Max of 25pts for ringing the bell. Otherwise it is 10pts, 5ts, 3pts or 1&amp;#160;pt depending on where the slug ends.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ferris Wheel- &lt;/strong&gt;Score multiplier. (Max of x3 to current score. Depending on net angular displacement)&lt;/p&gt;
&lt;p&gt;Finally, there&amp;#8217;s a 30 second autonomous period where any points you earn in this period is bonus excluding the multiplier.&lt;/p&gt;
&lt;p&gt;&amp;#8230;&lt;/p&gt;
&lt;p&gt;As a veteran in robotics competitions, I immediately knew that I will be aiming for the most yield in points as well as do the multiplier. Naturally, I selected the &lt;strong&gt;High Striker&lt;/strong&gt; and the &lt;strong&gt;Ferris Wheel&lt;/strong&gt; tasks.&lt;/p&gt;
&lt;p&gt;To approach the high striker problem, I wanted to keep it as simple as possible. I thought doing a vertical hammer for the challenge was probably the simplest way to do the task.&lt;/p&gt;
&lt;p&gt; I didn&amp;#8217;t know how my robot would look like, and I wanted to keep the option of doing other tasks a possibility. So I wanted to save space as much as possible. A vertical hammer conserves space in the x-y plane in exchange for occupying the z-plane primarily.&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm9.staticflickr.com/8010/7200385776_37ce473a13.jpg" width="487"/&gt;&lt;/p&gt;
&lt;p&gt;It seems I&amp;#8217;ve been out of touch with CAD during the beginning of the semester because I could not create anything substantially interesting, creative, or something that looks like it can do the task.&lt;/p&gt;
&lt;p&gt;This was version 1 of the Pile Driver:&lt;/p&gt;
&lt;p&gt;I thought that I didn&amp;#8217;t really have to use strings, so maybe I can just use a 4-bar linkage instead?&lt;/p&gt;
&lt;p&gt;&lt;img height="477" src="http://farm6.staticflickr.com/5239/7200457746_2a759aa348.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;I tried making this in lab with just calipers and a drill press. I didn&amp;#8217;t get to take a picture of it because I was trying to get back into manufacturing mode. It&amp;#8217;s been almost a year since I last used a drill press. &amp;gt;.&amp;lt;&lt;/p&gt;
&lt;p&gt;To say the least, version 1.0 was a complete failure. The vertical displacement of the arm doesn&amp;#8217;t even go that high! Plus, if I were to make the arm longer, I will be occupying more space than needed. If I did try to go for this design, I will be occupying space in all 3 directions. My complete reason for doing a vertical hammer will be trashed.&lt;/p&gt;
&lt;p&gt;I felt very rusty. So I tried to attempt the problem again. &lt;/p&gt;
&lt;p&gt;This was version 2.0&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm8.staticflickr.com/7218/7200515470_b5bc987e7f.jpg" width="414"/&gt;&lt;/p&gt;
&lt;p&gt;I still felt rusty with my CAD, and I couldn&amp;#8217;t understand why I couldn&amp;#8217;t design anything properly. I wasn&amp;#8217;t happy with version 2.0 either. The structure is blocky with weak structural supports. It&amp;#8217;s like all my engineering experiences have suddenly disappeared in the first few weeks of the class. wtf right?&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s better, but it could be so much more&amp;#8230; I just didn&amp;#8217;t know what I was lacking. Anyway, it&amp;#8217;s about 5 weeks into the class already and my progress has been extremely slow. I needed to have something built by the next lab section. Being sick, loaded with other classes, and &amp;#8220;losing&amp;#8221; my CAD ability left no time for me to change this design for the class&amp;#8217;s milestone. So I just had to build it for the next meeting, get a grade and just scrap it when I have time.&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7229/7200530466_bdd71fd58a.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;There. I built it half-willingly. The structural supports aren&amp;#8217;t even there. There were so many problems with this build that I wanted to scrap it as soon as it came to be. Don&amp;#8217;t get me wrong, the sliders worked fine&amp;#8230; but I approached the problem incorrectly.&lt;/p&gt;
&lt;p&gt;Instead of building the structures before the sliders, I built the sliders and tried to constraint the structure. BAD MOVE. There was no way to salvage this build. Since I&amp;#8217;m scrapping it anyway, I might as well just trash the design.&lt;/p&gt;
&lt;p&gt;So&amp;#8230; on to version 3.0.&lt;/p&gt;
&lt;p&gt;What now? I had 2 tries so far and they&amp;#8217;ve failed miserably to my own expectations. It was difficult to desire high precision holes and work with band saws and drill presses. Robotics needs precision and unless I only use the lathes, mills, the waterjet or a 3D printer, I&amp;#8217;ll have a hard time gaining the precision that I want.&lt;/p&gt;
&lt;p&gt;I thought to myself that maybe I should just stick to designing everything in CAD. And for that matter, maybe I should just stick to a standerdized way of building things&amp;#8230; &lt;/p&gt;
&lt;p&gt;What better reason is there to abuse the water jet machine?&lt;/p&gt;
&lt;p&gt;So Version 3.0 had that in mind&amp;#8230;. But again, my CADding ability is still not with me.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what version 3.0 looked like:&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm8.staticflickr.com/7097/7200574296_0679dc5e1a.jpg" width="415"/&gt;&lt;/p&gt;
&lt;p&gt;Where is my CAD MOJO!?? As I made version 3.0, I realized I was using almost all of my aluminum sheets. This is not desirable if I want to create the rest of my robot with the abrasive water jet.&lt;/p&gt;
&lt;p&gt;Again, I did not like my 3rd design iteration. But I wasn&amp;#8217;t going to give up. I was increasingly getting frustrated because it&amp;#8217;s already spring break, and I don&amp;#8217;t have anything useful&amp;#8230;.&lt;/p&gt;
&lt;p&gt;And then i tried to do it for the 4th time:&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm6.staticflickr.com/5120/7200602660_eb291de654.jpg" width="362"/&gt;&lt;/p&gt;
&lt;p&gt;I thought I hit the jackpot. The design resonated with me, and I felt very confident about it.  &lt;strong&gt;I got my CAD Mojo back&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The design combined both abrasive water jetting and square stock machining. The water jet pieces were primarily there to accurately space critical dimensions.&lt;/p&gt;
&lt;p&gt;The first half of spring break was making this 4th design iteration. Now that spring break is half done, I needed to start manufacturing.&lt;/p&gt;
&lt;p&gt;It was a lot easier to manufacture things when you know exactly what you need to build:&lt;/p&gt;
&lt;p&gt;Instead of waiting for 2.007&amp;#8217;s system for waterjetting, I decided to just make it my own and used MIT&amp;#8217;s hobby shop water jet machine.&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm6.staticflickr.com/5463/7200603496_5ebf33fcac.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;I then plotted the holes on the square stocks very carefully and assembled the main pile driver structure.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5447/7200603376_7449085a57.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Assembly was a huge pain&amp;#8230; But in almost no time, i managed to finish the primary structure of the pile driver.&lt;/p&gt;
&lt;p&gt;I had a lot of problems with tolerances, as I seem to always miss a few thousandths with the water jet&amp;#8230; Particularly this unique triangular bracket:&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm8.staticflickr.com/7222/7200602586_982c22d354.jpg" width="468"/&gt;&lt;/p&gt;
&lt;p&gt;This holds the pile driver tower up and I had a lot of issues when I forced myself to make the slots fit in and work. Vincent Kee told me that it doesn&amp;#8217;t seem as strong as a regular L-bracket&amp;#8230; Vincent was right and I would soon be proven wrong (much later into the semester).&lt;/p&gt;
&lt;p&gt;For now, I went ahead and finished other stuff:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7212/7200652990_a45fd7f295.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;This was the hammer with a rubber end. The carrier is an aluminum square stock. Again, I waterjet an aluminum piece to connect them together. It was completely unnecessary to use the waterjet like that I know, but you know what? I might as well since I&amp;#8217;m on the machine anyway.&lt;/p&gt;
&lt;p&gt;Now that my hammer was up, I also needed to make the gearbox that will physically pull up the hammer:&lt;/p&gt;
&lt;p&gt;&lt;img height="421" src="http://farm8.staticflickr.com/7098/7200603144_07c4a4cdf3.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a 9:1 gear reduction. (bBig Gears are 36 tooth and small gears are 12 tooth).&lt;/p&gt;
&lt;p&gt;The white cylinder at the left end is a pulley. The idea is that the hammer is reloadable. BUT HOW? There&amp;#8217;s a gapped tooth on the 36tooth gear connected to the 12 tooth output. When the output spins to a gapped tooth, the final output shaft free spins as the hammers tries to pull it down.&lt;/p&gt;
&lt;p&gt;As for the shafts, they are a combination of hex axles with .25in diameter ends&lt;/p&gt;
&lt;p&gt;Anyway&amp;#8230; After much turning with the lathe, here&amp;#8217;s &lt;strong&gt;version 1.0&lt;/strong&gt; of the gearbox:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm6.staticflickr.com/5198/7200681518_2638c95f90.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;I think I did not account for the material properly because I had to use washers on top of the stand offs that I turned down&amp;#8230; but there&amp;#8217;s no point in changing this now since time was winding down.&lt;/p&gt;
&lt;p&gt;Ok&amp;#8230;. so I have part of the pile driver built, part of the gearbox built, now I need to start &lt;em&gt;designing&lt;/em&gt; the drive base&amp;#8230; &lt;/p&gt;
&lt;p&gt;I&amp;#8217;m very behind in the class&amp;#8230; but I&amp;#8217;m betting/hopping that my ridiculous amount of time spent on CADding will be paid off.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s version 1.0 of the drive system:&lt;/p&gt;
&lt;p&gt;&lt;img height="401" src="http://farm8.staticflickr.com/7077/7200602886_016b32e173.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt; It was a rough sketch with no screws, but I didn&amp;#8217;t like how I had to create more gearboxes to make the drive system work&amp;#8230; So I needed to revamp it.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s version 2.0 of the drive:&lt;/p&gt;
&lt;p&gt;&lt;img height="430" src="http://farm8.staticflickr.com/7071/7200721246_64d6c8739e_z.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;I removed the gearbox and made it a 1:1 gear ratio. It has a very low drive base so that I can maximize my 12&amp;#8221;vertical limitation.&lt;/p&gt;
&lt;p&gt;A closer look at the 1:1 direct drive module:&lt;/p&gt;
&lt;p&gt;&lt;img height="499" src="http://farm6.staticflickr.com/5460/7200822306_6a3810afba.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;A hex axle connects with the wheel. The wheel connects to the servo arm. The hex axle has a 0.25in shaft diameter to support the wheel on both sides.&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7087/7200867028_abb256e444.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;I really dislike working in a machine shop without have any idea what to do. But now that my robot is slowly coming together in the CAD, I knew exactly what tools to use to make the drive system relatively quickly.&lt;/p&gt;
&lt;p&gt;Back to waterjetting:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7217/7200744848_c6fa4b0a27.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;And here are the awesome waterjet pieces:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm6.staticflickr.com/5311/7200744272_5b4f2f016d.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;The ABS plastic makes a great stand off. I was getting really tired of making my own stand offs with an aluminum axle, so this was a nice change.&lt;/p&gt;
&lt;p&gt;Assembly for the drive modules didn&amp;#8217;t take long either:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5447/7200744050_58c5aa6aea.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm6.staticflickr.com/5349/7200743816_3dab88183a.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;Alright. Now that I have my modules together, I can finally assemble them all into a robot:&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm9.staticflickr.com/8165/7200773324_0f44e4afd2.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;First&amp;#8230;. I cannot tell you how painful it was to assemble the robot. There were way too many sharp edges that I should have fillet or filed. I should have really thought about designing for assembly. I think you just get into CADding so much that you forget that your fingers have to go in there somewhere to put the parts physically together.&lt;/p&gt;
&lt;p&gt;Now that my 2.007 project is actualky starting to look like a robot&amp;#8230; I couldn&amp;#8217;t wait to try the hammer!&lt;/p&gt;
&lt;p&gt;I really should have done testing much much earlier than doing it now&amp;#8230; And only now do I realize how naive of me to not even do any testing..&lt;/p&gt;
&lt;p&gt;So what happened? Remember that my output gear was a 12tooth? After 2 tries with the hammer, the piece was destroyed because it didn&amp;#8217;t have any structural strength.&lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm8.staticflickr.com/7240/7200774288_9e1af188d1.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;Also&amp;#8230; I realize that I didn&amp;#8217;t really support my input gear&amp;#8230; After a days worth of machining I have a new gearbox:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5324/7200775386_994c326066.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Now that looks much much better&amp;#8230;&lt;/p&gt;
&lt;p&gt;I tested it once, and it worked&amp;#8230; Although I don&amp;#8217;t know if it can achieve the maximum 25 points that I&amp;#8217;m aiming for. I figured that because my design is tunable, in that you can change the number of springs and the ending position of the hammer, I should be able to find the right configuration that will hit the high striker.&lt;/p&gt;
&lt;p&gt;But I needed to start designing my ferris wheel mechanism. I really need to make sure that I get it right the first time so again I&amp;#8217;m relying on Solidworks to do my &amp;#8220;theoretical testing&amp;#8221;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s my ferris wheel arm attempting to spin the ferris wheel.&lt;/p&gt;
&lt;p&gt;&lt;img height="311" src="http://farm8.staticflickr.com/7219/7200875890_26317fc280.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;I was satisfied with how it was working on CAD.&lt;/p&gt;
&lt;p&gt;Since I was really getting back into CADDing very quickly with satisfactory results, I did this tower in one try:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7218/7200832988_d5ba8d5a12.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a mechanism attached to a ratcheted four bar linkage. The spinning mechanism also had its own ratchet.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a close lookup of the ratchet deisgn:&lt;/p&gt;
&lt;p&gt;&lt;img height="289" src="http://farm8.staticflickr.com/7228/7200850488_cf98f8b482.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;CAD works. &amp;lt;3.&lt;/p&gt;
&lt;p&gt;Finally&amp;#8230; I have a 100% complete CAD of the robot:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7100/7200857500_8a18883ec1_b.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;All that is left is to finish manufacturing everything&amp;#8230;&lt;/p&gt;
&lt;p&gt;I went back to water jetting, and because I had a lot to do, I completely forgot to take pictures&amp;#8230; sorry. But&amp;#8230; I do have this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5348/7200866336_6c7887a730.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;I spent so much time on the water jet that my accumulated minutes was ~112 minutes. Woah. That&amp;#8217;s around $224.00 or $336 if the department funds it&amp;#8230; Thankfully they said they will fund it. PHEW.&lt;/p&gt;
&lt;p&gt;Alright&amp;#8230; Then I had to make a bunch more stand offs for the ferris wheel mechanism&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7224/7200866754_87520c680d.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;It really did take a long time to finish. And this is not even all of it. I also had to turn down the spacers and remake them because of measurement errors&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm9.staticflickr.com/8001/7200866522_c01212af7a.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;I now have reached the point where I am completely done machining the robot.&lt;/p&gt;
&lt;p&gt;I did the finishing touches on the drive base by connecting the timing belt threads:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7243/7200910198_6c67798b02.jpg" width="500"/&gt; &lt;/p&gt;
&lt;p&gt;The Ferris wheel tower goes up:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5468/7200910076_f41819122c.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Assembled the ferris wheel spinner: &lt;/p&gt;
&lt;p&gt;&lt;img height="500" src="http://farm6.staticflickr.com/5240/7200909950_ab59f5c585.jpg" width="375"/&gt;&lt;/p&gt;
&lt;p&gt;I wasn&amp;#8217;t done just yet&amp;#8230; I still needed to make the VS-11 Servos continuous so I quickly took them apart and removed the mechanical tab which prevented it from spinning 360degrees.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5460/7200909840_54b437109f.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;And you just take this gear and remove the mechanical tab:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7093/7200909512_f65070faf0.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;NOW&amp;#8230;. all the hardware is done. There&amp;#8217;s 2 days left before impound and I was thinking I could pull it off.&lt;/p&gt;
&lt;p&gt;Assembly again was a real pain&amp;#8230; but after much work it&amp;#8217;s finally together completely:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm8.staticflickr.com/7234/7200937898_6182429fa8.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Ahh yes&amp;#8230; Finally&amp;#8230; I quickly wired everything, and programmed it. I have much experience with servos and motor drivers that it wasn&amp;#8217;t really a challenge to put them together.&lt;/p&gt;
&lt;p&gt;Also, we were using a PS2x controller so programming was really easy for me since I did that for my UROP last summer when we worked with making the omnidrive robot.&lt;/p&gt;
&lt;p&gt;For final touches, I labeled the robot&lt;strong&gt; &amp;#8221;Orthanc&lt;/strong&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;strong&gt;Barad-dur&amp;#8221; &lt;/strong&gt; in spirit of FIRST robotics and labeling your robot as well as in spirit of Lord of the rings and the two towers. =D&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7072/7200958692_d3c4e96a3b.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;The MIT Copy Tech is a great place to get laminated labels. :]&lt;/p&gt;
&lt;p&gt;By impound time, my robot was drivable and could do the tasks that I wanted&amp;#8230; However, it wasn&amp;#8217;t do them so well. I only scored 1&amp;#160;pt during seeding cause I thought the hammer wasn&amp;#8217;t working.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So how was the competition? It definitely gave me the robotics competition feeling to say the least.&lt;/p&gt;
&lt;p&gt;Just like FIRST, there&amp;#8217;s a place where the robot resides:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm8.staticflickr.com/7072/7200973364_00c1d1ac98.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;The competition floor is captivating and beautiful:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm6.staticflickr.com/5450/7200973136_6150fb5dcc.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;And finally, the people in it make it super fun and amazing!&lt;/p&gt;
&lt;p&gt;&lt;img height="375" src="http://farm9.staticflickr.com/8150/7200972940_1b067f9d8e.jpg" width="500"/&gt;&lt;/p&gt;
&lt;p&gt;(The guy on the far left wearing an orange shirt is professor sungbae kim. He&amp;#8217;s one of the leading roboticist in the world. The cheetah robot and stickybot for example).&lt;/p&gt;
&lt;p&gt;&amp;#8230;&lt;/p&gt;
&lt;p&gt;During the competition I was eliminated on the first round after I scored 5 pts. I wasn&amp;#8217;t paying attention to the competition so I misfired my hammer twice. By my 3rd try, there was no time left to do the multiplier. Oh well&amp;#8230;&lt;/p&gt;
&lt;p&gt;I took the class with an arrogant attitude and that definitely back fired. I couldn&amp;#8217;t even CAD for the first 2/3&amp;#8217;s of the semester for some reason&amp;#8230; Was I too sick? Or maybe I was really burned out from IAP for working 18 hours a day? I wasn&amp;#8217;t sure&amp;#8230; But 2.007 definitely was a big learning experience surprisingly.&lt;/p&gt;
&lt;p&gt;Also, I&amp;#8217;m glad I got beaten out completely. If MIT&amp;#8217;s 2.007&amp;#8217;s best student is me, then the world is in trouble because I have much to learn.&lt;/p&gt;
&lt;p&gt;You can watch the full competition here: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://amps-web.amps.ms.mit.edu/public/courses/2/2.007/2011-2012/finals/" target="_blank"&gt;&lt;a href="http://amps-web.amps.ms.mit.edu/public/courses/2/2.007/2011-2012/finals/" target="_blank"&gt;http://amps-web.amps.ms.mit.edu/public/courses/2/2.007/2011-2012/finals/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am just glad that my robot turned out exactly as how I wanted, it could be better, but it is what I designed:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm6.staticflickr.com/5454/7201022508_ef1d6ed9ce_z.jpg"/&gt;&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/23088432281</link><guid>http://handsonlearning.tumblr.com/post/23088432281</guid><pubDate>Tue, 15 May 2012 00:31:00 -0400</pubDate><category>completed</category><category>2.007</category><dc:creator>stevenjens</dc:creator></item><item><title>2011: 6.270 Robot</title><description>&lt;p&gt;Since I&amp;#8217;m trying to make an online portfolio of things I&amp;#8217;ve made, I might as well preserve my team&amp;#8217;s 6.270 robot from the 2011 competition.&lt;/p&gt;
&lt;p&gt;My teammates, Matt Times and Naomi Schurr have done most of the writing below. My only contribution was the programming and strategy sections.&lt;/p&gt;
&lt;h2&gt;The Robot: Pac-Man&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img align="middle" height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/5286162.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;The winning robot of the 2011&amp;#160;6.270 competition!&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;&lt;br/&gt;&lt;strong&gt;Quick Specs:&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;   2-Wheel Tank Drive w/ 125:1 Gear Ratio&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;   Motor Driven Intake Roller w/ 125:1 Gear Ratio&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;  Continuous-Servo Driven Chain Lift w/ 1:1 Gear Ratio&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Below the Cardboard&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/4093756.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;&lt;strong&gt; Overview of system: &lt;/strong&gt; Rollers in front draw tennis balls onto tray.&lt;br/&gt;&lt;br/&gt;Elevator system in back lifts entire tray to rift height.  Rollers reverse to score balls.&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Starting Position&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="333" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/9470928.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Roller Arm begins vertically to meet starting size restrictions.  Motion of robot as match begins causes roller arm to fall to collection height.&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Tray Specs&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="333" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/2521440.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;&lt;strong&gt;Sensors&lt;/strong&gt;: Tray has two photogate sensors to ascertain possession of a ball.&lt;br/&gt;&lt;br/&gt; Gray and black plates on green surface are angled slightly, preventing tennis balls from getting trapped at the back of the tray.&lt;br/&gt;&lt;br/&gt; Cutouts from side of tray allow casters to rotate freely without interference.&lt;br/&gt;&lt;br/&gt; Black axle with gray collars serves as hard mechanical stop for roller arm.&lt;br/&gt;&lt;br/&gt; Yellow and red vertical beams guard against tennis ball loss on sides.&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Roller Arm and Tray Mount&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="333" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/9222596.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Bound three-gear system used to attach carriage to chain.&lt;br/&gt;&lt;br/&gt; Black axle in center allows for rotation of roller arm.&lt;br/&gt;&lt;br/&gt; Roller arm is currently in position, resting on hard-stop.&lt;br/&gt;&lt;br/&gt; Continuous servo motor drives chain on 1:1 ratio.&lt;br/&gt;&lt;br/&gt; (Notes: Despite various mounting methods and gear ratios, the regular motor was unable to raise the lift.  The continuous servo provides the necessary torque, but requires additional programming, as the stop value tends to drift.)&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Rollers&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/6762079.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Because the rollers span the front of the robot, relatively little precision is needed to collect tennis balls, simplifying programming.&lt;br/&gt;&lt;br/&gt; (Notes: The Roller Arm was orignally mounted lower, such that golf balls would also be taken in.  Theoretically, the Roller Arm would pivot up when encountering a tennis ball to accommodate its larger size.  This generally worked, but sometimes the torque required to bring in a tennis ball at the low height was too great for the motor.  In the current iteration, the Roller Arm sits at a height that is incompatible with golf balls, but optimal for tennis balls.)&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Roller Gearbox&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/6336951.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Gear ratio is 125:1.  Motors are very fast, and torque is needed more than speed to intake tennis balls.&lt;br/&gt;  (Notes:  When the rollers contacted a wall, they would start to roll the entire lift arm up the wall, releasing tennis balls.  After the failure of various front guards, the motor speed of the roller was reduced to correct this issue.) &lt;br/&gt;&lt;br/&gt;&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Tray Height Control&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/1125828.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;&lt;strong&gt;Sensors:&lt;/strong&gt; 2 Limit switches to bound the maximum height the tray can go and the minimum height it should go.&lt;br/&gt;Limit switch at top of lift’s travel allows lift to be held at rift height.&lt;br/&gt; Another limit switch at the bottom of the lift’s travel allows the tray to be stopped at ground level.&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Tank Drive&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/7838737.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Two independently driven wheels, gear ratio 125:1, large wheels. A higher drive gear ratio provides more than enough torque to move the robot. To compensate for RPM lost in the motor, the size of the wheel was maximized to give the greatest possible speed for a given torque.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Caster&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/3386982.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Two casters support front of robot.&lt;br/&gt;&lt;br/&gt; (Notes: Casters have a relatively large footprint, but the two in combination gave the support needed for a heavy front.)&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Electronics&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="333" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/312880.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;Happy Board and Battery provide weight in back of robot to counteract heavy Roller Arm.&lt;br/&gt;&lt;br/&gt; Lower Limit Switch and gyro are also visible.&lt;/div&gt;
&lt;hr&gt;&lt;div class="paragraph editable-text"&gt;&lt;/div&gt;
&lt;h2&gt;Encoder&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/2784052.jpg" width="250"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;The encoder is mounted on the bottom of the robot at the center of rotation to measure the forward distance traveled by the robot.&lt;/div&gt;
&lt;hr&gt;&lt;h2&gt;Programming&lt;/h2&gt;
&lt;p&gt;&lt;span class="imgPusher"&gt;&lt;/span&gt;&lt;img height="243" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/826323425.jpg" width="248"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="paragraph editable-text"&gt;The robot was programmed under C with built in joyos libraries to give compatibility with the Happy Board microprocessors.&lt;br/&gt;&lt;strong&gt;Overview of Code Structure:&lt;/strong&gt;&lt;br/&gt;    The code runs on 3 main threads: &lt;strong&gt;umain&lt;/strong&gt;,  &lt;strong&gt;navigation_loop, articulation_loop&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;     umain: &lt;/strong&gt;Sent high-level commands such as MoveToPoint(x, y, speed), TurnToPoint(x, y, tolerance), MoveStraight(x,y, speed), and DeliverBalls(). Each function takes in the given arguments, and simply passes the values to the other threads using global variable assignment. For example, TurnToPoint(x, y, tolerance) takes in the arguments x and y, calculates the theta and puts this value in a global variable called desired_theta. The global variable can then be accessed by other threads such as the navigation_loop or the articulation_loop, and each separate threads can act accordingly.&lt;br/&gt;    &lt;strong&gt;navigation_loop: &lt;/strong&gt;This thread runs in the background and simply acts on any value passed by umain. Going back from the previous example, once desired_theta gets a new value from the inputs in umain, the navigation_loop gets updated and will move accordingly until the desired state is achieved. (In this case, turning to a point). Once the state is achieved, the navigation_loop will stay put doing nothing until umain tells it to do something else. The advantage of tjis multi-threading programming is that while the navigation_loop acts on the background, umain can freely do other things such as planning the next moves, tracking the movement of the targets, etc.&lt;br/&gt; &lt;strong&gt;articulation_loop:&lt;/strong&gt; Like the navigation_loop, this thread acts on the background and waits for any command from umain. For example, if umain calls a function StartIntakeRollers(), the articulation_loop will change its state and run the intake rollers until umain tells it otherwise.  Likewise, if umain calls LiftTray(), this thread will lift the tray until it reaches a desired state usually indicated by a sensor a timer, or umain. In the same way, placing the articulation_loop in a different thread gives umain more flexibility.&lt;br/&gt;&lt;strong&gt;Navigating the Playing Field:&lt;/strong&gt;&lt;br/&gt;    &lt;strong&gt;PID controllers:&lt;/strong&gt; Since the robot uses a 2 wheel tank drive system, the robot doesn&amp;#8217;t necessarily drive straight even if they get provided the same output. For example, setting both motors at a value of 150 will cause the robot to drift at an angle over time. This is usually caused by the slight differences between the two motors. To fix this problem, a Proportional, Integral, and Derivative (PID) controller is used. In this robot, a gyroscope is used to indicate the current heading of the robot. Using the gyroscope, we can make the robot go relatively straight at the correct heading. The PID controller provides the proper correction amount to each side of the motor and tries to minimize the error to 0 thereby retaining a constant heading. Since the motors get the proper correction amount, the robot moves relatively straight towards the desired heading.&lt;br/&gt;   &lt;strong&gt;Localization: &lt;/strong&gt;To get somewhere, you need to know where you are first. In previous years, navigation was done by dead-reckoning. In essence, if you know how far you&amp;#8217;ve gone and in what angle, you know your x and y coordinates using simple trigonometry where x = cos(theta) and y = sin(theta). This year, we have found that the Vision Positioning System (VPS) overhead gives a precise location of our robot with little to negligible latency.&lt;br/&gt;   &lt;strong&gt;Navigation: &lt;/strong&gt;Now that the robot&amp;#8217;s position is localized, the robot can now move to specified points in the playing field. Our robot has one primary function for moving around and it&amp;#8217;s called MoveToPoint(x, y, speed, tolerance). MoveToPoint actually breaks down into TurnToPoint(x, y, tolerance) and MoveStraight(x, y, speed). For example, if the robot is currently localized at pt (0,0) and I want it to move to pt (2, 2), the robot will &lt;strong&gt;1st: &lt;/strong&gt;Calculate the heading using the given x and y points which is 45 degrees. &lt;strong&gt;2nd&lt;/strong&gt;: The robot will turn to the point (which is basically turning to the pointed heading). by rotating each wheel opposite of each other &lt;strong&gt;3rd:&lt;/strong&gt; The robot calculates its distance from the point, and finds out that it needs to travel 2*sqrt(2). &lt;strong&gt;4th &lt;/strong&gt;The robot will then MoveStraight(2, 2, speed). Using the encoders, the robot will know how far it needs to go. The encoders record how much the wheels have spun. Using a conversion factor, the encoders can tell the robot if it has gone a distance of 2*sqrt(2). If it has, then the robot will stop moving. If we localized the position again, the robot should be at pt (2,2) at a heading of 45 degrees.&lt;br/&gt;&lt;br/&gt;Using a simple TurnToPoint then MoveStraight to point function, the robot gets to where it needs to be. Granted, this worked for this competition because collision between the opponent and your robot was impossible. Which means that so long as the robot is not hitting anything, it can move to a desired point without fail.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Finding Proper Ball Targets:&lt;/strong&gt;&lt;br/&gt;Before the robot moves to a certain target, it needs to know which are tennis balls and which are golf balls. In the beginning before making any commands, the robot has a SortBalls function. It takes all the objects in the field and figures out which are tennis balls and golf balls based on the radius of the ball. It then checks if it has the same sign as our y coordinate. If it has, then that ball is in our field and its ID is stored into a new array. A list of balls in our side of the field is then generated. The robot then runs a for loop program which figures out which is the closest ball using the distance formula. The ID of the closest ball is then given and it takes it back to the original list of objects in the field. It&amp;#8217;s x and y is calculated at that instantaneous moment, and the robot will move using the MoveToPoint function. &lt;br/&gt;&lt;br/&gt;The ball may move, but this is negligible. If the robot misses the point, the robot will repeat its SortBalls function and this entire process and go to the new point specified. In addition, tennis balls have more friction and take quite an effort to move. From mock-competitions, the tennis balls hardly moves at all unless its hit by your robot. So in essence, taking its instantaneous x and y point is a good approximation of its location.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Capturing the Balls:&lt;/strong&gt;&lt;br/&gt;To capture the balls, the robot has its intake motors always ON in a direction which forces any tennis ball to go in and not out. More often than not, tennis balls get in by luck and the robot gets a free tennis ball even without having to navigate to a certain point in the field.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Delivering the Balls:&lt;/strong&gt;&lt;br/&gt;Likewise, to deliver the balls, the intake motors have to spin the opposite way forcing the balls to go out.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Ball Detection:&lt;/strong&gt;&lt;br/&gt;There are two breakbeam sensors inside the tray. If either of them gets broken, the robot will realize it has a tennis ball and will immediately deliver the ball. We realize that this is an inefficient method, and a better way to have done this is to try to capture at least 2 balls before delivering the balls.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;TimeOuts: &lt;/strong&gt;&lt;br/&gt;One of the most important part of the robot&amp;#8217;s code is a timeout. This is a code which prevents your robot from doing the same exact thing over and over again without producing results. For example, if your robot wants to turn to a certain point, but is wedged in a corner, the robot will forever try to turn and will never get to its point. This causes motors to burn out and die. In our robot, we have 2 simple timeouts. Our robot&amp;#8217;s timeout occurs on either TurnToPoint or MoveToPoint.&lt;br/&gt;    TurnToPoint timeout: For turning to point, we gave the robot 3 seconds to turn. If it doesn&amp;#8217;t turn within 3 seconds, then it has to move back.&lt;br/&gt;    MoveStraight timeout: For moving straight to a point, we used our encoders as our timeout. In essence, if the robot&amp;#8217;s state is moving forward but its encoder value is still 0, an internal timer will start ticking. If the timer goes on for x miliseconds (in this case it was 700), the robot needs to back up.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Other Safety Timeout Prevention Features: 1. &lt;/strong&gt;The robot will only lift the tray if it&amp;#8217;s a certain distance away from the wall. &lt;strong&gt;2. &lt;/strong&gt;After delivering the balls, the tray needs to lower. Lowering the tray can cause problems because if it lowers on top of a ball, then it will get stuck. To prevent a tray from lowering into a ball, after the robot delivers the balls, the robot backs up, turns a complete 180 degrees pushing all the balls away and then lowers the tray. &lt;strong&gt;3. &lt;/strong&gt;If a target x and y position is beyond a certain x or y value, the robot will go to a maximum value where it knows it can&amp;#8217;t get stuck. &lt;/div&gt;
&lt;hr&gt;&lt;div&gt;&lt;img height="187" src="http://mit6270roboticscompetitionteam20.weebly.com/uploads/6/3/8/0/6380726/9278068.jpg" width="250"/&gt;&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Game Strategy&lt;/h2&gt;
&lt;div class="paragraph editable-text"&gt;&lt;strong&gt;A preprogrammed routine runs in the beginning&lt;/strong&gt;: Using the VPS, we tell the robot to deliver the first 4 golf balls. Then, the robot  turns on its intake rollers. The robot proceeds to a specified point which automatically gathers 2 tennis balls. The robot checks if it has any tennis balls, and proceeds to deliver them. After this pre-programmed routine, our team has already scored 10pts in the first 20 seconds.&lt;br/&gt;&lt;strong&gt;Programmed AI:&lt;/strong&gt; Robot sorts all of the balls in its field and figures out which is a tennis ball. The robot turns on its intake rollers and moves to the x and y of the ball. The robot checks if it has anything on the tray. If it does, then proceed to deliver. If not, then repeat the programmed routine.&lt;br/&gt;In the event that the there are no more tennis balls on the side of the field or the robot can&amp;#8217;t get to a certain tennis balls, the robot proceeds to sorting and targeting golf balls.&lt;br/&gt;Since this doesn&amp;#8217;t really happen in the game as there are always tennis balls in the field, the robot usually focuses on the tennis balls. This is the integral part of the strategy. For the most part, the robot ignores all golf balls and concentrates on the tennis balls.&lt;br/&gt;&lt;br/&gt;Doing a simple math, this makes sense. Each team starts with 4 tennis balls and 8 golf balls. Your opponent can only score a maximum of 8 golf balls equaling to 8pts. Which means that in order to win, you need at least to deliver 3 tennis balls which equals to 9pts. Delivering 3 tennis balls is the same thing as saying that there should only be 1 tennis ball in your side of the field at the end of the game. If there&amp;#8217;s only 1 tennis ball in the field, then your team automatically wins. For every 3 golf balls that you score, you can afford 1 extra tennis ball on your side of the field. &lt;br/&gt;&lt;br/&gt;In our case, we already score 4 golfballs in the beginning. We can then afford 2 tennis balls on our side. But since our preprogrammed routine scores 2 tennis balls in the first 20 seconds, we&amp;#8217;ve already secured an advantage since we only have 2 tennis balls on our side. &lt;br/&gt;&lt;br/&gt;The strategy then boils down to this: At the end of the game: If you have 1 tennis ball in your field. You win. If you have 2 tennis balls and scored 3 golf balls, you win. If you have 3 tennis balls and scored 6 golf balls, you win.&lt;/div&gt;</description><link>http://handsonlearning.tumblr.com/post/23252731600</link><guid>http://handsonlearning.tumblr.com/post/23252731600</guid><pubDate>Mon, 14 May 2012 18:36:00 -0400</pubDate><category>completed</category><category>programming</category><category>6.270robot</category><dc:creator>stevenjens</dc:creator></item><item><title>Who's Steven?</title><description>&lt;p&gt;The author of this page. ;-]&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/16646757789</link><guid>http://handsonlearning.tumblr.com/post/16646757789</guid><pubDate>Sat, 28 Jan 2012 13:52:23 -0500</pubDate></item><item><title>Time to start updating this blog…
The the week before IAP...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lyio6vJvzD1r0kfobo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Time to start updating this blog…&lt;/p&gt;
&lt;p&gt;The the week before IAP started, I spent a good amount of time in lab writing a detailed guide on how to use 6.270’s “happy board” with motors and sensors. There were online course notes which introduced students about how sensors and motors &lt;strong&gt;would work&lt;/strong&gt;, but not really how to use them using the specific board and the &lt;strong&gt;exact programming routine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The guide was made due to my and my friend’s frustrations last year about using happy-board and trying to interface with it. Last year, teams were still calibrating gyros and testing sensors near the 3rd week of 6.270… It meant that no one was really doing productive programming. Instead, everyone was stuck just trying to figure out how to operate the damn thing.&lt;/p&gt;
&lt;p&gt;Anyway, this motivated me to make the guide to make life easier for this year’s contestants. I really think it &lt;strong&gt;helped&lt;/strong&gt;. I wrote the document in my own voice… I think you can even &lt;em&gt;hear&lt;/em&gt; it when you read through it. =]&lt;/p&gt;
&lt;p&gt;Before the start of the 1st mock competition (students had to drive to specified points in the field) 15 out of 24 teams were scoring above 20 points. This was a great increase from last year’s 4 out of 29 teams performance last year. Teams actually got to do useful navigation program. I was very satisfied &amp; happy to see the students see their programs work (after &lt;em&gt;multiple tests&lt;/em&gt; =] ).&lt;/p&gt;
&lt;p&gt;Happylab can always be improved, but I’m glad that the platform is set for future teams.&lt;/p&gt;
&lt;p&gt;The PDF document is available for &lt;a href="http://scripts.mit.edu/~6.270/contestants/lectures/6.270_happylab_2012.pdf" target="_blank"&gt;download here &lt;/a&gt;&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/16639049117</link><guid>http://handsonlearning.tumblr.com/post/16639049117</guid><pubDate>Sat, 28 Jan 2012 11:23:00 -0500</pubDate><category>6.270</category><category>IAP 2012</category><category>completed</category><category>electrical</category><dc:creator>stevenjens</dc:creator></item><item><title>6.270 Happy Lab and Other IAP Plans</title><description>&lt;p&gt;tl;dr: Learn LaTex, Build Scooter, Work for Vishwa, build other sh*t, post old stuff&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Yes! Finally the winter break!!&lt;/p&gt;
&lt;p&gt;I have time to work on my projects now. How glorious! Until January 4th, I will be under the comforts of my family in California. So the only thing I can do is really just prepare for the IAP.&lt;/p&gt;
&lt;p&gt;Which means Programming! and lots of CAD! and Budgeting! ahh.. I&amp;#8217;m so excited for this IAP.&lt;/p&gt;
&lt;p&gt;Alright. First off, it is essential to learn how to use &lt;strong&gt;LaTeX. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In essence, it&amp;#8217;s an awesome word-processor used by researchers, professors and ambitious students. XD Really though, almost every report published is written in LaTeX. It&amp;#8217;s far far superior than Word (Or so I have heard). Anyway, the best way to find out is to just use it and see for myself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#1&lt;/strong&gt; on my list is to finish &lt;em&gt;Happy Lab&lt;/em&gt; for 6.270. And I think typing it in LaTex would be great practice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#2 &lt;/strong&gt;Aside from learning LaTex, I really want to build my own electric scooter. Recently, it&amp;#8217;s getting more common for MIT students to build their own because it teaches you a lot of things from MechE, EE, and CompSci. It should be a good learning experience! And since I&amp;#8217;ll be at home from Dec 22nd to Jan 4th,  I can really utilize this time to just design the CAD and plan the electronics needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#3 MATLAB!&lt;/strong&gt; I&amp;#8217;m going to be taking a class this coming IAP. MatLab is heavily used by engineers to do intensive calculations. Engineers don&amp;#8217;t have time to do algebra. XD&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#4 &lt;/strong&gt;I got hired by Viswa robotics around late October, but I really haven&amp;#8217;t been doing much for them. School was extremely busy so all my energy was focused on doing well on academics. Although, I did calculations on my own time, I never did submit them&amp;#8230; So I need to work pretty much full-time for them this IAP if they even decide to take me back.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#5 &lt;/strong&gt;Build Other Sh*t. Yes. I have lots of things lined up to increase my knowledge base beyond theory. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#6 &lt;/strong&gt;Post old stuff to this blog. I&amp;#8217;ve built lots of things before so I should really just upload all of them here. Also, I&amp;#8217;m really thinking whether or not tumblr is a good place to host my build blog. A lot of people in MIT are using wordpress. We&amp;#8217;ll see.&lt;/p&gt;
&lt;p&gt;Anyway, this should be a good IAP for learning. Let&amp;#8217;s go!&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/14676999097</link><guid>http://handsonlearning.tumblr.com/post/14676999097</guid><pubDate>Fri, 23 Dec 2011 12:49:52 -0500</pubDate><dc:creator>stevenjens</dc:creator></item><item><title>Syren 25Amp Speed Controller Wiring
Currently creating a...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lqt302V2Yv1r0kfobo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Syren 25Amp Speed Controller Wiring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Currently creating a detailed build report of the OmniDrive. This is an excerpt which details exactly how the speed controller should be properly wired.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/9633898423</link><guid>http://handsonlearning.tumblr.com/post/9633898423</guid><pubDate>Wed, 31 Aug 2011 14:50:26 -0400</pubDate><category>omnidrive.fullscale</category><category>museumlab</category><category>electrical</category><dc:creator>stevenjens</dc:creator></item><item><title>Lab planning progress update.</title><description>&lt;p&gt;Last week, I met up with one of the MIT staff, &lt;a href="http://web.mit.edu/Edgerton/www/Banzaert.html" target="_blank"&gt;Steve Banzaert&lt;/a&gt;, who handles a lot of the edgerton center and lab spaces in the campus.&lt;/p&gt;
&lt;p&gt;It was definitely an eye-opener because he addressed issues I hadn&amp;#8217;t thought about.&lt;/p&gt;

&lt;p&gt;One of the things mentioned again was that money and equipment wasn&amp;#8217;t the problem. However, instead of effort being in the way, it was logistics, politics, ownership, management and safety.&lt;/p&gt;
&lt;p&gt;It turns out, every 2 years or so, a few people from dormitories, fraternities and other living groups come out and propose a laboratory space. So it&amp;#8217;s not uncommon that he&amp;#8217;s meeting up with me to talk about this kind of idea. haha.&lt;/p&gt;
&lt;p&gt;Anyway, he said that most fail because of the planning stages. After reviewing the proposal draft I had, he quickly addressed these issues:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Constitutional Space: &lt;/strong&gt;Who owns it? Is it a commercial space or an academic space?&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Insurance Policy:&lt;/strong&gt; Depending on the ownership, there are liability issues that needs to be addressed. If it&amp;#8217;s MIT, then they have their own protocol. If it&amp;#8217;s a commercial or private owned, a 3rd party insurance company needs to get involved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other Important Logistics:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;How is &lt;strong&gt;access&lt;/strong&gt; granted?&lt;/li&gt;
&lt;li&gt;Who &lt;strong&gt;manages&lt;/strong&gt; this place? Is there only a single person in charge?&lt;/li&gt;
&lt;li&gt;How is this going to be &lt;strong&gt;maintained?&lt;/strong&gt; Long term is the goal here but once the person managing it graduates, somebody needs to take over.&lt;/li&gt;
&lt;li&gt;What are the &lt;strong&gt;safety protocols&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;What is the &lt;strong&gt;sustainability plan&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If you notice, there is nothing mentioning money at all. It&amp;#8217;s all politics, liability, safety, and management. The &lt;a href="http://www.nytimes.com/2011/04/14/nyregion/yale-student-dies-in-machine-shop-accident.html" target="_blank"&gt;Yale accident&lt;/a&gt; recently doesn&amp;#8217;t help either.&lt;/p&gt;
&lt;p&gt;Anyway, the next step is to talk to the EHS (Environmental Health and Safety) in MIT. I also need to meet up with the alumni board again and report about the progress.&lt;/p&gt;
&lt;p&gt;But before I meet up, I need to make a compilation of tools, materials, and safety protocols attached with it.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/9292509245</link><guid>http://handsonlearning.tumblr.com/post/9292509245</guid><pubDate>Tue, 23 Aug 2011 10:10:06 -0400</pubDate><category>ongoing</category><category>sigep.lab</category><dc:creator>stevenjens</dc:creator></item><item><title>OmniDrive Completed: Speed Assembly above
The video shows a 16x...</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/EABmLNutM3c?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;OmniDrive Completed: Speed Assembly above&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The video shows a 16x Speed Assembly of &lt;em&gt;almost &lt;/em&gt;the entire thing. The bloggie battery kept on dying after being on for 3 hours at a time. I did manage to capture some key moments, but otherwise, it does give a general view of how the robot was assembled.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6079/6060546452_3343d7f3b5.jpg" width="500" height="375"/&gt;&lt;/p&gt;
&lt;p&gt;The past 2 weeks have been pretty crazy to say the least. When the parts came in, we started building as fast as possible, and the first run through was completed by Friday of last week. The sample video can be seen here:&lt;/p&gt;
&lt;p&gt;
&lt;object height="300" width="400"&gt;
&lt;param value="true" name="allowfullscreen"&gt;&lt;param value="http://www.facebook.com/v/10150273590377296" name="movie"&gt;&lt;embed height="300" width="400" allowfullscreen="true" type="application/x-shockwave-flash" src="http://www.facebook.com/v/10150273590377296"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;As for specific engineering &amp; construction notes, I’ll start from where I left off last time. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assembling and Wiring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After building the main chassis frame, it was time to mount the electronics and the motors.&lt;/p&gt;
&lt;p&gt;Because the wormgearbox motor has a lot of torque, it’s very common to use a direct drive. In many cases, this simplifies design and construction a lot.&lt;/p&gt;
&lt;p&gt;The best way to show how we mounted the wheels to the motor is using the exploded view from SolidWorks:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6182/6060043219_3eaf38e950.jpg" width="500" height="426"/&gt;&lt;/p&gt;
&lt;p&gt;Spacer and a 1/4-20 Screw keeps the omni-wheel place. The NPC motor happens to have a 1/4-20 tap hole at the center of the shaft, so this was pretty convenient.&lt;/p&gt;
&lt;p&gt;The spacers on the other hand wasn’t so convenient. If you’ve cut spacers before using a hack saw or band saw, you’d know that it’s never accurate. On a plus note, it was a bit idiotic for me to purchase spacers that had an EXACT 0.5in Inside Diameter (ID) delrin tube.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6181/6060546112_21f0efd001.jpg" width="375" height="500"/&gt; &lt;/p&gt;
&lt;p&gt;We had to cut the delrin to simulate a C-Clamp, and pretty much force it to work. On the plus side, this gave room to the key of motor so that both wheel and shaft turn in sync. &lt;/p&gt;
&lt;p&gt;After doing one successfully, we just repeated this pain/reward cycle 3 more times:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6075/6060546324_0334d7a6fe.jpg" width="500" height="375"/&gt;&lt;/p&gt;
&lt;p&gt;(guess what the mallet did there? Yup. Forced the ~0.5in ID Delrin to the ~0.5in OD shaft).&lt;/p&gt;
&lt;p&gt;After the wheel and motor module was assembled, it’s really a matter of putting it all together.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6072/6060546704_f735e88e7b.jpg" width="375" height="500"/&gt;&lt;/p&gt;
&lt;p&gt;The electronics was also straightforward. I’ll give a paint drawing of the schematics, but really it’s just:&lt;/p&gt;
&lt;p&gt;12V Battery -&gt; Motor Controllers - &gt; Motor.&lt;/p&gt;
&lt;p&gt;The 12V battery also powers the Arduino using the female VIN pin header on the board. The arduino has a 5V voltage regulator that can handle around 20V of battery input.&lt;/p&gt;
&lt;p&gt;Here’s an attempt to demonstrate the wiring through paint:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6065/6060144217_a2f6bf9945.jpg" width="500" height="497"/&gt;&lt;/p&gt;
&lt;p&gt;Anything multiplied by 4x tends to look more complicated than necessary.&lt;/p&gt;
&lt;p&gt;Look at the wiring though:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6197/6059995105_00f2a075bb.jpg" width="375" height="500"/&gt; &lt;/p&gt;
&lt;p&gt;Messy Christmas lights. (If you have a keen eye, you’ll notice there aren’t any VICTOR 883 speed controllers. I’ve explained this below).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Addressing Other Issues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Primarily, there are 2 issues with the design. One was addressed properly without much change, but the other is a bit more difficult.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;High PWM Frequency -&lt;/em&gt; If you notice during the video testing, the motor has a very loud whining sound. Initially, we tried changing the PWM frequency sent by the arduino using this &lt;a href="http://www.arduino.cc/playground/Code/PwmFrequency" target="_blank"&gt;PWM Library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This led to unfruitful results. I spent a lot of time trying to figure out why changing the arduino frequency doesn’t do anything. When I contacted Shane from MITers, he said that the VICTOR 883 Speed Controllers will receive the standard RC signal from the Arduino, and the VICTOR will use its own 100Hz frequency.&lt;/p&gt;
&lt;p&gt;He suggested to change to a different speed controller.&lt;/p&gt;
&lt;p&gt;Here’s a cool fact. The human hearing range is from 20Hz - 20kHz. All you have to do is put the PWM frequency in the » 20kHz range and humans won’t hear it anymore. It’s &lt;em&gt;&lt;strong&gt;still there. &lt;/strong&gt;&lt;/em&gt;You just don’t hear it. Cool huh?&lt;/p&gt;
&lt;p&gt;I ended up just following Shane’s recommendation and asked my supervisor to buy Four of &lt;a href="http://www.robotmarketplace.com/products/0-SYREN25.html" target="_blank"&gt;these&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.robotmarketplace.com/products/images/0-SYREN25.jpg" width="302" height="264"/&gt;&lt;/p&gt;
&lt;p&gt;It’s a Syren 25A Regenerative Motor Controller. EXTREMELY EXPENSIVE! In essence, it acts the same as a VICTOR controller but its transistors switch at a rate of 32kHz. 12,000Hz above the range of human hearing, so there’s no way you would be able to hear the PWM frequency.&lt;/p&gt;
&lt;p&gt;That did just the trick! &lt;/p&gt;
&lt;p&gt;I have another video of us testing the new motor controllers, but I’ll save that for another post.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Addressing Traction/Slipping:&lt;/em&gt; If you watch the test run video again, the wheels slip whenever only 2 of the wheels are only functioning. The quick easy fix is to always maneuver using four wheels. But there are some movements where you just want to use 2 of the wheels…&lt;/p&gt;
&lt;p&gt;This would’ve been easily solved using a suspension system. This would’ve been a bit more complicated and a bit more expensive. My previous design had it, but it did seem overkill and I believe $1000.00 more expensive.&lt;/p&gt;
&lt;p&gt;In any case, I’ve been thinking about how to add a spring system to what we have now, and after a week of doing the problem, there’s no easy solution unless I create a new motor module.&lt;/p&gt;
&lt;p&gt;So how do you attain traction at all times without using suspensions? There’s another design that we’ve been thinking of doing. Instead of using 4 omni-wheels, we would just use 3.&lt;/p&gt;
&lt;p&gt;This is the &lt;strong&gt;tri-omni design&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6076/6060181195_055a1039b6.jpg" width="500" height="370"/&gt;&lt;/p&gt;
&lt;p&gt;We would’ve built it this week, but unfortunately the water jet wasn’t really available. In addition, I hate dismantling a successful, functioning robot to create an unsure robot.&lt;/p&gt;
&lt;p&gt;There’s a few issue with the tri-omni design. The Center of Gravity is the most obvious one. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6209/6060181275_35a84c4cd1.jpg" width="500" height="486"/&gt;&lt;/p&gt;
&lt;p&gt;As for controls, it’s a simple linear algebra problem where you only use 2 of the vectors and make the 3rd vector dependent on it.&lt;/p&gt;
&lt;p&gt;Anyway, We ended up not building this design, but maybe future UROPs can try this out. I’ve already figure out the wiring, programming, and mechanical design so all that is needed is manufacturing and assembly.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Other Traction Solutions:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I weigh 140lbs. When I rode the robot, it had a bit more traction than usual, but it’s not that great. Putting weight on the robot obviously increases your dynamic friction but it really won’t help unless the floor is even.&lt;/p&gt;
&lt;p&gt;So how did we solve the traction problem? We didn’t. It’s sad that it has this critical flaw when it was first addressed from the very beginning of the design stage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other Aesthetic Development:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We proceeded to make the robot look more presentable.&lt;/p&gt;
&lt;p&gt;Look, Black acrylic sheets:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6208/6059996443_06f86ac098.jpg" width="375" height="500"/&gt;&lt;/p&gt;
&lt;p&gt;And look how awesome it is when we mounted it:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6189/6059996173_6b998611d9.jpg" width="500" height="375"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6193/6060546036_f5b4d830ee.jpg" width="500" height="375"/&gt;&lt;/p&gt;
&lt;p&gt;I think I’ve addressed all of the assembly, wiring, and how we addressed all other issues.&lt;/p&gt;
&lt;p&gt;Also, here’s a quick summary:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Robot is finished. Awesome Speed Assembly Video. Awesome Robot Testing. Assembled the Wheels. Demonstrated Wiring. Changed Speed Controller to Syren for quietness. Didn’t address traction. Covered the bot with black acrylic for style.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/9144300088</link><guid>http://handsonlearning.tumblr.com/post/9144300088</guid><pubDate>Fri, 19 Aug 2011 20:44:56 -0400</pubDate><category>museumlab</category><category>completed</category><category>omnidrive.fullscale</category><dc:creator>stevenjens</dc:creator></item><item><title>Machining + Assembly.
The deadline of this project is next week....</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpsmhqXoDG1r0kfobo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Machining + Assembly.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The deadline of this project is next week. The progress thus far? Way ahead of schedule. ;]&lt;/p&gt;
&lt;p&gt;There’s been a lot of progress in terms of machining and assembly, and it just got better when all of the parts came in yesterday.&lt;/p&gt;
&lt;p&gt;In order for the robot to be built, I had this mental task list:&lt;/p&gt;
&lt;p&gt;1. LaserCut Acrylic Electronics Base&lt;/p&gt;
&lt;p&gt;2. WaterJet Motor Brackets&lt;/p&gt;
&lt;p&gt;3. Cut 80-20’s in the Bandsaw. &lt;/p&gt;
&lt;p&gt;4. Purchase all accessories from McMaster&lt;/p&gt;
&lt;p&gt;5. Assemble and Wire Electronics&lt;/p&gt;
&lt;p&gt;Here’s what happened this past week.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Monday 8/8/11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Turns out, there was a bunch of 80-20 parts downstairs in the basement. Upon acquiring them, my coworker and I marked them, and went straight down to the machine shop to cut them to size in the bandsaw.&lt;/p&gt;
&lt;p&gt;Typically, this should be about a 30 minute job at most. But, the band saw we used had a really out-dated blade. It cuts 1/10th of the time, and caresses your stock 90% of the time. -_-.&lt;/p&gt;
&lt;p&gt;Still, we managed to just cut all of the essential pieces to make a the simple square shaped base.&lt;/p&gt;
&lt;p&gt;&lt;img height="375" width="500" alt="80-20 Cut Pieces" src="http://farm7.static.flickr.com/6147/6033608547_75c344c0cb.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;We couldn’t really do much with the 80-20 pieces without having connector pieces. So we went ahead and started laser cutting the electronic base.&lt;/p&gt;
&lt;p&gt;&lt;img height="375" width="500" alt="Acrylic Electronics Base" src="http://farm7.static.flickr.com/6196/6034164604_b2eb004b51.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;The solidworks drawing was saved as .dxf, imported to AutoCad, &lt;strong&gt;RESCALED &lt;/strong&gt;and then printed on a 10% speed, 70% power setting.&lt;/p&gt;
&lt;p&gt;Later in the week, we would find that the piece didn’t account for inaccuracies. Regardless, it was already 6:00pm, so it was time to go home.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tuesday 8/9/11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I scheduled a meeting with Ken, director of the MIT Hobby Shop, to help me water jet the motor mount pieces.&lt;/p&gt;
&lt;p&gt;Ken was very helpful, and we finished manufacturing the part with minor issues &lt;strike&gt;such as almost ruining the waterjet nozzle and z-axis&lt;/strike&gt;. &lt;/p&gt;
&lt;p&gt;&lt;img height="438" width="500" alt="Motor Mount" src="http://farm7.static.flickr.com/6089/6033608351_67e630aca0.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;This piece costs around $30 to make. It’s not so bad when you only have to do it once, but we have 4 of these, so it’s actually $120.00! It’s $3 a minute so manufacturing time was around 40 minutes. Note to self: Don’t have too many fancy rectangles. Those spike manufacturing time and also price very quickly. XD&lt;/p&gt;
&lt;p&gt;Still, water jetting is pretty awesome. Observe:&lt;/p&gt;
&lt;p&gt;&lt;img height="281" width="500" alt="Motor Mount" src="http://farm7.static.flickr.com/6149/6034164444_ed98cfbb8b.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;It’s a perfect fit. ;]&lt;/p&gt;
&lt;p&gt;We tried to do other machining stuff back in the lab, but it was futile since we didn’t have the right tools.&lt;/p&gt;
&lt;p&gt;Anyway, at the end of tuesday, I made sure all of the parts we need would be ordered from McMaster. Which means, parts won’t be coming in pretty soon. Or so I thought… &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wednesday 8/10/11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I decided to come in late to work, and by the time I got there all of the parts was delivered. Talk about awesome timing. :D McMaster hasn’t failed me yet! The parts list was around $300.00. 80-20 parts from McMaster are pretty ridiculous. If you’re worried about price, don’t buy 80-20 from McMaster! It’s exactly like buying from a middle man instead of the actual supplier.&lt;/p&gt;
&lt;p&gt;In addition, an L-bracket from them cost about $5.00 ea. Unthinkable! So my supervisor said I should just make my own. &gt;.&gt;&lt;/p&gt;
&lt;p&gt;Anyway, we spent too much time machining on this day. No actual assembly was done. By machining, I mean making these annoying L-brackets:&lt;/p&gt;
&lt;p&gt;&lt;img height="500" width="497" alt="L-bracket" src="http://farm7.static.flickr.com/6191/6033649197_6eceaea7e5.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Again, we used the same weak band-saw which cut 10% of the time and caresses your part for the most part.&lt;/p&gt;
&lt;p&gt;After cutting them to 1in( + or - 0.2in) pieces (This was ridiculously inaccurate. Damn band saw). We had to drill the holes. The holes have about a 0 tolerance in terms of being lined up.&lt;/p&gt;
&lt;p&gt;Lucikly, this machine was there to save the day:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" width="500" src="http://farm7.static.flickr.com/6061/6033608583_812975a08e.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;After using an edge-finder, a digital read out (DRO) and a part stop, I made 24 accurate L-bracket holes. If you’re mass producing something, Use the same reference point and a part stop! Super helpful and increases productivity.&lt;/p&gt;
&lt;p&gt;But seriously though, I need to stop designing with these crap. But the only alternative I know is using plates or welding (a skill I still need to learn). &gt;.&lt;&lt;/p&gt;
&lt;p&gt;Anyway, that took a whole day to do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thursday 8/11/11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Come Thursday, I thought we would be assembling the entire day. But again, unforeseen problems unfolded. &lt;/p&gt;
&lt;p&gt;I had to mill out certain pieces to make room for a notch on the motor I decided not to model earlier. I knew not modeling that piece would hurt me later on! Here’s what I mean:&lt;/p&gt;
&lt;p&gt;&lt;img height="281" width="500" alt="Motor Notch" src="http://farm7.static.flickr.com/6083/6034164566_def550783d.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;And here’s our solution:&lt;/p&gt;
&lt;p&gt;&lt;img height="281" width="500" src="http://farm7.static.flickr.com/6147/6033608485_b5935f284f.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Anyway, the remainder of the afternoon, (3pm - 5:50pm) was spent on assembling.&lt;/p&gt;
&lt;p&gt;Here’s how far we got:&lt;/p&gt;
&lt;p&gt;&lt;img height="375" width="500" src="http://farm7.static.flickr.com/6125/6034164628_ec8b346fbf.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Not too bad. And plus! The manufactured L-brackets worked. Real high tolerance holes can be achieved with consistency and good setup.&lt;/p&gt;
&lt;p&gt;Main chassis + Speed controllers are setup. &lt;/p&gt;
&lt;p&gt;Also, if you notice, the acrylic base is now &lt;strong&gt;black. &lt;/strong&gt;Again, this is because of the brackets. I modeled the brackets to be the ones from the 80-20 retailer. But when we made our own brackets, I didn’t take this into account. So we quickly laser cut a new piece.&lt;/p&gt;
&lt;p&gt;Tomorrow, motor assembly and wiring will be done.&lt;/p&gt;
&lt;p&gt;Let’s review my checklist again:&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;1. LaserCut Acrylic Electronics Base&lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;2. WaterJet Motor Brackets&lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;3. Cut 80-20’s in the Bandsaw. &lt;/strike&gt;&lt;strike&gt; &lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;3.1 Do extra Machining with 80-20s&lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;4. Purchase all accessories from McMaster&lt;/strike&gt; &lt;/p&gt;
&lt;p&gt;&lt;span&gt;5. Assemble and Wire Electronics&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Assemble and then present! We have 24 hours. :]&lt;/span&gt;&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8804866963</link><guid>http://handsonlearning.tumblr.com/post/8804866963</guid><pubDate>Thu, 11 Aug 2011 22:20:00 -0400</pubDate><category>omnidrive.fullscale</category><category>museumlab</category><category>ongoing</category><dc:creator>stevenjens</dc:creator></item><item><title>OmniDrive Version 2.0
10 Hours later, an initial CAD model is...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpji3m4SPM1r0kfobo1_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://25.media.tumblr.com/tumblr_lpji3m4SPM1r0kfobo2_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://24.media.tumblr.com/tumblr_lpji3m4SPM1r0kfobo3_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://25.media.tumblr.com/tumblr_lpji3m4SPM1r0kfobo4_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;p&gt;&lt;strong&gt;OmniDrive Version 2.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;10 Hours later, an initial CAD model is finished!&lt;/p&gt;
&lt;p&gt;Upon reviewing the first design of the the omnidrive all-purpose-platform, there was a lot of talk between my supervisors about being too &lt;em&gt;heavy-duty&lt;/em&gt; and &lt;em&gt;overly designed&lt;/em&gt;. Naturally, a redesign is much needed. &lt;/p&gt;
&lt;p&gt;The biggest opposition beforehand was the complexity of the suspension system. And arguably, it turns out the platform won’t be experiencing any rough terrain and probably won’t need much dampening system anyway, so this really had to go. I actually wanted to see if I can make a custom drive system with a working suspension, but I suppose practicality dictates the situation.&lt;/p&gt;
&lt;p&gt;Regardless, this time around, the specs of the robot was more defined. I finally know the boundaries I need to work with. My supervisor also decided to start buying the materials. Because each part cost almost $100.00, it’s pretty much guaranteed to be used once bought. Which means, It HAS TO BE IN THE DESIGN.&lt;/p&gt;
&lt;p&gt;In some cases, this can be problematic because your design will be restricted. BUT! I actually prefer this because before the design specs were completely open-ended that there was a bunch of solutions. Selecting some constraints lets your final design converge.&lt;/p&gt;
&lt;p&gt;-“Specs” for the new design:&lt;/p&gt;
&lt;p&gt;-Must be as small (length and width) as possible&lt;/p&gt;
&lt;p&gt;-Must be as short as possible&lt;/p&gt;
&lt;p&gt;-No more crazy suspensions&lt;/p&gt;
&lt;p&gt;-“Modular”&lt;/p&gt;
&lt;p&gt;-Cheaper&lt;/p&gt;
&lt;p&gt;-Must be able to carry arbitrary load (~200lbs)&lt;/p&gt;
&lt;p&gt;In addition to specs, certain materials are also narrowed down. These babies were finally bought:&lt;/p&gt;
&lt;p&gt;It’s a &lt;em&gt;dualie-omni wheel&lt;/em&gt; because it’s literally 2 omni-wheels in one. The primary difference is that the wheels were offset from each other.&lt;/p&gt;
&lt;p&gt;As for the motors, the real goal is to make them operate as quietly as possible. I asked for MITers for assistance and it seems that the best way to go is to use wheel chair electric motors. But these are extremely expensive… So upon further “research” I stumbled upon wormgearbox motors. It was a battle between:&lt;/p&gt;
&lt;p&gt;&lt;a title="NPC 2212"&gt;&lt;a href="http://www.robotmarketplace.com/products/NPC-2212.html" target="_blank"&gt;http://www.robotmarketplace.com/products/NPC-2212.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and &lt;/p&gt;
&lt;p&gt;&lt;a title="Motor 2"&gt;&lt;a href="http://www.robotmarketplace.com/products/NPC-41250.html" target="_blank"&gt;http://www.robotmarketplace.com/products/NPC-41250.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I tested the motors, and running them on a 20% duty cycle (around 2V) with the VICTOR883 showed that the latter motor(NPC 41250) was quieter. I’m actually glad because this motor has mounting holes perpendicular to the drive shaft so it’s a lot easier to mount. All it needs is some water jet part.&lt;/p&gt;
&lt;p&gt;Here’s the motor mount:&lt;/p&gt;
&lt;p&gt;SolidWorks makes it really easy to make custom mounts and faceplates using circles lines and &lt;strong&gt;offset entitites. &lt;/strong&gt;You can also make them fancy with fillets. XD&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6144/6016817146_2f971679df.jpg" width="353" height="380"/&gt;&lt;/p&gt;
&lt;p&gt;In the design, I also wanted to maximize the room for electronics but at the same time not ruin the symmetry of all the motors. The limiting factor to this is the motors. &lt;/p&gt;
&lt;p&gt;In order for the platform to be as short as possible, the motors needs to be mounted horizontally. But since the motor is not symmetrical, the entire platform must be bigger to compensate for this.&lt;/p&gt;
&lt;p&gt;Here’s an example trying to optimize space but losing symmetry:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6025/6016235939_1f66717e8c.jpg" width="500" height="474"/&gt;&lt;/p&gt;
&lt;p&gt;You can clearly tell that the motors aren’t aligned.&lt;/p&gt;
&lt;p&gt;I’ve put lots of constraints so that it’ll be symmetrical everywhere giving a square base while having the geometric centroid on the center of the robot:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6122/6016235913_7ab528512f.jpg" width="500" height="333"/&gt;&lt;/p&gt;
&lt;p&gt;Thus, this is the minimum required shape to retain perfect symmetry given the motor dimensiosn.&lt;/p&gt;
&lt;p&gt;The design can actually be further simplified by not having shields that protect the omniwheel:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6135/6016235893_c588c53522.jpg" width="500" height="333"/&gt;&lt;/p&gt;
&lt;p&gt;Practically, this is the way to go because it conserves space. It’s only 21”x21” from its maximum points. But, I think you’ll agree with me when it doesn’t look as &lt;strong&gt;COOL&lt;/strong&gt;as having shields:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm7.static.flickr.com/6146/6016793030_267555639a.jpg" width="500" height="281"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Design notes:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No Shields:21”x21”&lt;/p&gt;
&lt;p&gt;With Shields: 23.5”x23.5”&lt;/p&gt;
&lt;p&gt;It’s only a 1.5 inch gain for more space for payload and *cough*coolfactor*cough&lt;/p&gt;
&lt;p&gt;Overall, I’m pretty content with the design. It stands 7 inches tall from the ground to the maximum height. It’s pretty short, but wide and powerful enough for almost any payload. &lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8586548892</link><guid>http://handsonlearning.tumblr.com/post/8586548892</guid><pubDate>Sun, 07 Aug 2011 00:06:00 -0400</pubDate><category>museumlab</category><category>omnidrive.fullscale</category><category>completed</category><dc:creator>stevenjens</dc:creator></item><item><title>Motors, Microcontroller and Speed Controller are all working...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lpf5hg26zn1r0kfobo1_r1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Motors, Microcontroller and Speed Controller are all working together.&lt;/p&gt;
&lt;p&gt;After a 3-day headache, with the help of a coworker, we finally got the motors to run with the Arduino UNO. I finally have a further understanding of how this works.&lt;/p&gt;
&lt;p&gt;The picture above has 2 VICTORS daisy-chained together powered by a 12VDC power supply. We’re trying to test 2 different types of motors since we’re still not sure which one to use in the final design. Preferably, I like the one with the face mount.&lt;/p&gt;
&lt;p&gt;In any case, here’s the basic diagram of the wiring:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img185.imageshack.us/img185/961/victormc4.png" alt="VICTOR + Motor wiring" width="744" height="881"/&gt;&lt;/p&gt;
&lt;p&gt;I recommend not following the program code because that analogwrite command is not the correct PWM signal that the VICTOR controller wants.&lt;/p&gt;
&lt;p&gt;What I’ve found out is that VICTOR controllers wants “Standard RC” type PWM. It turns out that PWM is a commonly misused word in the microcontrollers world. So instead of PWM, VICTORs actually want PPM (Pulse Position Modulation). Many thanks to MITers for clearing this issue up.&lt;/p&gt;
&lt;p&gt;In any case, if you’re trying to use VICTORs as speed controllers and you want to interface it with the Arduino, treat the VICTOR as a Servo and send a servo.writeMicroseconds(#val) from 1000us to 2000us where 1500us is the neutral point.&lt;/p&gt;
&lt;p&gt;Also, the source of the problem I’ve been having the past few days was very trivial (as it always is). The PWM cable doesn’t line up properly in the VICTOR, so you really have to make sure there is a secure contact. How do you make sure? Wire everything correctly and test it with a working servo code.&lt;/p&gt;
&lt;p&gt;Anyway, now I can move on from the electronics and programming, and continue working on the final mechanical design.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8481282153</link><guid>http://handsonlearning.tumblr.com/post/8481282153</guid><pubDate>Thu, 04 Aug 2011 15:44:00 -0400</pubDate><category>omnidrive.fullscale</category><category>museumlab</category><category>ongoing</category><category>VICTOR</category><category>electrical</category><category>motors</category><dc:creator>stevenjens</dc:creator></item><item><title>LED Wiring Design Tool
I present to you, the most intuitive...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpc0zrkdQW1r0kfobo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;LED Wiring Design Tool&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I present to you, the most intuitive planner for LED wiring.&lt;/p&gt;
&lt;p&gt;My next small project deals with LEDs. LOTS of it. I haven’t played with LEDs much, but I knew the theory behind them. It’s really just a glowing diode with a built in resistance. This is where &lt;em&gt;experience &lt;/em&gt;helps more than theory.&lt;/p&gt;
&lt;p&gt;Although I trust my own math, I referred to someone/thing that can do it for me reliably. So I looked for an easy wizard that can easily plan out LEDs.&lt;/p&gt;
&lt;p&gt;Ta-da. This site is extremely intuitive and easy to use. All I had to do was look at the LED spec sheet, look at the voltage I’m giving, and I get a proper solution.&lt;/p&gt;
&lt;p&gt;No more repetitive LED calculations.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8412770808</link><guid>http://handsonlearning.tumblr.com/post/8412770808</guid><pubDate>Tue, 02 Aug 2011 23:14:00 -0400</pubDate><category>design.tools</category><category>electrical</category><dc:creator>stevenjens</dc:creator></item><item><title>Comment Box Added</title><description>&lt;p&gt;I&amp;#8217;ve implemented a comment feature on every post so that even outsiders can also be part of discussion. &lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8383703441</link><guid>http://handsonlearning.tumblr.com/post/8383703441</guid><pubDate>Tue, 02 Aug 2011 09:37:00 -0400</pubDate><category>blognews</category><dc:creator>stevenjens</dc:creator></item><item><title>Full Scale OmniDrive Intro
I’ve built full scale robots...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpa8ceoiOO1r0kfobo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Full Scale OmniDrive Intro&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I’ve built full scale robots before, but my involvement was strictly limited to just designing the drive system. This time around, I want to also handle the programming and electrical systems. It’s true that I’m trying to do everything, but my coworker is also helping me develop this platform. I’m not alone in this, but I do think I’ll be more involved, which is pretty great.&lt;/p&gt;
&lt;p&gt;This summer, I’m UROPing for the MIT Museum Lab. I’ve already proven that this drive system can &lt;a href="http://handsonlearning.tumblr.com/post/8367180529/omnidirectional-drive-prototype-mechanical" target="_blank"&gt;work&lt;/a&gt;. Now, it’s time to scale it up.&lt;/p&gt;
&lt;p&gt;Above is the first full-scale design iteration. It’s quite heavy duty and that’s the problem. I personally want to add a suspension system in it, but my supervisors worry that it might be an overkill design. To an extent, I do agree. If I remove the suspension, the dampening of the chassis will be gone but the overall weight of the robot will substantially decrease.&lt;/p&gt;
&lt;p&gt;My supervisor and I were throwing ideas together to try and implement the suspension system while decreasing the overall weight of the system. I’m open to suggestions, but unless it performs just like a suspension, I can’t go with it,&lt;/p&gt;
&lt;p&gt;Anyway, besides Mechanical Design, some of the parts have already started coming in:&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="http://farm7.static.flickr.com/6147/6000224317_0505ba46f5.jpg" alt="Parts" width="500" height="375"/&gt;&lt;/p&gt;
&lt;p&gt;The parts above in total costs about $250+. Which means this robot will definitely cost a lot of money. Anything that will decrease the robot’s weight will greatly be beneficial. &lt;/p&gt;
&lt;p&gt;&lt;img align="left" src="http://www.robotmarketplace.com/products/images/NPC-2212.jpg" alt="NPC motor" width="261" height="288"/&gt;I’ve also started fiddling around with the &lt;a href="http://www.robotmarketplace.com/products/NPC-2212.html" target="_blank"&gt;motors&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I hooked it up directly to a DC power supply and changed the voltage there, but I’m still having trouble sending a PWM signal from the Arduino. It seems I need a &lt;a title="Signal Driver" href="http://www.robotmarketplace.com/products/IFIW-SIG36.html" target="_blank"&gt;signal driver,&lt;/a&gt; which I completely forgot to tell my supervisor to buy.&lt;/p&gt;
&lt;p&gt;I have come to conclude that I lack the fundamental knowledge of things. For one, I don’t understand what kind of signal is sent by the arduino to the &lt;a title="VICTOR 883" href="http://www.robotmarketplace.com/products/IFI-V883.html" target="_blank"&gt;VICTOR&lt;/a&gt; controller. I can’t test it because I don’t know how to read an oscilloscope. I can probably use an Op-Amp, but again, I don’t know if that’ll send a Voltage signal or some sort of current. &lt;/p&gt;
&lt;p&gt;I absolutely cannot wait to take classes for this because it’s a bit hard to find reliable information from the internet.&lt;/p&gt;
&lt;p&gt;&lt;img align="left" src="http://www.robotmarketplace.com/products/images/store_victor883.jpg" width="252" height="243"/&gt;&lt;/p&gt;
&lt;p&gt;It doesn’t help that we probably ordered the wrong motor controllers. This is a VICTOR 883 which operates at a nominal voltage of 24V. But our motors operate at 12V. I speculate that it doesn’t matter, but I could be wrong. And this uncertainty just adds an extra unknown variable.&lt;/p&gt;
&lt;p&gt;I’ll update more next time when there’s legitimate progress. For now, I’ll be designing the mechanical system more.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8370521519</link><guid>http://handsonlearning.tumblr.com/post/8370521519</guid><pubDate>Mon, 01 Aug 2011 23:57:00 -0400</pubDate><category>museumlab</category><category>omnidrive.fullscale</category><category>completed</category><dc:creator>stevenjens</dc:creator></item><item><title>Transforming a Basement into a Laboratory / Project Space
I am...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpa6ivMwJZ1r0kfobo1_r2_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Transforming a Basement into a Laboratory / Project Space&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I am fortunate to be in a fraternity that owns &lt;strong&gt;two&lt;/strong&gt; houses. This summer, I was able to talk to our Alumni board and give a proposal to transform this basement into a working project space for students.&lt;/p&gt;
&lt;p&gt;So far, the idea was taken well, and there seems to be quite a few funding remaining left to really make this place happen.&lt;/p&gt;
&lt;p&gt;This idea has been around for quite a while, but due to school work, it hasn’t been executed. Summer has given me a lot of free time and I’m prepared to handle any paperwork to get this done. &lt;/p&gt;
&lt;p&gt;The funding and support are there, all I have to do is put effort and make it happen.&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8368992137</link><guid>http://handsonlearning.tumblr.com/post/8368992137</guid><pubDate>Mon, 01 Aug 2011 23:18:00 -0400</pubDate><category>ongoing</category><category>sigep.lab</category><dc:creator>stevenjens</dc:creator></item><item><title>OmniDirectional Drive Prototype
Mechanical Design
Since this was...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpa4g4K92X1r0kfobo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;&lt;span&gt;OmniDirectional Drive Prototype&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Mechanical Design&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Since this was just a quick prototype, we wanted to get one working as quickly as possible. Not knowing the budget that we have for the project, we decided to use an Acrylic base because it was readily available in our lab’s stock. As for the other components, we decided to use VEX components because I have dealt with it before so construction should be fairly easy.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;We created and rendered our design in Solid Works. (See image above)&lt;/p&gt;
&lt;p class="MsoNormal"&gt;For time efficiency, We used a laser cutter to create the acrylic base. But, given that the CAD file contains all the geometry for the hole positions, it can also easily be plotted and drilled with a regular drill press.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;                &lt;/span&gt;Below on the right is the “built” prototype. None of the electronics are mounted securely. If you didn’t notice, that’s yellow duct tape holding it in place. Next time, electronics mounting should definitely be put into account.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt; &lt;img align="middle" src="http://farm7.static.flickr.com/6146/6000027617_04fdc0698c.jpg" alt="CAD vs Real" width="500" height="164"/&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Controls&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img align="middle" src="http://farm7.static.flickr.com/6030/6000016037_4896463373_b.jpg" alt="Control Analysis" width="684" height="305"/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This means that given an x, y value we know the proportional power each wheel will need to go to that location giving us a complete span of the 2-D subspace.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This calculation is appropriate because our transmitter is a PS2 Controller:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img align="middle" src="http://farm7.static.flickr.com/6139/6000563116_6d088a0bab.jpg" alt="PSX2" width="368" height="277"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The Left Joystick gives us a position x and y, and based on this coordinate, we can change it into a column vector &lt;span&gt;[x,y]^T&lt;/span&gt;. Now we just use our equations for &lt;!--[if gte msEquation 12]&gt;&lt;m:oMath&gt;&lt;m:sSub&gt;&lt;m:sSubPr&gt;&lt;span    style="font-family:"Cambria Math","serif";mso-ascii-font-family:"Cambria Math";    mso-hansi-font-family:"Cambria Math";font-style:italic;mso-bidi-font-style:    normal" _mce_style="font-family: "Cambria Math","serif"; mso-ascii-font-family: "Cambria Math"; mso-hansi-font-family: "Cambria Math"; font-style: italic; mso-bidi-font-style: normal;"&gt;&lt;m:ctrlPr&gt;&lt;/m:ctrlPr&gt;&lt;/span&gt;&lt;/m:sSubPr&gt;&lt;m:e&gt;&lt;i style="mso-bidi-font-style:    normal" _mce_style="mso-bidi-font-style: normal;"&gt;&lt;span style="font-family:"Cambria Math","serif"" _mce_style="font-family: "Cambria Math","serif";"&gt;&lt;m:r&gt;c&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:e&gt;&lt;m:sub&gt;&lt;i    style="mso-bidi-font-style:normal" _mce_style="mso-bidi-font-style: normal;"&gt;&lt;span style="font-family:"Cambria Math","serif"" _mce_style="font-family: "Cambria Math","serif";"&gt;&lt;m:r&gt;1&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:sub&gt;&lt;/m:sSub&gt;&lt;/m:oMath&gt;&lt;![endif]--&gt;&lt;!--[if !msEquation]--&gt;&lt;span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape  id="_x0000_i1025" type="#_x0000_t75" style='width:9.75pt;height:15pt'&gt; &lt;v:imagedata src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"   o:title="" chromakey="white" /&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img width="13" height="20" src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif" shapes="_x0000_i1025"/&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span&gt; &lt;/span&gt;and &lt;!--[if gte msEquation 12]&gt;&lt;m:oMath&gt;&lt;m:sSub&gt;&lt;m:sSubPr&gt;&lt;span    style="font-family:"Cambria Math","serif";mso-ascii-font-family:"Cambria Math";    mso-hansi-font-family:"Cambria Math";font-style:italic;mso-bidi-font-style:    normal" _mce_style="font-family: "Cambria Math","serif"; mso-ascii-font-family: "Cambria Math"; mso-hansi-font-family: "Cambria Math"; font-style: italic; mso-bidi-font-style: normal;"&gt;&lt;m:ctrlPr&gt;&lt;/m:ctrlPr&gt;&lt;/span&gt;&lt;/m:sSubPr&gt;&lt;m:e&gt;&lt;i style="mso-bidi-font-style:    normal" _mce_style="mso-bidi-font-style: normal;"&gt;&lt;span style="font-family:"Cambria Math","serif"" _mce_style="font-family: "Cambria Math","serif";"&gt;&lt;m:r&gt;c&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:e&gt;&lt;m:sub&gt;&lt;i    style="mso-bidi-font-style:normal" _mce_style="mso-bidi-font-style: normal;"&gt;&lt;span style="font-family:"Cambria Math","serif"" _mce_style="font-family: "Cambria Math","serif";"&gt;&lt;m:r&gt;2&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:sub&gt;&lt;/m:sSub&gt;&lt;/m:oMath&gt;&lt;![endif]--&gt;&lt;!--[if !msEquation]--&gt;&lt;span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape  id="_x0000_i1025" type="#_x0000_t75" style='width:9.75pt;height:15pt'&gt; &lt;v:imagedata src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"   o:title="" chromakey="white" /&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img width="13" height="20" src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif" shapes="_x0000_i1025"/&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span&gt; &lt;/span&gt;to get the proper proportion.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This controller has its wires ready to be plugged into the arduino board. It can be purchased from: &lt;a href="http://www.lynxmotion.com/p-552-ps2-robot-controller.aspx" target="_blank"&gt;&lt;a href="http://www.lynxmotion.com/p-552-ps2-robot-controller.aspx" target="_blank"&gt;http://www.lynxmotion.com/p-552-ps2-robot-controller.aspx&lt;/a&gt;&lt;br/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Electronics/Wiring:&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;We used an Arduino UNO board as the robot microcontroller. All software and hardware is available on their website @ &lt;a href="http://www.arduino.cc/" target="_blank"&gt;&lt;a href="http://www.arduino.cc/" target="_blank"&gt;http://www.arduino.cc/&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The wiring is pretty straightforward. The 7.2V battery powers both the Arduino-Board and the VEX motors. I will try my best to illustrate what we did. If I insult your intelligence, I apologize.&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;I.&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;u&gt;The VEX Motor has 3 pins which corresponds to 3 wires.&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;u&gt;&lt;img align="left" src="http://farm7.static.flickr.com/6030/6000563286_1181eb04d0.jpg" alt="VEX Pins" width="137" height="298"/&gt;&lt;br/&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600"  o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f"  stroked="f"&gt; &lt;v:stroke joinstyle="miter" /&gt; &lt;v:formulas&gt; &lt;v:f eqn="if lineDrawn pixelLineWidth 0" /&gt; &lt;v:f eqn="sum @0 1 0" /&gt; &lt;v:f eqn="sum 0 0 @1" /&gt; &lt;v:f eqn="prod @2 1 2" /&gt; &lt;v:f eqn="prod @3 21600 pixelWidth" /&gt; &lt;v:f eqn="prod @3 21600 pixelHeight" /&gt; &lt;v:f eqn="sum @0 0 1" /&gt; &lt;v:f eqn="prod @6 1 2" /&gt; &lt;v:f eqn="prod @7 21600 pixelWidth" /&gt; &lt;v:f eqn="sum @8 21600 0" /&gt; &lt;v:f eqn="prod @7 21600 pixelHeight" /&gt; &lt;v:f eqn="sum @10 21600 0" /&gt; &lt;/v:formulas&gt; &lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /&gt; &lt;o:lock v:ext="edit" aspectratio="t" /&gt; &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_9" o:spid="_x0000_s1026" type="#_x0000_t75"  style='position:absolute;margin-left:-4.65pt;margin-top:3.9pt;width:99.7pt;  height:220.75pt;z-index:1;visibility:visible;mso-wrap-style:square;  mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;  mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;  mso-position-horizontal-relative:text;mso-position-vertical:absolute;  mso-position-vertical-relative:text'&gt; &lt;v:imagedata src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"   o:title="" /&gt; &lt;w:wrap type="square" /&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br/&gt;&lt;!--[endif]--&gt;&lt;strong&gt;Signal&lt;/strong&gt; Goes to the the digital input of the Arduino Board. In our case, we used this wire to send a PWM signal to the Motor Controller 29 of the VEX motor.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Power &lt;/strong&gt;Goes to the Positiveterminal rail powered by the 7.2V Battery&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;GND/Ground- &lt;/strong&gt;Goes to the Ground of the Negative terminal rail of the 7.2V Battery &lt;strong&gt;&lt;em&gt;and&lt;/em&gt;&lt;/strong&gt; the Ground of the arduino board. This is &lt;strong&gt;crucial&lt;/strong&gt;! The entire electronics component must have a common ground. So the Ground of the Arduino, battery, and the motors must be connected together. (This is because the signal going from the arduino to the motors needs a way back to the arduino board. Otherwise it’s not a complete circuit!)&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;II.&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;u&gt;Powering the Arduino Board&lt;/u&gt; &lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;The arduino board requires 5V of regulated power to operate. Conveniently, the Arduino has a Vin pin input which can take up to ~15V of unregulated DC voltage. Take the +7.2V power railing and connect it to the Vin of the Arduino board.&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;img align="middle" src="http://farm7.static.flickr.com/6026/6000563428_69ca4a0c74.jpg" alt="Arduino Power Pin" width="500" height="343"/&gt;&lt;span&gt;&lt;span&gt;III.&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;PS2 Controller Wiring:&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;We pretty much followed instructions from this website: &lt;a href="http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/" target="_blank"&gt;&lt;a href="http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/" target="_blank"&gt;http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;img align="middle" src="http://farm7.static.flickr.com/6135/6000016365_46ef38c7e7.jpg" alt="ps2 Wiring" width="440" height="330"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Programming Code:&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;You need the PS2 Controller Library v1.6 from &lt;a href="http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/" target="_blank"&gt;&lt;a href="http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/" target="_blank"&gt;http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/&lt;/a&gt;&lt;/a&gt; and import it to your Arduino Library. If you’ve never done it before, simply extract the files on the &lt;em&gt;filepath&lt;/em&gt;/arduino/libraries folder and restart the arduino software.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;As for the code, it is Available for download at:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Bill of Materials (BOM)&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;VEX Chassis: &lt;a href="http://www.robotmarketplace.com/products/VEX-276-2024.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-276-2024.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-276-2024.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;The Chassis Rail was cut into halves to give 8 pieces that constitute the drive base&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;VEX Motors with Motor Controller 29 &lt;a href="http://www.robotmarketplace.com/products/VEX-276-2181.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-276-2181.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-276-2181.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Arduino Board UNO &lt;a href="http://www.sparkfun.com/products/9950" target="_blank"&gt;&lt;a href="http://www.sparkfun.com/products/9950" target="_blank"&gt;http://www.sparkfun.com/products/9950&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;5V Regulator &lt;a href="http://www.sparkfun.com/products/107" target="_blank"&gt;&lt;a href="http://www.sparkfun.com/products/107" target="_blank"&gt;http://www.sparkfun.com/products/107&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;7.2V VEX Battery &lt;a href="http://www.robotmarketplace.com/products/VEX-276-1456.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-276-1456.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-276-1456.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;VEX Hardware&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;8-32 Screws &lt;a href="http://www.robotmarketplace.com/products/VEX-275-1005.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-275-1005.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-275-1005.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;For Structure Mounts&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;6-32 Screws &lt;a href="http://www.robotmarketplace.com/products/VEX-275-0659.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-275-0659.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-275-0659.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;For Motor Mounts&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;!--[if !supportLists]--&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;LockNuts &lt;a href="http://www.robotmarketplace.com/products/VEX-275-1027.html" target="_blank"&gt;&lt;a href="http://www.robotmarketplace.com/products/VEX-275-1027.html" target="_blank"&gt;http://www.robotmarketplace.com/products/VEX-275-1027.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8367180529</link><guid>http://handsonlearning.tumblr.com/post/8367180529</guid><pubDate>Mon, 01 Aug 2011 22:33:00 -0400</pubDate><category>completed</category><category>omnidrive_prototype</category><category>museumlab</category><dc:creator>stevenjens</dc:creator></item><item><title>Obligatory Introductory &amp; Test Post</title><description>&lt;p&gt;Hello.&lt;/p&gt;
&lt;p&gt;As I continue my education, I have made this blog for the &lt;strong&gt;Sole Purpose of Understanding &lt;/strong&gt;anything interesting, curious, innovative, and intellectually engaging. I am a believer of the motto &amp;#8220;Mens et Manus&amp;#8221; which means mind and body. A more interpretive meaning would be &amp;#8220;learning theory and concept through hands on work.&amp;#8221; &lt;/p&gt;
&lt;p&gt;For my personal experiences, I learn and retain knowledge better when I do hands-on work. Theoretical statements simply stay for an incredibly short amount of time before I only have a slight idea of what it actually means or how I can actually try to use it.&lt;/p&gt;
&lt;p&gt;Thus, the purpose of this blog is to document any hands-on learning I do throughout the remainder of my college career and post college experiences. The idea is that documenting your work is also beneficial in memory retention. In addition, this can also be a convenient place to store my portfolio online.&lt;/p&gt;
&lt;p&gt;I will first try to import as much of my work and other useful information I have found throughout the internet.&lt;/p&gt;
&lt;p&gt;May this blog be successful and full of wonderful creations and ideas.&lt;/p&gt;
&lt;p&gt;See You Later &lt;/p&gt;</description><link>http://handsonlearning.tumblr.com/post/8364413993</link><guid>http://handsonlearning.tumblr.com/post/8364413993</guid><pubDate>Mon, 01 Aug 2011 21:26:00 -0400</pubDate><dc:creator>stevenjens</dc:creator></item></channel></rss>
