Skip to main content

Moving Onto Linux

A brief note to set the stage for some posts I'll be making: I have switched to Linux. With the expiration of XP support it was time to switch and I wanted to get off the Windows treadmill. I also wanted to switch to start using Robot Operating System (ROS) with OpenCV for my projects.

I bought a bare-bones desktop machine with quad-core I7 @ 3.6 GHz with 8 Gb of memory. Just a TB of disk since I don't store a lot of video, games, etc. I add a System 76 laptop also with quad-core I7 but not as fast, also with 8 Gb memory. I went with high end machines but didn't pay for the premium processors which would have added $$200-300 to the cost. My thought was to get machines that will last for 5-6 years if they don't break.

Both have Ubuntu 14.04 LTS but I could not stand the Unity interface. Sorry, but these machines shouldn't look like giant smartphones. I installed Gnome to get a menuing interface.

I've been quite happy and have gotten used to Linux. There are still a few places where the Linux and program developers need to be sat down and beaten with rubber hoses until they fix problems. The main one is you should be able to position windows and have them start up in the same place. My understanding is both groups point the finger at the other one saying, "It's your responsibility." It probably needs support from both sides so just fix it, dang it.

In the meantime I've played with Arduino's on two different robots: a line follower and a balancing robot. Also used the Arduino to play with stepper motors. All those projects need more work to finish them but, well, other projects created distractions. Someday...

I also started playing with the Raspberry Pi B+ and found it quite interesting. The biggest hassle was having my SD images that I saved be corrupted. I finally tried saving with my laptop's built in reader instead of the USB dongle on my desktop. The USB dongle is gone, replaced with a new $5.00 micro-SD reader that so far works well.

I collaborated on a video processing project on the Pi 2 but the project just disappeared. But it did lead to some interesting experiments including live streaming video from the Pi camera through the Apache web server. The general experience taught me a lot about the Pi (and found that stupid dongle problem).

I'm quite interested in the Pi for robotics. It can offload some of the processing from the main computer. I expect if the 2016 SRR occurs I will use at least a couple Pis along with my Atom CPU based PC. But that discussion is left for the next posting.

I do have ROS installed and working with Eclipse so I can develop by my standard approach. I even have Eclipse installed on a Pi 2 and it works okay. It isn't super fast but adequate should I need to do some code and debug cycles on the Pi.

That fills in most of the gaps since the last posting, at least as far as technical stuff.


Popular posts from this blog

Sensor - Accelerometer & Magnetics

Just as I was finishing my first look at the accelerometer and magnetic field sensors a couple of threads cropped up on the Android Developer's group:

I had the basic code working so dug a little deeper into the rotation routines and the timing. I posted responses on the threads but want here to dig into the details more.

First some observations applicable to my G1:

The sensors report approximetly every 20, 40 and 220 msec for FAST, GAME, and NORMAL.
A sample may be missed for a specific sensor but usually one of them will be generated - but sometimes all can be missed.
The magnetic field sensor is most reliable with only a few drops. The other sensors are dropped considerably more often.

A caveat in all this is the way I setup the sensor handling may make a difference. I have a singl…

Programming Languages Used for SRR

I asked at the SRR Challenge about the languages and vision processing used by each team. Here is what I found:

Team Language                       Vision Processing
Intrepid                         C++ / Matlab                                           Kuukulgur                     C++                                          OpenCV Mystic                           C++                                          RobotRealm SpacePride                    RoboRealm state machine          RoboRealm Survey                           C++, Python                             OpenCV Middleman                     LabView                                   LabView UCSC                           C/C++                                      OpenCV Waterloo                       C++, Python                                             WPI                              C++                                                              Wunderkammer             Python                                      ROS …

Shifting Gears - iRobot Create

I'm shifting gears to robotics. Awhile ago I got an iRobot Create. Its basically a Roomba vacuum cleaner with the guts removed to make a cargo area. In this area is a 25-pin connector that provides power, TTL serial port, digital and analog I/O.

I also got a Command Module (CM) which fits onto the connector. The CM is an Atmega 168 processor that adds some additional I/O. It can be programmed to control the Create. I did so and basically reproduced the wandering behavior of the Create. It move around, bumps into things and turns away from what it hit. I added some additional behaviors such as if it got trapped, i.e. caught in the same place for a period of 10 secs, it would move to extract itself.

I want to do more with robots, such as entering in a RoboMagellan contest. That requires an outdoor capable robot that does a lot more than bump into things. A key component to me is vision. Maybe I could do that with the CM and another processor (like the CMUCam) but I really didn't …