June 2013 Status Report

status reportThis is The Basement Lab for Computer Vision and Personal Robotics’ June 2013 status report. Here I present status and progress for various tasks and my goals for the next phases as well as my hardware acquisition plans.  Continue reading

QNavigationPort: Subclassing the QViewport (featuring the QStateMachine)

navigation port 2In previous posts, I presented a remote controlled Arduino robot and “Robot Navigator”, a graphical user interface under development that is mainly aimed at controlling robots by visual feedback. The interface is capable of grabbing and displaying images simultaneously from up to three webcams. Robot Navigator now includes two instances of a widget allowing manual control over a robot. This widget has been introduced in the post about the Arduino Robot and it allows commanding a robot to go forward or backwards, to rotate towards its left or its right or to stop by the click of a button. However, to truly achieve real mobile robotics, I need to implement more sophisticated means of control such as scripted missions and navigation by visual feedback. This time, I present the navigation port I implemented and integrated in the Robot Navigator software. The intent of this class is to graphically define navigation paths to be later provided to the vision-based controller. This GUI class relies on an internal state machine to track user’s interaction. Firstly I will present the navigation port’s features, then a bit of theory about state machines and why they should be used more often by programmers. Finally, I will present the class implementation based on the Qt framework’s state machine: the QStateMachine. Continue reading

Video encoding with FFmpeg and Qt Creator

As promised, now that I am done with building my new robot, I am back to my “Indoor GPS-like Navigation System” series.  I previously presented the vision-based indoor navigation system I intend to implement, the system’s graphical user interface and how to acquire images from webcams on Windows systems with Qt creator and a little open source library based on Direct Show. This time, I thought it could be interesting to present functionalities I added to my GUI in order to grab and encode video sequences and how I did it using a cross-platform open source library: FFmpeg. Continue reading

Building a remote controlled Arduino robot based on the Turtle-2WD mobile platform


In previous posts, I presented new hardware I acquired to build an Arduino robot and preliminary component testing. In this post, I share my experiments aimed at building the robot. Firstly, I will present and justify the electrical system I designed. Secondly, I will talk about its implementation and thirdly I will review the mechanical assembling. Finally, I will present a test code featuring QT. Continue reading

Computer audition goes open source

Computer audition goes open source

Being to human earing what computer vision is to human vision, computer audition is another interesting discipline in the field of robotics. It intends to give robots the abilities to perceive and react to sounds generated by their environment. These abilities consist in source separation and in source localization and tracking in the early stages. At later stages, one can also find source identification and speech recognition.

Continue reading

Testing newly acquired robot components


My last post presented new hardware I acquired to build a remote controlled mobile robot: an Arduino Uno, a DFRobot Motor Shield 2A and a Copperhead Wifi shield. This post presents the work done to test the new material. First, the Arduino microcontroller is tested individually. Second, motor shield is combined and tested with the Arduino, then Copperhead shield and Arduino are tested together. Finally, the Arduino is tested with both shields. Continue reading

Back into the basement with new stock in the inventory!


I am finally back in the basement! To celebrate, I acquired new hardware to build a second remote controllable robot. The inventory now counts a second Arduino Uno, a second Copperhead WiFi shield, a DFRobot motor shield 2A, a Turtle-2WD mobile platform and a lot of colored wires. Before ordering shields, I verified on shieldlist.org to avoid pin conflicts between the Copperhead and the motor shield. According to Figure 1, there are no conflicting pins. Continue reading