BrickEngineer: LEGO Design

LEGO Engineering for LEGO NXT and Robot Enthusiasts

LEGO Mindstorms EV3: Hackable, Linux, Android and iOS!

LEGO Mindstorms, one of the best robotics kits, is about to get even better!

Earlier this month LEGO unveiled the new LEGO Mindstorms EV3 at the Consumer Electronics Show (CES), in Las Vegas. As technology becomes more a part of us, LEGO Mindstorms is evolving to provide us greater connectivity to our creations.

Robot Snake

LEGO Mindstorms EV3 Robot Snake

Like its predecessors, LEGO Mindstorms EV3 will four motors and five sensors including a new infrared sensor that will enable the robot to track a remote control. The expanded brick employs an ARM 9 central processor that can access 64 MB of RAM and 16 MB of Flash. This results in more room for stored programs. The brick also comes equipped with an SD-slot that allows one to expand the memory further. With a new secure Bluetooth chip, the LEGO brick can now connect to the Android and iOS operating systems so that one can use a smart phone, an iPhone or an iPad to control the robot! There will also be a USB port that will allow connectivity via WiFi. This increase in connectivity will open up a world of new possibilities.

Hackers will be happy to hear that the operating system is a version of Linux for which LEGO will release detailed documentation as well as an SDK.

LEGO will release the Mindstorms EV3 to the public this summer.

KnuthLab LEGO Exploration Rover

Image of KnuthLab Exploration Rover

KnuthLab Exploration Rover with Researchers A. Fischer and N. Malakar

The Knuth Cyberphysics Laboratory in the University at Albany Physics Department has developed the KnuthLab LEGO Exploration Rover, which acts as a testbed for robotic intelligence and navigation software. Development of this rover was funded by a NASA SBIR Award (Advanced Bayesian Methods for Lunar Surface Navigation) through Autonomous Exploration Inc. as well as a University at Albany Faculty Research Award (Developing Robotic Explorers, PI: K.H. Knuth).

The LEGO Exploration Rover is powered by six NXT Standard Motors in a Rocker-Bogie suspension system used in all of the NASA Mars rover designs. The rover is approximately 1.5 ft high with a 1 ft x 1.5 ft base. It is larger than the NASA Sojourner Rover, which was part of the Pathfinder Mission to Mars in 1997, and smaller than the Mars Exploration Rovers Spirit and Opportunity. It can safely carry a payload of 8 pounds.

Image of KnuthLab LEGO Exploration Rover

KnuthLab LEGO Exploration Rover

The LEGO Exploration Rover has two laptop bays built into the box-like frame in which it can carry two Asus Eee Laptops for onboard processing. The wheels are controlled by two LEGO NXT bricks, which can communicate with the laptops via Bluetooth. The rocker-bogie suspension and low speed allows it to handle relatively rugged terrain and steep grades.

The white frame mounted on top of the rover is the Bayesian Vision-Based Navigation System being developed by Autonomous Exploration Inc. for NASA.

Check back, as we will be posting videos of its operation and discussing some of the important design features.

Danny – NXT Matlab Bluetooth Router

Daniele Benedettelli introduces a MATLAB-based NXC Bluetooth Router. This router relies on connecting a master NXT Brick to a computer via USB. This master NXT Brick then can communicate messages to up to three additional slave NXT Bricks up to a distance of 10 meters from the master. This software would allow one to create small swarms of up to three LEGO robots, which is a nice starting point for investigating distributed robotic systems.

MATLAB NXT Bluetooth Router

MATLAB NXT Bluetooth Router

The system relies on the RWTH – MINDSTORMS NXT Toolbox, the NXT Fantom Library, and John Hansen’s enhanced firmware.  The brick software is written in Not eXactly C (NXC), which requires Brick CC 3.3.

Daniele Benedettelli also has a book published titled Creating Cool MINDSTORMS NXT Robots (Technology in Action)

MATLAB Packages for the NXT

There are now several MATLAB packages for robotics, and specifically for the NXT.  One paradigm is to run the code on a PC and have it communicate direct commands to the NXT Brick via Bluetooth or USB.  I have found this paradigm to be a bit dangerous since in the event of a MATLAB crash or a miscommunication, the NXT Brick will continue with its last command until ordered to stop.  This has the potential to destroy your robot.  The paradigm that I prefer to use is to write several programs that run on the brick.  These programs take commands from files on the brick that can be uploaded rapidly from the PC.  The MATLAB code then is in charge of sending the command files and starting and stopping programs.  In the event of a MATLAB crash or communication failure, the software running on the NXT Brick can be designed to terminate gracefully.

Here are the MATLAB packages that I know of.  The first two are specifically geared toward the NXT; whereas the last is a general robotics package.

Matlab Package for LEGO Mindstorms

I recently received a comment on my post on controlling NXT robots with Matlab that pointed me to the RWTH – Mindstorms NXT Toolbox for MATLAB®, which is a public domain Matlab package that enables one to interface with and control LEGO mindstorms.

The RWTH – Mindstorms NXT Toolbox for MATLAB® was developed as a student project in the Institute of Imaging and Computer Vision at RWTH Aachen University in Aachen Germany. It provides a Matlab interface with the NXT brick that includes Bluetooth communication, sensor interface and motor interface. It requires a working Matlab license, of course.

The package is very easy to set up. It took me less than ten minutes to successfully test the example programs over Bluetooth.

There are some very nice motor features, such as motor synchronization and speed ramp-up and ramp-down.

I have yet to explore how easy it is to modify or extend the code, but it ought to be a straightforward matter.

The package can be downloaded from

Kevin Knuth
Albany NY

Content Protected Using Blog Protector By: PcDrome.