Posts Tagged ‘MATLAB’

7200OTAnother trip, another book (and a bonus deal)! Remember that Maker Faire Demo and all that image processing? I relied heavily on the Image Processing Toolbox in MATLAB and I thought I would share a good resource I came across.

Visual Media Processing Using MATLAB by George Siogkas is a good introduction to the Image Processing Toolbox. It starts with a brief overview of the MATLAB UI and then digs right into opening and displaying images. The book goes a good job of presenting processing logic and then code to execute that logic. I was able to quickly follow along and execute the same commands. After Siogkas does a few commands, he looks back at the code with a really helpful section called “What just happened?”. These sections are very helpful as they provide a different look at the code you just executed. I have found myself referring to these section and the preceding examples over and over. Each chapter contains several subtopics, so having these review sections is a good way to break things up and ensure you know what you’re doing. Also these sections tend to have big, bold headings, making it easy to find glancing though the book. (Which is more common for me while working on a project.)

The book is sort of a cross between a textbook and tutorial. Each chapter ends with a review quiz, but unlike textbook, this is not designed to be a drawn out homework assignment. Also unlike a textbook, the author takes on a more tutorial tone with very well thought out examples in which he guides you though each step. Like a textbook though, each chapter ends with a listed summary of point covered. I generally find summary sections to be sort of vague, but if it helps you, it is there. (The author lists things accomplished like “How to create …”, “How to isolate and expand …”)

Overall I really liked the book. It is a great reference and a good way to get start in MATLAB. You can find it on amazon or though the publisher. Speaking of which, that bonus deal I mentioned… Packet Publishing is having a holiday sale. You can click the banner below or follow this link. The deal is $5 for any ebook or video from packet now (December 19th) though January 3rd. A few of the books I have review come from Packet, so it might be a good way to pick up some books for the new year on the cheap!


Remember that Maker Faire demo I posted about a few weeks ago? Well as promised here is Part 2! This time I dive into the new features I added for the demo. The video format is a bit strange in that it presents a PowerPoint, but that was a requirement for a class. I ended up leveraging this work for my image processing class this semester.

One of the easiest ways to make a demo interactive is to kid a child a maker and say draw. That is exactly what this demo does. As the child draws, the robot or swarm will follow the line. I do some image processing to find the line. The first step is to reduce the search area. This is a huge time saver when it comes to processing and removes many of the issues of shadows or various markers and body parts the camera may see. Then it does a search in this region of interest (ROI) and looks for where the line intersects the ROI.

I tried to keep the new feature as streamlined as possible to avoid the issues of degraded performance. Image processing can be quite processor intensive. Since the code was already doing a lot of processing to get to this point, I wanted to ensure that any further enhancements did not add lag.

There is always room for improvement and one of those areas would be actually projecting the line to calculate the intersection. This would probably help for the cases where the line does not intersect the edge of the ROI, but that is a feature for another time. Check out the video for more details. It came together really well!

1386EN I have been working a lot with MATLAB and Simulink lately. For both my academic work and fun. If you recall the MATLAB demo I took to the Orlando Mini Maker Faire, you know that Simulink is an important part of that project. Simulink works really well for LEGO MINDSTORMS as its dataflow paradigm maps nicely to robotic interactions. I have actually been working on a tutorial to get people started with LMS and Simulink (hopefully will be posted in December or January).

So why the picture of the book? Well I love having a good reference for my work and I am currently reading this book. I will be writing a review for Getting Started With Simulink by Luca Zamboni next week, but  so far it has been a really good resource. It might be worth checking out if you will be working with Simulink. The book assumes you have never used Simulink and gets you up and running, very quickly. Check back for the full review next week!

I am happy to share Part 1 of the demo I took to the Orlando Mini Maker Faire. This video covers the basics of what The MathWorks provided me. As you can tell by the video, it is somewhat dependent on lighting. But let me describe what the base demo does.


The setup is 3 NXT robots running Simulink code that communicates with my computer. There is a camera positioned about 6 feet above the robots. Each robot has a unique pattern that can be seen by the camera. Using this pattern we can determine the position and heading of each bot.

The demo tries to get the robots to form a triangle. The position of the triangle is determined by the user. The robots will follow the triangle as the user moves it.  Check out the video above to see the tech in action! While the video was shot in my apartment, the picture, right, was from the Orlando Mini Maker Faire.

Now I love sharing cool tech with people, but I also love to put my own twist on it. What if we made the demo interactive and allowed kids to draw lines? One might think a robot or a group of robots might follow that line. One might also thing that adding more lines of different colors might allow different robots to follow different lines. Of course that is all speculation.  Maybe the photo below will be a helpful hint. 😉

Part 2...

WP_20131005_008This past weekend was the Orlando Mini Maker Faire at the Orlando Science Center. I am not sure of the final attendance numbers, but I was busy the entire time. I brought a total of 15 robots to display. Naturally I had the Shuttle and segway bots, but this event featured a new NXT project in partnership with The MathWorks, makers of MATLAB and Simulink. The video will be coming (due to poor lighting at the event, I am having to shoot the video at home) but the project features control of the NXTs from MATLAB. Navigation is done by processing the image from a camera positioned above the bots, as you can see in the first picture. I will go into more detail soon, but The MathWorks provided a good foundation for the demo and I then added a few enhancements. The code running on the NXTs was written in Simulink and the image processing and control as in MATLAB. The bots communicated with the computer via Bluetooth. I was able to demo both the example The MathWorks provide and my enhanced version, but since the lighting was spotty, I was only able to do it once. (It was very sensitive to people walking by and casting shadows from the overhead lights.)

WP_20131005_001I also brought a long a few EV3 bots. I had a couple of ‘kit’ bots that were built with the instructions (EV3RSTORM and a robotic arm), but I also decided to make my own flyer stuffing robot. I will save the details of that bot for another post as well, but it is safe to say it was a hit with every one in attendance. You can see it right on the corner of the table in the picture below.

WP_20131005_003Below are a few more pics from the display. Everyone really seemed to like the interactive display. Other members of my LUG had displays that ranged from a trick or treating street, motorized technic models, and a BrickPi. We really had a nice showing and attracted a ton of attention.

WP_20131005_002WP_20131005_005WP_20131005_007I look forward to the next event, although I might need to scale it back a bit. 15 bots was crazy! Plus, I wasnt able to bring a few of my other projects. Stay tuned for more updates. I have quite a backlog and I hope to be updating them soon!