robotics company robot company  

Go Back   Trossen Robotics Community > Robotics > Project Showcase

Project Showcase Have a project that you're dying to pimp? It doesn't matter if it involves robotics, RFID, HCI, or what, as long as you think it's cool, pimp it here! Need more space for pics/videos email us:)

» Navigation Menu
Homepage
Forums
TRC Tutorials
Member Blogs
Data Center
Image Galleries
Links Directory
Contact Us

Shop Robotics
» Introduction Tutorials

» November 2009
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 12345
» Current Poll
Are you going to use Nerf-style weapons at the next Mech-Warfare?
Yes. - 18.75%
3 Votes
No. - 68.75%
11 Votes
Yes, but only if double damage is allowed. - 12.50%
2 Votes
Total Votes: 16
You may not vote on this poll.
» Trossen Robotics Blog
Phoenix 2.0 Software Released...
HUV Robotics Bioloid Accessories are bac...
The Quads are Coming!...
Just in time for Halloween!...
Boston Dynamics does it again...
» Join Us Elsewhere!






» Online Users: 211
3 members and 208 guests
Rick Brooks, siempre.aprendiendo, Zenta
Most users ever online was 1,301, 09-11-2009 at 06:59 PM.
» Stats
Members: 3,244
Threads: 2,329
Posts: 31,356
Top Poster: Adrenalynn (5,122)
Welcome to our newest member, whinolandres
Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 08-16-2007
bmouring
bmouring is offline
Abacus
 
Join Date: Aug 2007
Posts: 2
Rep Power: 0
bmouring is on a distinguished road
Honorablemention Lunar Rover Robot



Hi all, first would like to say I found Trossen's customer service refreshingly well, helpful

Now down to business...

Website with additional info/pics/reports: link

Parts:
2'x2' 1/4" thick high-impact polycarbonate sheet
8'x1-3/4"x1" 1/8" thick aluminum U-channel
Many 4-40 and 6-32 machine screws and nuts
4x Lynxmotion GHM-04 high-torque gear head motors (link)
4x Encoders for above motors (not currently used)
4x hubs and 3.5"x1.75" wheels (link)
2x Devantech SRF10 sonar rangers (link)
2x Dimension Engineering 5v switching regulators
Dimension Engineering Sabertooth 2x10 motor driver board
BDMicro MavricII Atmega128 dev board
Arcom Viper XScale-based PC/104 development kit
D-Link DCS-900 ethernet-based camera
2x random servos scrounged at the last minute
Generic 4-bit LCD
Altera MAX7064 CPLD (not currently used)
Many rechargeable batteries

Important features: Vision, all computational work is done on the robot, completely autonomous (not remote controlled)

For a course at my university, and for a later robotics competition, I built a rover that could support higher-level image processing on-board (a constraint of the competition) as some of the targets that I must pick up (painted blocks) are on backgrounds that can be the same color as the block itself.

Disclaimer:
right now, the vision is very basic, but the capability is there.

I started out with building a rugged base from quarter-inch high-impact polycarbonate (top and bottom) and eighth-inch aluminum U-channel (sides) to provide a neat little "motor sandwich." The motors, encoders, hubs, and wheels were purchased together to ensure the worked together with minimal fuss.

The motor driver board I got (at a fairly nice student discount) is quite a piece of kit. It is more than sufficient for my project as even at stall I'm not going past the capabilities of the board. Couple that with regenerative braking, several built-in protection systems, and the flexibility to control the channels with PWM, analog, or serial and you have a nice unit indeed. At this point, the Mavric was mounted as well to communicate with the driver board and simple drive tests were performed. Worked well, powerful and relatively fast (would either push or run over whatever it came into contact with ).

Hooked up the two delightful SRF10's to the Mavric's I2C/TWI system and got some simple obstacle avoidance up and running. Scared my roommates' dogs pretty well. Now my hard work wouldn't just ram directly into walls, a major plus.

