Feb 13, 2007

Fun with HiTechnic


Last Saturday, I had the opportunity to participate in a local RoboCup Junior (RCJ) training session at Georgia Tech University. One of the competitions of RCJ is 1-vs-1 soccer and 2-vs-2 soccer. Robots detect a ball giving off an infrared signal and try to score points.

I must thank HiTechnic for sending me a prototype of their new IRSeeker to play with and show off at the session. With it, I was able to build a robot that could participate in the 1-on-1 or 2-on-2 soccer challenge, but it was tricky! In the 1-on-1, the robot has specific limitations - it must fit inside an 18cm diameter cylinder (with all arms and moving parts fully extended) and can be no taller than 22 cm.

I started by printing out a gray circle with a diameter of 18cm and began to build. Try it - try keeping your Brick, wheels, and any sensors or other tools inside that circle... very challenging. Well, you're looking at my solution. In the photo, the IRSeeker is on the left and the Compass sensor is on the right. I'm also including a top-view photo, but the circle is difficult to see. Trust me that it does all fit inside that circle!


To give you an idea of how the IRSeeker works, imagine dividing the IRSeeker's surroundings into 30 degree sections. The rear-most sections are not readable (about 90 degrees worth), so numbering the accessible sections from left to right gives the IRSeeker 9 sections to monitor. (This image is taken from HiTechnic documentation.)



I take the value that the IRSeeker obtains (1-9) and (because I lacked time) using a rather unsophisticated string of COMPARE blocks, I have the robot turn the proper number of degrees so it is facing the correct segment where the IRBall is located. Not very fancy, but it'll work in a pinch...

Also provided to me by HiTechnic were some prototype boards (solderless and solderable) that you can use to create your own sensors and such... all able to be connected to the Brick via the standard NXT cable.


All in all, HiTechnic is developing a nice range of add-ons for your NXT. I highly encourage you to visit their website and they love feedback! If you've got something you'd like to see developed (sensor-ish, that is), drop them an email and see what they have to say...

Thanks you, HiTechnic team, for the loans and help in getting the stuff to work.

Jim

10 comments:

Brian Davis said...

Nice 'bot-building, Jim! Yes, getting something like this into the size or weight limitations of "sheet metal" class contests is often tricky, but that looks like a reasonable solution. How stable was it? It looks like rapid acceleration might have been difficult, but the ball caster was a nice approach.

For programming, there might have been a simpilier option. If the reading was less than five, turn one way, more than five, turn the other, and at five go straight ahead. Not perfect, but it should get you there much of the time.

Again, nice job!

--
Brian Davis

Anonymous said...

I wonder if HiTechnic will ever start to provide motors. I would like to see a Micro Motor again. Old Lego Micro Motors ae going for $25 to 30 dollars now on the web.
I have found someone making their own Mini Motors on eBay. Here's the link. What do you think?

http://cgi.ebay.com/NEW-Lego-Mini-Motor-Technics-Mindstorms-NXT_W0QQitemZ290082489762QQihZ019QQcategoryZ19005QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

Thanks,
Angel

Brian Davis said...

Well, those minimotors *look* interesting - they've been sold for a little while - but until I've actually tested one, it's hard to say. I've not grabbed one on eBay to compare to the other "stock" LEGO motors, and until I do I'm not going to put forth much in the way of an opinion. For instance, I'm concerned about durability (both from long-term running and impact, i.e., somebody dropping it).

As to my previous comment on how to program the robot to find the ball, forget it - there's a much easier way I'm sorry I didn't think about before. If you have a steering value you can wire into the Move block... well, 'nuff said ;-).

--
Brian Davis

esmetaman said...

Fantastic!!!

I would like to know where I can buy a Robocup Jr soccer ball

Write me to bren@juanantonio.info

Juan Antonio Breña Moral
www.juanantonio.info

Anonymous said...

Brian,

Unrelated to this topic: My son and I finally got your terrific DAZLR built, but I'm having lots of issues connecting the data wires using the NXT program builder. Any secrets on how to get the data wires to go to the correct ports? Is your dazlr.rbt file available anywhere online? Basic NXT programs are fine, and I've been a software developer for 28 years, but this interface has me stumped. Help!

Brian Davis said...

The NXT-G interface is certainly tough to work with at times, I have many of the same problems. As to DAZLR's program, it actually is out there in cyberspace... along with a lot of other greaty creations on LEGO's own NXTlog! Go to the Mindstorms site, enter the NXTlog and search for DAZLR, and I think you will find my program there.

As to getting the wires "right", keep in mind the interface is designed for a kid to work, so simple is how it tries to act (emphasis on "tries"... I realize it doesn't always succeed). When the pointer turns to a wiring spool, click *once* (not click and drag), and then move to the plug you want to connect to. When you are over that plug, wait a second for a tooltip to come up naming the plug (to make sure you have the correct one), and then click to complete the wire.

If the problem is broken wires when you think they should be correct, check the plug type carefully (is it an input or an output plug? Do the types match?), and remember that the "output plug" on the right side of an input plug is *NOT ENABLED* unless something is wired into its input side (these plugs are pass-throughs, you can't "wire out" the values entered in the configuration pane this way... unfortunately).

--
Brian Davis

Anonymous said...

Brian,

Thanks so much for your quick response (about issues with running the data wires for DAZLR). I think with this new knowledge about not trying to drag the thread, I should be able to run most of the wires. May have issues when the wires split to multiple targets. I don't recall the data wire help section mentioning just clicking on the target. I also was able to locate the .rbt file, so thanks for your lead on where to look. I had no trouble finding your .png file, but the .rbt had escaped me. Unfortunately, the SQL server has some issues currently, so a search on the NXTLog site was not an option, so I just paged through until I found your DAZLR project (#548). Thanks again!! ...Pat

Anonymous said...

One last follow up on my data wires NXT-G thread. Brian, I was able to connect the wires per your suggestions (Thanks!) but still am unclear on how to get a wire from the far left of the program to the far right. To get to the far right I need to go to pan mode, and once that is done, the thread appears to be dropped. So it does not seem intuitive (to me at least) how to start a data wire thread, then pan to a different part of the program and join that thread to its input node. ...Pat

Brian Davis said...

If you really need to "wire across" a very wide (long) program,m you might want to consider wiring the value into a variable block, and then dropping a read varaible block near the end to wire out of. But you *can* wire "beyond" the screen edge...

Click on the source port to start drawing out a wire, and then move the cursor to just beyond the right edge of the NXT-G window. You'll find the window obidiently scrolling, revealing more code that was previously off-screen.

Maybe not obvious or intuitive, but it's there :-)

--
Brian Davis

Anonymous said...

Does anyone have any hints as to when HiTechnic is going to release any of its sensors, primarily the IRSeeker, under the development section of their website?

Related Posts Plugin for WordPress, Blogger...