A couple years ago my Lead Engineer Andrew bought a Felt MP Cruiser off cragislist. I was insanley jealous. I absolutley loved the look of it (much more than the newer version of the Felt MP). He also bought a Skyhawk Bicycle Motor Kit which he installed with the help of our friends over at Mad Lab Industries. The motor worked at one point, but I'm not sure it still had an issue or if my lead engineer just didn't have room for it by the time it was finished. Earlier this year my lead engineer moved to start our second office, and he decided tot to take the bike. Knowing that I loved his bike, he gave it to me!
Over the next couple of months Don helped me to get the bike running again. And by helped, I mean did almost all the work. I'm slowley learnining more about this little 2-storoke engine, but I'm no mechanic. We had to clean out the fuel lines and get it a new spark plug, but finally the bike roared to life!
Until it broke.
The weld where the motor mounted to the bottom frame of the bike failed. I ordered a mounting bracket from King Motor Bikes, hoping it would get me up and running, but I didn't take into account that there was basically no clearance between the exhaust on the bike and the bike frame. I was also having some clearance issues on the bolts coming out from the motor itself. Which just serves as a $20 reminder that I need to measure and actually think about how the peice will fit, not just use the order and pray method.
Don, like a true pro came through with a new weld job. He welded a small flat plate to the bike frame to cover the hole /reinforce the frame. Then he wlesed a standoff to that plate. He used his plasma cutter to make a small plate with three holes, one to bolt into the standoff and two to bolt into the bolts coming off the motor. And just like that I was good to go!
Since then I've had a couple of 'adventures'. When I got it one of the pedals was ruined and I was impatient, so I bought a cheap pair of pedals at target. Never. Again. The pedal cracked right down the middle on an uphill climb. I also managed to lose a master link on my engine chain, but I'll carry a spare from now on just incase.
I kinda had my doubts about the motor when I first heard about it, but it's really a stupid amount of fun. And being able to switch between motor and bike can be really handy when getting around town. For my commute to work I try to use the motor sparingly so that I still get some amount of exercise, but If I'm going across town to pick up some last minute groceries I'll just motor it all the way there.
So what's next? I retro-fitted the headlight with an 1 watt LED but I think I'd prefer something brighter. I don't know if I'll try to keep the original enclosure or not. It would be easy if I wanted to go with a LiPo battery, I just don't know how much mainatnce / circuitry I want to do. Once I figure that out I'd like to try to do break lights and turn signals. Until then I'll just use a light up blinker / reflector.
I'm also looking to add a couple of saddlebags to the bike that I got from the American Science & Surplus store. If everything goes well, I'll have it looking something like this
And just for fun, here's a hasty scan of my bike using the structure sensor.
Ideally, I want to make the robot out of RobotGeek parts, as they're plentifully available to me, are low cost, and this robot could eventually become a kit. I decided that I wanted the robot to be able to sit in place, but be able to spin freely, so I started looking at the RobotGeek Continuous turn servo. I'm hoping that it's up to the task - if not I'll need to look at an Pixy camera so that the robot could track color blobs and color codes.
After a couple of terrible sketches, I enlisted the help of Wade to see what we could do. We played around with a couple of options for the tilt mechanism, eventually settling on a 180° RobotGeek Servo. Since we don't have any 'back' brackets, we had to so some clever assembly to get it working. I came up with the idea of using the 4C's idler to attach to the 180° servo, and Wade figured our we could brace two side frames together with a plate. We still need to cut a proper plate, but we used so spare plates from other projects to make a prototype. We
After our initial built, wade made some improvements to the robot, making a better mounting rig for the camera and adding a buzzer. He started working with the Pixy's code and I helped him getting the servo settings right to get some basic color tracking down.
We're tentatively calling the robot Heelo after Kat recommended we call it something that sounded like Heliotropism . We started at Helios, which turned into Helio, which begat Heelo.
We've still got a long way to go. We're evaluating the RobotGeek servos to figure out if they'll give us good enough control to make the robot lifelike. We've also toyed with the idea of using a raspberry pi as a main controller and doing some more advanced vision processing, though I think we want to keep this at a little lower level, at least for now. And then there's the question of shells. We'll probably start by designing and 3d printing some shells, but we don't quite know how the robot will look. Time will tell I guess!
My quest to create a PhantomX Hexapod Toy continues! After a couple of days thinking I had killed my printer (PLA all over teh extruder, no I don't want to talk about it right now but thaks for asking) I've got a couple new prints. I've been playing with super basic joints using rods and holes. You can find the models of my attempt here. I took the femur and tibia from my previous model and separated them. Then I added in a cylinder at the middle of the 'servo' for each part, and a hole big enough for the cylinder on the "F1 Bracket". I figure I'd try this method after I saw how well some of the joints on Kevin's Golsm 3d prints I made worked out.
The holes don't print perfectly, though I wonder if they'll be any better if I use a higher resolution (I only did 200 microns on this print). Also, I could use a file to round out the holes a bit.
This time the rods turned out pretty well, previously I had made them too long. This means there's a lot of sag and when I try to fir the bracket over it I end up breaking the bracket. I'm thinking about thickening the bracket walls up just a little bit.
As it stands, all that's keeping the joint from moving under gravity is the imperfections of the holes and rods. Kat suggested I do something with cotter pins, and I'm also just thinking about striaght gluing the prts together. But If I can figure out some reliable way to get
Gif made with the awesome Gif Rocket app. As an added bonus for this blog, here's a gif that's just full of derp. We had a Quadruoed user load the wrong code onto their robot which resuted in this derptastic IK.
So I've been having fun with the Buccaneer 3d printer, making all sorts of things. You can see an album of all the random things I've printed here
Renee from the forum posted some really cool Tibia Shells and I had to take a shot at printing them with my Buccaneer and my Glow in the Dark Filament.
I tried one using the Buccaneer's auto supports, but it used a lot of material and was difficult to remove. So I took a shot at printing without supports, and I was actually pretty impressed with the results.
There was an issue with the fr side of the shell, without a support my printer just couldn't make it work. But even with the mess, I managed to clean up the print pretty well.
Since forever I've wanted to have tiny toy models of some of our robots, so one of the te things I've been working on are tiny hexapods!
Initially I actually tried printing based on some of our 3d production files for the hexapod just to see how things would work. It turned out...poorly. The thickness of the brackets wasn't enough at the scale I was making, so I had a body and tibias, but no femurs.
Eventually I brought some of the plates (Tibia, body plates) into Tinkercad and just did some basic extrusion. Even this had some issues, so brought the .svg vector files for the plates into illustrator and deleted all the un-needed holes (I left some of the signature holes, but got rid of all the bolt holes and smaller mounting holes). I used the side profiles of F2/F3 brackets and uses some primitive cubes to build some thick brackets. I was actually pretty happy with the simplified hexapod design and it turned out better than I hoped. It was still a pain to get the supports off the model, and the bottom is marred by the supports.
So my next goal in mini hexapod is to make something that is actually joint based. If I can make the body separate from the rest of the robot, then It should cut down on supports and I'll have a movable hexapod. Of course that'a all much easier said than done.
I also printed out some of the models from KevinO's Golem Hexapod. I printed them just to see how they would come out, and I certainly didn't expect them to be great ( I expected a similar experience I had with the PhatontomX Hexapod) but surprisingly they turned out pretty well.
Printing out the parts from Kevin's Hexapod gave me some ideas about how I can make some joints using rods and holes. I started playing with some idead, but I've got a bit to go bfore I've got a working prorotype. If I make the holes to small, then the slop in the printer makes it so the rods won't fit, and if they're too big, there's slop in the joint. That, and if the rods are too long, then they won't fit in the hinges without cracking.
About 2 years ago my mother and I backed a 3D Printer called the Buccaneer on Kickstarter. We were backer #27 and paid about $300 with shipping for the promise of a printer in february of 2014. February came and went, and still no printer. Pirate3D (the manufacturer) went through all sorts of production problems, refunds, etc, to the point that there was some worry of ever getting the printer. Of course this is kickstarter, so you've got to expect this kind of thing. I wanted the printer to learn more about 3D printing, and my mom (an educator) wanted it to teach her the club kids about digital design and 3D printing. So we weren't too bothered by the delays.
We were actually really surprised when the printer finally showed up. In fact it came just in the neck of time - the next day my mom was hosting a Scratch Day Event and we set it up to show the kids. Initially I had problems with Pirate3D's Treasure Island site where you can download 3D models for your printer, but in retrospect I think it had something to do with the school's network. The generic error about not being able to download the file to the printer was frustrating, but makes a certain amount of sense. The printer actually gets models directly from Treasure Island, so it's likely that whatever method it uses to download the file was blocked. But I was able to get ahold of a windows laptop and run the Buccaneer software to load .STL files from Thingiverse
I was impressed how easy setup and the first print was. Pirate3D was really going for a simply setup machine, and as soon as I got the software dealt with, I was printing in no time.
After Scratch day I picked up some glow in the dark filament from Microcenter that is a ton of fun. I had to do some creative work to get the filament to feed into the Buccaneer since the spools didn't match, but after that it printed just as well as with the default filament.
I'm still getting used to the printer, and I've got a lot to learn about models and settings. For what I paid, I'm impressed with the Buccaneer. For a brand new one it looks like the cost is going to be around $1000. I'm not sure that I'd pay that for the Buccaneer, but we'll see after I get a little more accustomed to the printer. The printer does some things really well, and some things not so well. I need to hit up the forums and compare my results with what everyone else is printing. It would be nice if there was a base-line to make sure your printer is functioning properly. In the past I've only dealt with prints from high end machines like from shape ways, so sometimes I don't know if the imperfections in my prints are just the nature of cheap home 3D printers, or something else that I can improve. I'll have more information on the quality of my prints, settings, etc soon. Until then, here's some Print Pictures. I've also setup a webcam on the side of the printer, mostly so I can remotely see if it's still printing or not.
The HR-OS1s are shipping and I couldn't be happier! We spent the last two days finalizing the first 10 kits, but they're finally our the door. We'll have another 20 kits out this week, then the last 15 out sometime next week. I'm so excited to see how people use these robots.
I've spent the last week or so feverishly working to flesh out the HR-OS1 Documentation. I'm using Screenflow to create some cool videos that mix screen casting and video of the hardware setup. You can see them here, here, and here. I need to work on the audio - I'm using a samson mic, but I really think things would benefit from a USB headset. Regardless, Screenflow makes my workflow super easy - it even exports straight to youtube, which is stellar. I started using VNC to record other OSes, but ended up getting an HDMI capture card (the Game Capture HD, which makes things look a lot better and more responsive. It adds another layer to my workflow (Screenflow doesn't natively record from the capture card, I have to record it in another program and import it manually) but it's really not that bad (as long as I remember to hit 'record')
Last week I finished some preliminary tests with the LIDAR Lite from Pulsed Light . The LIDAR Lite is a laser based distance sensor that can measure distance from 0-40m with 2.5cm accuracy. And it's only $89.00! This combination of performance and cost make it an amazing little sensor for robotics.
This demo works well with both AX and MX series DYNAMIXEL servos (that is with both the PhantomX Turret and the WidowX/ScorpionX Turret).The biggest difference is that the MX servos have a full 360° scanning range while the AX servos only have 300°. For the video I used a ScorpionX Turret, but its really overkill. For a mobile robot I'd use the PhantomX Turret. Just having the physical construction all done for me as well as great servos with positional feedback made the whole project a breeze.
I've been really interested in working with Chrome Apps for basic demos. I think HTML is a great way to create quick and easy user interfaces, and the Canvas element makes it easy to create custom elements like the room scan. Working with the chrome serial interface can be a little wonky - I had to spend a lot of time sorting the serial input to get it to line up correctly. But once I did, getting everything up and running was really fast. I really like being able to make changes on the fly and not have to worry about restructuring my entire GUI. Chrome Apps certainly aren't the best solutions for every problem out there, but for proof of concepts and demos, they're pretty great.
I started the project by having the turret auto-scan and then send a custom 7-byte packet (2 byte header/2 bytes of position / 2 bytes of distance / check sum) I eventually figured I needed a good way to start/stop the turret and set the speed. So I turned to the ArboitX Commander library - the same one we use in our other robots. That made it really easy to send commands out from the chrome app. In the future, I'd really like to upgrade the commander library to have a built in data-return packet.
This was very much a proof of concept, so I'm not looking to make many improvements on it anytime soon (I'd like to do a little bit of code cleanup and maintenance, but that's about it). But some ideas that I thought about working on are as follows:
Using Slip Rings to allow the LIDAR lite to spin continuously instead of scanning back and forth.
Alternatively, building a battery and wireless transceiver into the system to allow the entire rig to spin (though this has limited usefulness for mobile robots.
Storing scan data for a robot to report back to the computer later. The MX servos have 4096 different positions, each position being a 2-byte value. Storing that in SRAM will max out the Arduino Uno's 2K and even the ArbotiX-M's 4K. You can lose some resolution and drop it down enough to get a scan or two, but really an SD card or other storage is necessary. Of course there are always chips like the Teensy3.1 with more storage, or you could integrate a Raspberry Pi or other SBC to just get the data on scan.
Figuring out the maximum scan speed/bottle necks.
Investigating a low cost alternative. I think that it might be possible to use standard hobby servos and a little bit of interpolation (or just speed measurements/prediction) could be used to make a servo perimeter scanner. The scan would be limited to 180 degrees and the resolution wouldn't be great, but this could be great for simple mobile robots.
Looking at even lower cost systems like a DC motor with a cheap encoder.
A few of my friends had a blind gift exchange for the holidays, with a $20 limit. I waited until pretty much the last minute to come up with my gift, so Amazon was pretty much out of the question. I was racking my brain what I could get my friend, so I went to Marshalls to try and find something. Eventually I came across a couple of Growlers for sale. Now my friend works at a brewery, so just getting him a growler would be pretty silly. But seeing the growler reminded me of a project he had asked me about a couple of yeas ago. He wanted to know if he could make growler lamps to put around the brewery. We talked about a couple different ways to accomplish it, but we never did anything with the idea. So when I saw the growler, I decided to buy one and make him a Growler lamp.