Tag: ubuntu

ROS Indigo with Elementary OS Freya

I’ve recently got my a new laptop for work, which is great, but this means I had to abandon all the comfort of OSX.

Of course for work I need an Ubuntu system but I set my eyes on a distribution called Elementary OS before, that is Ubuntu-based but tries to mimic the style of OSX.

indigoigloo_600

To begin the ROS installation a minor tweak is needed on the first step. Instead of

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

use

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

Since ROS doesn’t have packages dedicated to Elementary, this second line tells it to use the Ubuntu Trusty packages instead (on which Elementary OS Freya is based).

However, when I tried to start up the simulation of TIAGo, I got buckets of errors from rosdep about the operating system not being detected. After a quick sneak peak at the code of it, I discovered that there is an environmental variable that can be used to override whatever is happening, as rosdep is supposed to support Elementary OS, it’s the latter that does something fishy here.

I added

export ROS_OS_OVERRIDE=elementary

to my .bashrc, and the problem was solved.

Here is a video of the working system, with the TIAGo robot from PAL Robotics.

So those are my notes on the Elementary OS + ROS topic. For those who’d like to get started with Elementary OS check the links below.

 

Elementary OS goodies to install,

20 things to do after installing Elementary OS

Do you like Evernote‘s desktop client? NixNote2 provides a fully cross-platform opensource alternative to the official client.

To see if and where your boot process can be optimized, try bootcharting

To see what you can do with your Thinkpad fans and in Linux go here.

Firmware update on Arduino UNO

So the story is that I had this Arduino UNO with me which I was unable to use.

I think that it’s owner did not really use it for anything serious or used it with Windows. After a bit of googling around I found out that rev1 Uno’s are shipped with a firmware that’s not working with Linux (and requires special drivers on Windows).

The problem is with the guy marked red on the image, namely the Atmega 8u2 which is the replacement for the FTDI chip that can be found on other boards. The trick with this chip is that one can define the most important parts of USB communication: the USB id fields. Other boards using the FTDI chip carry the vendor and product id of FTDI for USB communication therefore the drivers associated to it will be the standard USB-RS232 converter driver. With the use of the Atmega 8u2 we have the freedom to tell the system which driver to attach to the device. So still the problem is that these USB communication id fields are not fit to be used with Linux so a firmware update was released.

There are several tutorials out there addressing this problem and I’m going to introduce the one found on the Arduino website (references below).

(more…)

BeagleBone and USB Serial Converter

If you would like to extend the capabilities of your Beaglebone you can start by using a USB Serial Converter to reach simple serial devices from USB (hint: you can plug a USB hub on the Beaglebone and use several converter to multiply the serial ports).

I used a cheap converter available on ebay

The type is: cp2102 or more commonly found as cp210x. (image taken from the ebay vendor)


(more…)

Arduino Double Sonar With ROS

I have been playing with ROS the last few days. After my first attempts with NXT (will post about it later) I ended up using my good ol’ Arduino for this task as well.

You probably remember my post about Sonar Sensor SEN136b5. When I ordered it I ordered 3 more (2 for Árpád :)) so I decided to try reading the values of two sensors and publishing them into a ROS system.

Test hardware

(more…)

Arduino + Qt with QextSerialPort

Last time I showed you a little play-around with Arduino and two servos.

Reminder: arduino-double-servo-sketch

Since my aim is to use it to control a webcam built on top of the two servos I have a program with a GUI that can do some image processing. I want to be able to control my “webcam-head” via the GUI so I need to send messages to the Arduino from my Qt (surprised?:D) application. I chose QextSerialPort because a friend of mine got nice experiences with it. I work with Ubuntu but it is also available on Windows systems.
(more…)

Strange behaviour with OpenCV Camera “things”

I am currently working on a project that does some image processing and I have to use a webcam as image source. My choice is OpenCV and Qt (of course).
The new OpenCV version (2.3) just came out when I started my project so I got the source and compiled it.
After looking through the documentation I tried to use the new C++ API and cv::VideoCapture class instead of the C-style CvCapture structure but failed since cv::VideoCapture can’t find my webcam for some reason.

However my old projects that used the webcam still worked I simply kept on using CvCapture.
After a while I got an error when tried to use cv::Mat::operator() for subimage extraction and received strange runtime errors.
(more…)