BrickEngineer: LEGO Design

LEGO Engineering for LEGO NXT and Robot Enthusiasts

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.