Do you ever wonder why geese always fly together in a V-shape? We’re not asking about the fact that it makes the work load much less for all but the lead goose. We mean how is it that all geese know to form up like this? It’s is the act of flocking, and it’s long been a subject of fascination when it comes to robotics. [Scott Snowden] researched the topic while working on his degree a few years ago. Above you can see the demonstration of the behavior using LEGO Mindstorm robots. That’s certainly interesting and you’ll want to check out the video after the break. But his offering doesn’t end with the demo. He also posted a huge article about his work that will provide days of fascinating reading.
We can’t begin to scratch the surface of all that he covers, but we can give you a quick primer on his Mindstorm (NXT) setup. He uses these three bots along with a central brick (the computer part of the NXT hardware) which communicates with them. This lets him use a wide range of powerful tools like MatLab and Processing to recognize each robot with a top-down camera, passing it data based on info harvested with computer vision. From there it’s a wild ride of modeling the behavior as a set of algorithms.
This grid of letters is a puzzle game for tablet devices called Ruzzle. The contraption attached is an automated solver which uses LEGO Mindstorm parts to input the solutions on the screen. [Alberto Sarullo] is the mastermind behind the project. As you can seen in his demo video after the break he has a flair for the cinematic. But he makes you work a little bit to discover the details of his project.
His post gives a general overview of how this works. A Linux box takes a screenshot of the Ruzzle board. After processing the graphics with Imagemagick he uses Tesseract — an Optical Character Recognition program — to figure out which letter is on each square of the playing area. From there NodeJS is used to discover all possible words with the help of a dictionary file. The final solutions are pushed to the LEGO parts to be traced out on the touch screen with a stylus. The nice thing is that he published all of his code, so you can drill much deeper into the project by pawing through his repository.
You’re certainly not going to sneak up on anyone if using this LEGO motorized wheelchair. The high-pitched whine of all those tiny motors sounds like an army of robotic mosquitoes out for blood.
Six of the LEGO Mindstorm bricks are used to drive the motors, with a seventh acting as the master. It’s not pictured above, but there is a joystick on the right hand side which allows the rider to navigate. The master brick monitors the four sensors on that joystick. It then uses a pair of motors to actuate switches monitored by the slave bricks. Each slave has one switch for forward, and another for backward and drives two motors. To get around problems with angular velocities dues to turning, all of the wheels are multidirectional.
The plan is to add Bluetooth control in the near future. The master/slave setup should make that relatively easy as it only affects one of the bricks. The idea is to facilitate Android control to the chair like we’ve seen in other Mindstorm builds.
[Brane] built an underwater ROV from LEGO mindstorm parts. Look closely at this image and you should notice something missing. The tether that normally carries power and control lines from an ROV to the surface is missing. This is a wireless solution that lets him control the device using an Xbox controller.
The video after the break shows about five minutes of test drive footage. [Brane] has a big aquarium in which he can test the thing. Since he put it together as his senior engineering project at University it’s likely that this is a testing facility at the school. Here’s the little we know about the hardware: It’s using NXT Mindstorm parts to control the motors, with a sealed chamber for a battery. Connectivity is provided by an XBee module with an NXT adapter board called the NXTBee. A laptop with its own XBee module makes up the other end of communications. Right now [Brane] uses an Xbox controller connected to the laptop, but a standalone device would be easy to build by hacking the XBee and controller together directly.
The Android device is able to control the NXT bot via Bluetooth. [Wolfgang] didn’t go into detail on that part, but you can get some pointers on the topic from this other Android controlled Mindstorm project. [Wolfgang] wanted the ability to check in at home when he’s travelling. He uses nanohttpd on the Android device to serve up a simple web interface. It uses HTML5 to push a snapshot from the phone’s camera as user feedback, and provides a set of directional arrows which let him drive the bot around.
Obviously this thing is going to run out of juice if he’s away for too long. To combat that problem he included a battery which powers both the NXT parts and the phone. Now he just needs to build an inductive charging station and he’ll really be set.
[Stewart Allen] acquired a Mindstorm kit about a month ago and he’s already building his own sensors for it. He wanted a more accurate range finder with a narrower measurement field than the stock sensor. Mindstorm has the option to communicate with sensors via an I2C bus. [Stewart] set up an ATtiny45 to act as a the slave on the bus, facilitating the analog measurement of the distance voltage by using and lookup table, and handling the data transfer with the NXT brick. His testing setup is pictured above, with an AVR Dragon for programming the tiny45 and a Bus Pirate for sniffing the I2C data during the development process. The sensor, looking great on a professionally made PCB he ordered, requires a simple driver that [Stewart] hammered out for use with leJOS, the alternative Mindstorm firmware we’ve seen before.
Here’s an Android device controlling a LEGO Mindstorms robot. [Josh] and a couple of his colleagues developed software to get both Android 2.1 (video above) and Android 1.6 (video) to work as Bluetooth control devices. The NXT cube is running leJOS, a Java virtual machine, allowing you to program Mindstorms using Java. Although their code is at an early Alpha stage, this shows that it works and is a very welcomed tool for NXT development once they get to a more stable point and release it to the masses.