PDA

View Full Version : Micro Crawler



JonHylands
12-13-2013, 06:50 PM
So, I went to a robotics conference in Florida last weekend (http://robotsconf.com) and it was awesome. I was inspired, and decided to design a new robot to play around with. I wanted something that was instant-on (no OS boards like RPi or Beaglebone Black), something small enough to sit in the palm of my hand, and something that looks cool but still has cool capabilities.

So, I came up with this:

5190519151925193

I haven't decided on a decent name yet - if anyone has any suggestions, I'm all ears.

Its designed to be almost completely 3D printed, except for the treads, which are from a Lego Technic set.

Specs:


Teensy 3.1 ARM-powered Arduino-compatible processor (64KB RAM, 256 KB FLASH, 72 MHz, lots of I/O)
3 analog Sharp IR range finders
9 axis IMU
Bluetooth radio
Optical quadrature encoders on the gearmotors (500 ticks per channel per wheel rotation)
Analog feedback from h-bridge on motor current consumption
2-cell Lipo battery

Eventually I want to add a tiny camera, and do some simple vision processing (like color blob tracking or fiducial recognition).

I'm going to write a simple app on my Android phone to "control" it, although it will be fully autonomous. The control part is getting sensor feedback, choosing simple missions, etc.

Its 102mm long, and 91mm wide (about 4" x 3.6"), and 50mm high (2").

Here's a pic of the first set of wheels:

5194

The wheels are 3D printed, with an integral gear modeled after the corresponding Lego gear.

With the gearmotors I ordered, I'm looking at about 8-12" per second top speed, depending on how much internal friction the whole thing has, and what its driving on. I'll have to wait and see to be sure, of course.

I'm excited about getting the Teensy - its a seriously kick-ass tiny little board.

- Jon

jwatte
12-13-2013, 08:25 PM
That looks very cool!

I wish the RPis and BBBs of the world would use some kind of image dump or whatever to boot in a fraction of a second. It could totally be done, if it was a priority! It could image the necessary kernel memory, and the time needed would be to wake up the hardware devices in order.

CasperH
12-14-2013, 06:26 AM
That is a nice, cute little robot platform! Will you be sharing the design/BOM ? I might want to print this for myself. What is the price tag you are looking at? Have you considred decal stickers for the flat top?

Make 3 of them and get them to race each other! :veryhappy:

JonHylands
12-14-2013, 08:09 AM
I'll definitely supply a BOM and the STL files, but you need a 3D printer that can handle overhangs to print the body parts. Note that there are only 4 pieces that make up the body - the lid, sides, and bottom. All the mounting tabs and holes are built-in to the parts.

I'm not sure of the total cost right now - will have to add it all up. I'll reply here later today with that information.

- Jon

KurtEck
12-14-2013, 09:17 AM
Looks like fun little project. Would be fun if somone could produce the special parts as part of some kit. In the mean time I may have to pick up one of those boards, looks like fun.



I wish the RPis and BBBs of the world would use some kind of image dump or whatever to boot in a fraction of a second. It could totally be done, if it was a priority! It could image the necessary kernel memory, and the time needed would be to wake up the hardware devices in order.
I totally agree, as I have been playing around again with the RPI, so I did a search and there is a thread talking a little about this up on Raspberrypi forum: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=56413
There is someone who has a set of images and the like that supposedly can boot the RPI in under 3 seconds. Not sure what all it would support though.

Kurt

jwatte
12-14-2013, 10:38 AM
a set of images and the like that supposedly can boot the RPI in under 3 seconds

There's a subculture of linux fans who specialize in cutting out all the things that you probably don't need, in kernel configurations and in start-up scripts. There are also a number of arbitrary sleeps in the start-up sequence that "solve" some particular problem on some particular platform, but which can be removed either if you're not on that platform, or if the underlying problem is solved better.
Sounds like that's been applied there! It's still booting from scratch, though, although 3 seconds is pretty good.

JonHylands
12-14-2013, 01:14 PM
Parts Cost:

Teensy 3.1 - $20
Custom carrier board for Teensy: ~$50 (has plugs for all sensors, hbridge, etc)
- you could get away without this if you are willing to use a protoboard, or solder wires directly to your Teensy

Dimension Engineering 5 volt switching regulator: http://www.dimensionengineering.com/products/de-sw050
- $15

Batteries: http://www.skyhooks.ca/electric.htm#Polycells
- Polycell-250
- $40 for 2

H-bridge board: I bought the one I'm using from Pololu about 4 years ago. Here's a pic of the top and bottom:

5195

This board is 29mm x 39mm, so its somewhat smaller than what they offer now. It was around $30.

Motors: http://www.pololu.com/product/2214
Encoders: http://www.pololu.com/product/2591
- about $43 for two motors and two encoders

Bluetooth module - https://www.sparkfun.com/products/10393
- $40
9-axis IMU - http://www.pololu.com/product/1268
- $40

Sharp IR sensor - http://www.trossenrobotics.com/sharp-ir-distance-sensor4-30cm.aspx
$33 for 3

Lego set: http://www.toysrus.ca/product/index.jsp?productId=12003360
$30

So the parts total comes to somewhere around $350, not including tax or shipping.

- Jon

jwatte
12-14-2013, 03:07 PM
You can easily shave $50-$100 off that while still buying from reputable US dealers:

The Murata OKI-78SR-5 is one-third the cost of the Dimension Engineering switching regulator, and has a higher amperage rating to boot. It comes in a 3-pin configuration compatible with the 7805, too: http://www.digikey.com/product-detail/en/OKI-78SR-5%2F1.5-W36-C/811-2196-5-ND/2259781 $4.30

Batteries are a lot cheaper from hobbypartz.com, and I've had great success with most of their parts and customer service: http://www.hobbypartz.com/77p-minilipo-250mah-15c-1s1p.html $2.50 * 2

Cheaper H bridge for 1.6A stall motors from Polou: http://www.pololu.com/product/2130 (2A per channel; also, smaller) $4.95

Custom boards are pretty cheap to make in the US at OSH Park ( http://www.oshpark.com ). $5 per square inch, and you get three of them. If you can deal with slightly less precise boards, and waiting for Chinese mail, you can get 4 square inches for $10 from China, in 10 copies! ( http://imall.iteadstudio.com/open-pcb/pcb-prototyping/im120418001.html )

JonHylands
12-14-2013, 03:39 PM
Absolutely - there are much cheaper avenues for some of this stuff, but a lot of it is stuff I already have (the h-bridge board, the bluetooth module, the voltage regulator).

Batteries are an issue, because although you can get 250 mAh batteries that are way cheaper, I haven't found any that are in the right form factor (30mm x 16mm x 6mm per cell) anywhere else.

In terms of the custom board, yeah, I typically use a place up here in Canada that costs more, but you get your boards in 2-3 days. I'm also including the cost of all the connectors and wires in there, although I have all of those already.

- Jon

ps - here's a pic of the parts so far. The base is printed, but in the soak tank to remove support material. I've mounted a couple GP2D12's on the side panels, since I have a couple in my parts bin.

5196

JonHylands
12-14-2013, 06:39 PM
So here's what I have now - the sides and bottom of the chassis are done and put together for fit, and I've included all the other parts I have (except for my bluetooth module, which I can't find right now) that are ready to go.

5197

I'll be replacing the 3 GP2D12's I have mounted now with some GP2Y0A41SK0F (which as it turns out Digikey stocks). I want the better close-range behavior of those sensors, even though I will lose some distance. But realistically, I don't care what is going on more than 30 cm from the robot anyways, so they should be fine.

One note about this robot - like all of my robots, it is designed to be taken apart, so everything is held together with machine screws in tapped holes. I really like printed ABS for that sort of thing.

Looks like I miscalculated on one thing - there isn't enough room under the Teensy carrier board for my Dimension Engineering 5 volt regulator. I could probably fit an LM2940, but I was hoping to use a pre-made switching regulator. Oh well...

JonHylands
12-14-2013, 09:01 PM
And here's another picture, with the h-bridge board mounted, and a to-scale printout of my teensy carrier board beside it.

5199

- Jon

JonHylands
12-15-2013, 03:28 PM
So I've ordered the gearmotors last week, but while looking through my parts boxes this morning I found a bag with half a dozen of the little gearmotors in it - the shaft isn't as long, and they don't have the back-shaft for the encoder, but they are physically the same size, and the mounting holes are in the same place.

In spite of all the careful planning and CAD modeling, I still manage to make mistakes. Fortunately, plastic is easy to cut/file/sand, so if the mistake is of the "too much material" variety (which so far they all have been), its been relatively easy to correct without having to reprint the whole thing.

Here's a picture with the motors mounted - the mounts themselves, molded into the side panels, work perfectly, as do the 1.6 x 4mm machine screws I happened to have in a little bag (along with a zillion other size machine screws).

5207

I think I'll try the OSH Park place for the carrier board - thanks for pointing them out jwatte!

Here's a side view, showing the motor mount. You really see the scale of the thing compared to my hand - its pretty small.

5208

- Jon

Xevel
12-15-2013, 10:44 PM
Interesting project, and I particularly like the small size and compact layout :)

Two questions however:
How do you plan to handle the fact that when there is an object less than 3cm away from the sharp sensor, you get output values similar to cases where you have an object much farther? The only effective way I have ever found to fix that without adding other sensors is to recess the sensor into the body of the robot so that when an object is in contact with the hull, it is actually in the normal sensing range of the sensor.

I find that having parts that require a printer that can do satisfactory support structures is a bit of a shame, considering how much low end printers suck at this. Wouldn't it be possible to split the hubs in two parts that can be printed without support and could be screwed together?

EzioYugen
12-16-2013, 03:27 AM
So here's what I have now - the sides and bottom of the chassis are done and put together for fit, and I've included all the other parts I have (except for my bluetooth module, which I can't find right now) that are ready to go.

5197



Even though not completed, this robot looks extremely professionally designed! This looks like a kit you'd buy in a store or online for sure. Just wanted to drop in and say that. And I for one am excited and waiting to see pictures of the end result.



I haven't decided on a decent name yet - if anyone has any suggestions, I'm all ears.


Without being judged, it looks kind of cute.. and it is tiny.. Do you have any name ideas for it currently?



Specs:

Teensy 3.1 ARM-powered Arduino-compatible processor (64KB RAM, 256 KB FLASH, 72 MHz, lots of I/O)
Eventually I want to add a tiny camera, and do some simple vision processing (like color blob tracking or fiducial recognition).

I'm going to write a simple app on my Android phone to "control" it, although it will be fully autonomous. The control part is getting sensor feedback, choosing simple missions, etc.



Will the processor have enough juice to run the robot autonomously? I know it's probably not important now, but can the processor be scaled up(if needed) and still fit physically?

JonHylands
12-16-2013, 05:12 AM
Interesting project, and I particularly like the small size and compact layout :)

Two questions however:
How do you plan to handle the fact that when there is an object less than 3cm away from the sharp sensor, you get output values similar to cases where you have an object much farther? The only effective way I have ever found to fix that without adding other sensors is to recess the sensor into the body of the robot so that when an object is in contact with the hull, it is actually in the normal sensing range of the sensor.

I've been thinking about this a little - I can't recess the sensor that far, so I may add a Proxdot on each side, so that I can tell if the object sensed is really close. As far as the front goes, no idea there. Possibly some kind of contact bumper made of wire, or something like that.


I find that having parts that require a printer that can do satisfactory support structures is a bit of a shame, considering how much low end printers suck at this. Wouldn't it be possible to split the hubs in two parts that can be printed without support and could be screwed together?

Actually, I suspect the hubs could be printed on most printers. Its the bottom chassis panel that wouldn't print, because of the battery compartment and built-in switch holder. If I get a lot of interest, I might do a rev. 2 that prints on hobby printers, although I'll need someone with one of those to do a bunch of trials, because I don't have easy access to one.

- Jon

JonHylands
12-16-2013, 05:22 AM
Without being judged, it looks kind of cute.. and it is tiny.. Do you have any name ideas for it currently?

Well, I've been thinking about something like "uC". uC is a common abbreviation for micro-controller, and this is a micro-controller-based robot. It is could be an abbreviation for Micro Crawler, which is I've been calling this robot for lack of a better name.


Will the processor have enough juice to run the robot autonomously? I know it's probably not important now, but can the processor be scaled up(if needed) and still fit physically?

A Teensy 3.1 has got tons of horsepower, if you're used to working with "normal" 8 bit micro-controllers like the AVR or PIC. My quad walker Roz spent a bunch of time wandering around with an Atmega644 (Arbotix), which has way lower capabilities compared to a Teensy 3.1. Seeker 2x, my autonomous mini-sumo, with an ATmega128, has a lot of FLASH (128 KB), but only 4KB of RAM.

There are lots of things that Roz will be able to do now that it has a 1GHz Linux SBC onboard, that I can't do with a Teensy 3.1. But that's kind of the point with this robot - I want to get away from the "bloat", and have something small and simple that powers up instantly, but still has much more processor available that your typical Arduino-based crawler.

- Jon

JonHylands
12-16-2013, 06:17 AM
And here's a pic from the side, very similar to one of the CAD poses, with the track attached temporarily...

5209

- Jon

CasperH
12-16-2013, 06:27 AM
Awesome! :cool:


Actually, I suspect the hubs could be printed on most printers. Its the bottom chassis panel that wouldn't print, because of the battery compartment and built-in switch holder. If I get a lot of interest, I might do a rev. 2 that prints on hobby printers, although I'll need someone with one of those to do a bunch of trials, because I don't have easy access to one.

If I had the time I would have given this a go, maybe in the future! :happy:

JonHylands
12-18-2013, 02:18 PM
I updated my blog (http://blog.huv.com/2013/12/uc-microcrawler.html) with more pictures and info...

5214

- Jon

EzioYugen
12-20-2013, 06:24 AM
Well, I've been thinking about something like "uC". uC is a common abbreviation for micro-controller, and this is a micro-controller-based robot. It is could be an abbreviation for Micro Crawler, which is I've been calling this robot for lack of a better name.

MiCrawl, uCee... Those popped into my head first. I'll try to think of some more.




A Teensy 3.1 has got tons of horsepower, if you're used to working with "normal" 8 bit micro-controllers like the AVR or PIC. My quad walker Roz spent a bunch of time wandering around with an Atmega644 (Arbotix), which has way lower capabilities compared to a Teensy 3.1. Seeker 2x, my autonomous mini-sumo, with an ATmega128, has a lot of FLASH (128 KB), but only 4KB of RAM.

There are lots of things that Roz will be able to do now that it has a 1GHz Linux SBC onboard, that I can't do with a Teensy 3.1. But that's kind of the point with this robot - I want to get away from the "bloat", and have something small and simple that powers up instantly, but still has much more processor available that your typical Arduino-based crawler.

- Jon

I didn't know that tiny board was that powerful, that's awesome. I can totally understand trying to get away from all the "bloat" as you call it, and an instantly booting bot is pretty awesome. Especially looking as nice as yours so far.

JonHylands
12-20-2013, 07:55 AM
I actually really like uCee - that's a better name than uC. Thanks!

- Jon

Gertlex
12-25-2013, 08:33 AM
Awesome work, Jon!

I want one; sadly I don't think my Cupcake would print very round wheels... but I do have basically all the parts to roll my own!

JonHylands
12-29-2013, 02:44 PM
How do you plan to handle the fact that when there is an object less than 3cm away from the sharp sensor, you get output values similar to cases where you have an object much farther? The only effective way I have ever found to fix that without adding other sensors is to recess the sensor into the body of the robot so that when an object is in contact with the hull, it is actually in the normal sensing range of the sensor.

So I did some testing today with my Sharp IR sensors, and wrote a blog post about my results...

http://blog.huv.com/2013/12/ucee-of-rangefinders-and-proxdots.html

- Jon

JonHylands
01-01-2014, 04:52 PM
Now I'm using the combined RangeFinder sensor to control the motor speed (on the breadboard). Current code can be found on my github account (https://github.com/JonHylands/uCee).


http://www.youtube.com/watch?v=BdVKjMYf7O4

JonHylands
01-24-2014, 11:59 AM
New blog update (http://blog.huv.com/2014/01/ucee-coming-together.html) showing the latest stuff - I got my Teensy Carrier, so uCee is a lot closer to working.

5319

- Jon

JonHylands
01-25-2014, 12:34 PM
And here's uCee, rolling around on its own:


https://www.youtube.com/watch?v=d2gnegs3OcA

KurtEck
01-25-2014, 12:52 PM
Pretty cool. When your video starts up you don't realize how small it is, until your hand shows up in the camera

JonHylands
01-25-2014, 07:30 PM
Here's a nice picture, and a better video...

5322


https://www.youtube.com/watch?v=Gln-jAQxop4

Gertlex
01-26-2014, 12:14 PM
Nice! What's next? :)

JonHylands
01-26-2014, 12:59 PM
So, next up is a couple things. I need to build 3 ProxDot sensors, and mount them. I need to fix the idler wheels so they stay parallel to the axle line, which will involve printing some internal axle shaft bearings and gluing them to the sides. Or I may just decide to re-print the two sides, and include them directly.

I ordered a couple battery packs, but it looks like they will take a couple weeks to show up.

Mostly what I'll be working on for the next little while is software. Specifically, extending the software I'm writing now in Python for more capabilities, and helping my brother extend MicroPython's capabilities with respect to hardware features on the Teensy (I need interrupt on change for the encoders, and I2C for the IMU).

I'm also working on designing a MicroPython board directly, that will replace the Teensy and carrier board, and just have the ARM chip directly with the connectors I need. I've got the schematic pretty much done, so next up I'll need to do the board layout, and send it off to be made. With that board, I'll be able to run the full version of MicroPython, and not just what we have now, which was shoehorned onto the Teensy 3.1.

- Jon

JonHylands
02-03-2014, 04:55 PM
So, here's my MicroPython board, sitting next to my Teensy 3.1 carrier:

5353

It works nicely, and of course the board layout is much better optimized for uCee. I had an issue with the 8 MHz crystal not working, but after a lot of debugging I ended up replacing it with a hacked in 8 MHz ceramic resonator.

JonHylands
03-22-2014, 08:08 PM
So I ended up making a few changes to the board design, and ordered a new one with the changes. I decided to try SeeedStudio, and so far I'm impressed. The boards took 4 weeks to get here, and they look really nice.

5451

Once my parts show up on Monday, I'll put one together, and make sure everything works.

- Jon

Carl
03-28-2014, 08:25 AM
It looks very cool; I'm excited to see how the result comes out and how it works; any chance you make a little video of it?

JonHylands
03-28-2014, 09:38 AM
https://www.youtube.com/watch?v=Gln-jAQxop4

jwatte
03-28-2014, 10:37 AM
That looks very good! Now if you could 3D print the treads, too :-)

kamondelious
03-28-2014, 06:26 PM
Very cool Jon!

DangerousThing
04-08-2014, 02:37 PM
I agree, nice video. Though it sounds like a dentist's drill to me.

I'm not sure if my dog would have chased it or ran away to hide!

It might be possible to print treads with one of the more flexible filaments out there. NinjaFlex is the only one I know by name, and I've never used any. I'm still waiting for my first printer to arrive.

JonHylands
04-08-2014, 02:49 PM
It might be possible to print treads with one of the more flexible filaments out there. NinjaFlex is the only one I know by name, and I've never used any. I'm still waiting for my first printer to arrive.

These treads are actually hard plastic pieces that are snapped together. So you could just use a normal ABS printer to print them.

- Jon

Carl
04-09-2014, 07:56 AM
Thanks for the video!
Wow, it looks even more amazing than it did in the pictures! Congrats!

jwatte
04-09-2014, 11:27 AM
you could just use a normal ABS printer to print them

Could you really? That's the question. ABS printers have some finite resolution that's fairly coarse.

JonHylands
04-09-2014, 12:24 PM
Well, you would want to change the design slightly, so it used actual steel pins instead of plastic snaps, but with that change, I don't see why any halfway decent 3D printer couldn't print them. Certainly my Mojo could print them with no trouble.

Gertlex
04-09-2014, 03:56 PM
Could you really? That's the question. ABS printers have some finite resolution that's fairly coarse.

For me that often just means a few iterations are required and my CAD model looks weird :D

jwatte
04-10-2014, 10:57 AM
so it used actual steel pins instead of plastic snaps

But then it's not a 3D printed tread anymore.

JonHylands
04-13-2014, 06:47 PM
Sure they are. The rest of the robot is 3D printed, even though the pieces are help together with stainless steel machine screws.

jwatte
04-13-2014, 09:27 PM
To me, that feels like an answer to a different question. My question was intended as "I wonder if the threads, which are currently made of all plastic segments, can be entirely built of 3D printed segments, staying all plastic?"
Of course, that semantic is only super clear in my own mind, so the fact that you didn't understand that probably means you're not a figment of my imagination, and reality is real after all :-)

Carl
04-14-2014, 03:42 AM
I think 3D printing is a brilliant idea; I didn't check out this kind of technology (I recently started working with plastic for the first time), but judging from the pictures, the result is amazing!

CasperH
04-14-2014, 08:48 AM
To me, that feels like an answer to a different question. My question was intended as "I wonder if the threads, which are currently made of all plastic segments, can be entirely built of 3D printed segments, staying all plastic?"
Of course, that semantic is only super clear in my own mind, so the fact that you didn't understand that probably means you're not a figment of my imagination, and reality is real after all :-)

LOL :veryhappy: So glad we have confirmed reality. :wink:

Tracks can be 3D printed "in place", there are actually several solutions. Doing a search on Thingiverse resulted in several good ideas.


I think 3D printing is a brilliant idea; I didn't check out this kind of technology (I recently started working with plastic for the first time), but judging from the pictures, the result is amazing!

Yes, it definitely is. I do it quite a lot, you can combine both the outside "looks" with a shell that is completely functional in holding all your parts together. It might be a good idea also for your large robot project. :wink: Keep in mind, that the Micro Crawler was printed on a very fancy (10000+ USD) printer with very good soluble support printing capabilities. I am not sure, but I think this one can only print one color also.

JonHylands
04-14-2014, 12:46 PM
Keep in mind, that the Micro Crawler was printed on a very fancy (10000+ USD) printer with very good soluble support printing capabilities. I am not sure, but I think this one can only print one color also.

As it happens, you can only print one color at a time, but the Mojo is capable of printing in a number of different colors now:

http://www.stratasys.com/3d-printers/idea-series/mojo

Specifically: ABSplus in ivory, white, blue, fluorescent yellow, black, red, nectarine, olive green or gray.

- Jon