Why The Intel Edison Failed in Nomad

admin's picture
Intel Edison

I admit the title may seem a little harsh. I tried to find a way to soften it a little bit, but this is the most direct way of saying it. And, frankly, the Edison did fail the Nomad project, not because it's a bad product, it's not. It failed because it's simply not ready for the hobby market. It's not ready to be picked up by your average user looking to do something amazing that pushes the boundary of what hobby electronics, or hooby robotics is. The Edison is great for engineers looking to do something new. But not your average maker. Here's the story...

The original plan for Nomad was to use an Intel Edison to be the brain of the system. Everrhing that I read and saw said it could handle the images coming out of the Kinect and would be sufficient to perform the calculations needed for basic SLAM (simultaneous localization and mapping). So I was excited to get it into the Nomad project and use this new board to do something amazing. It would really show what could be done at the hobby level with an affordble processor.

A stack was built with all of the electronics needed. I called it the brain stack. At the bottom of the stack was the Roboclaw motor controller. It could be accessed and controlled via USB and would handle almost all of the motor controll logic. All I'd have to do is send it simple speed and direction values for each of the wheels. If I decided to add encoding, it would do that as well. Next in the stack was the Intel Edison on the Arduino breakout board. It was large, but fit nicely inside Nomad's electronics box. On top of that was an Arduino Uno sensor shield. This would allow me to connect the six ultrasonic range finders directly to the board with no need for any custom boards.

Next I had to install a slim version of Linux that could also handle a lite installation of ROS (Robot Operating System). The suggested flavor of Linux is Yocto Linux. However, there is no documented install path for ROS onto Yocto. Theorhetically ROS could be installed. But, not being a Linux expert (or gerneral user) this is one of those areas where I definitely did not want to be blazing new trails. Bill was able to find instructions using Ubilinux, another slim Linux distribution based on Ubuntu, which is the distribution ROS is built on. So I followed the provided tutorials as documented and managed to get Ubilinux installed with a working installation of ROS. Fantastic.

Initially we needed to be able to prove the system would work. I could have simply given it commands to move forward and go through a routine of turns and movements. This, however, is not how work. Instead I wanted to prove it worked but also show we could issue it control commands on the fly. I created the controller node for Nomad, to take the twist commands from ROS and issue motion commands to the motion controller. That was fairly straight forward. Next I wanted to write the node that would read input from a game controller and convert those to twist commands. This is something I'd already done for an earlier robotics project and thought I'd simply port the Python script from there to the Edison. This is where I started to run into problems.

Try as I might, I could simply not get the game controller to work. Installing the drivers and the ROS jostick packages did nothing. Sure they's compile, but thay would not connect to the controller. It was not difficult to identify that Linux was not detecting the joystick device at all. A little more research revealed the drivers were not, and could not be, installed. In fact, it turned out, the joystick device did not exist within Ubilinux. Several blogs and support posts described how to go about installing the drivers. One went so far as to describe how to install the packages that would allow Linux to recognize the device. As it turns out, those packages weren't a part of the Ubilinux distribution. To make matters worse, the packages needed to install the packages to use a joystick device weren't inluded either.

It was at this point that I decided the Edison wasn't going to meet my needs It's not a matter of capabilities, the Edison is a very capable device. Rather, it's a matter of documentation and community support. As a hoobyist I needed a product I knew I could find support. I need to know that when I had a queston, the answer was out there to be found. And if it wasn't, finding someone who knew how to find it and could guide me through the process. The Edison is not that product and the Edison's biosphere is not a particularly inviting one. Many of the responses I saw to questions from makers were rather condescending and not altogether helpful.

It's unfortunate that the community around this fantastic board has started out in such a hostile manner. It's going to make it difficult for the board to take off the way other computers on a board have.

Startup Growth Lite is a free theme, contributed to the Drupal Community by More than Themes.