At this point, I started working on a vision system. I had the DCS-900 laying around (had an opportunity to get a new one for a song, so I couldn't pass that up), and through playing around with it I discovered that making an HTTP request to http://IP_OF_CAMERA/video.cgi would return a video of some sort. After dumping a portion of the stream, I realized it was an MJPEG stream, or a JPEG with some header and footer stacked directly on top of another such JPEG, 30 times a second. After doing some research into the JPEG standard, I was able to locate and strip JPEGs out of the stream manually after a dump. Time to make computers do what they do best: no, not download questionable material , do repetitive tasks quickly.

The Arcom Viper board, donated by Arcom (thanks again, without this board I wouldn't have been able to do the vision as easily!), runs a stripped-down Linux install. The first task was to get an environment together to build binaries that would run on this ARM-based system. The dev kit install CD took care of much of this, however I wanted a nice IDE with debugging capability, so I hooked Eclipse (a fine IDE that unfortunately is targeted to Java ) to the arm-linux-gcc binaries installed by the dev kit, and built a gdb-server to connect my dev machine to the board over a SSH link to do debugging. Solved a few nagging issues this way, many thanks to Arcom, Eclipse, the CDT plugin group, and De Raadt of OpenSSH (and OpenBSD) fame (even if he can be a bit standoffish at times)

At this point, my attention turned to documentation of how to use the Independent JPEG Group's (in)famous libjpeg. It's quite a nice library as libraries go, and even provided a nice interface for writing so-called decompression source (or compression destination) managers. The default included in the library reads from a file for a compressed JPEG to work on. I decided that in lieu of writing a received JPEG to a file, then read it in for decompression (terribly slow and would shorten the life of the built-in flash storage), I would write a decompression source manager that would make an HTTP request, continuously receive the MJPEG data, parse out a full JPEG, check whether or not the decompression engine is in need of a new JPEG (indicated by making a mutex-protected request) and if so, load up the mutex-protected shared buffer. The back end took some work to get it working well (a few over-protective areas would attempt to obtain the lock twice, simply a result of working too late), but in the end worked quite well. I ended up able to get ~15 decompressed, lightly-filtered and processed (only a simple "distance from color" filter and a horizontal and vertical histogram of the filtered image) images a second, while only consuming ~15% of the Viper's resources. More than adequate for my needs.

I would then get the processing results (an X,Y coordinate of the location of the block) and send the results over a serial link to the Mavric board. It would use this data, along with the sonar readings, to track the block while avoiding obstacles (and subsequently reacquiring the block after avoiding). It works well for now, but there is still work to be done to get the system to where it needs to be for the competition. Fortunately it's not for quite a few months, and with Fall I'll have other students to help me.

I'll try to get a video of my robot running and post it ASAP.

Brad

Last edited by Dave; 09-07-2007 at 06:58 PM. Reason: Keep the hits coming
Reply With Quote
  #2  
Old 08-22-2007
Alex's Avatar
Alex
Alex is offline
trbothead - TRC admin
 
Join Date: Sep 2006
Location: Carol Stream, Illinois
Posts: 1,677
Blog Entries: 8
Images: 118
Rep Power: 75
Alex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant futureAlex has a brilliant future
Re: Lunar Rover Robot

Awesome project Brad! It's great to hear about all the support that you and your team found along the way. Sometimes that can be a project in itself.

We're excited to this video!

Thanks for the submission
__________________

“In the long history of humankind (and animal kind, too) those who learned to collaborate and improvise most effectively have prevailed”
- Charles Darwin

New to the TRC?
Customize Your Profile -- Post To and Customize Your Blog -- Create Your Own Photo Album -- Create a Tutorial

Last edited by Alex; 08-22-2007 at 11:07 AM.
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[ANNOUNCE] Rat's Life: robot programming contest omichel Robotics General Discussion 4 09-19-2008 03:13 PM
Contest Entry The eyeRobot: Robot Blind Aid Shrimpy Project Showcase 15 08-31-2008 01:54 PM
Kondo web page translated. Droid Works Humanoids, Walkers & Crawlers 4 10-06-2007 06:49 PM
Contest Entry Make a wall avoiding robot! Part 1 Brandon121233 Project Showcase 16 09-12-2007 05:41 PM
Ping Pong robot stefano.antonelli I/O Boards and Controllers 7 08-13-2007 09:49 AM

Powered by vBadvanced CMPS v3.2.0

All times are GMT -5. The time now is 05:20 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.