|Product Performed to Expectations:||9|
|Specifications were sufficient to design with:||9|
|Demo Software was of good quality:||10|
|Product was easy to use:||9|
|Support materials were available:||8|
|The price to performance ratio was good:||10|
|TotalScore:||55 / 60|
What follows is my review about Beaglebone Black, with Wireless Cape & Display.
This is my first review, so thanks to Randall for this interesting opportunity.
First of all, the unboxing. As you can see, each board was arrived inside its own box. In each box there where a board and a minimal manual, that could be useful to understand the main features of each components. Regarding the Beaglebone, a mini-USB cable is included. Furthermore, each board was saved by a hermetic envelop.
Below you can see the detailed pictures of the boxes and the boards
To fully evaluate this kit, I decided to realize a homemade laser-based measurement system. In particular I’d like to test this system as parking sensor for a car.
The first issue I had to face was the windows drivers that are preloaded on the board. Unlike other boards, such as Raspberry Pi, Beaglebone is given with a preinstalled Ångström linux distribution. This is an interesting feature that allows to communicate with the board via USB as if it was a network device. The result is more interesting if you consider that Beaglebone Black has an Ethernet port. This make it a very interesting IoT device. Furthermore, the availability of network shields, such as the Wireless Cape, suggests an infinity of network applications.
Anyway, a driver is needed to start this communication using a Windows device. An old version of this driver is downloadable from the board itself, but it gave me some problem, thus I had to download the newest version from the official website.
My project was completely based on ROS (http://www.ros.org/), an open-source middleware for Robotics, that provides an interface to program in C++ with any ROS-compatible device, independently from the proprietary interface of the specific device. Unfortunately, it works properly only with Ubuntu, even if there exist different porting for other Linux distributions, such as Debian.
First of all, I tried to follow this guide (http://wiki.ros.org/BeagleBone), but some packages did not download and the ROS main service did not run properly. Ångström is derived from OpenZaurus, a Debian-based distribution for embedded devices, so I tried to follows the installation for Debian OS (http://wiki.ros.org/kinetic/Installation/Debian), but this version seamed to be incompatible with Ångström. No errors occurs during installation, but after a couple of attempts, the Beaglebone did not reconized the installed packages and the 4GB MMC was full.
Thus, I decided to try to install Ubuntu hopping, that ROS will work properly. I followed the process described at https://elinux.org/Beagleboard:Ubuntu_On_BeagleBone_Black: this is a very complete and accurate guide to follow, in which you can find al details needed. To get the best performance from the Beaglebone I tried to flash the OS directly into the MMC memory. I suggest to connect the device to a monitor (via HDMI) to perform this process: in my case I supplied the needed power connecting the Beaglebone to a Smart TV (that I used also as monitor) via USB, without any other power supply. The processes took less than the 10 minutes suggested by the guide. The first time I do that, I let the board flashing and I did not understand that it had already finished. When I repeated the process, I noticed that Ubuntu where successfully flashed in a couple of minutes.
The proposed Ubuntu distro is distributed without graphical interface, but fortunately it is configured to access to the board via USB as network device.
At this point, ROS has been installed without any problems. I decided to install ROS directly into the MMC memory to guarantee a major stability to the system, and to avoid that the lags due to the SD card reduces the frame rate of the video stream.
The full ROS package occupies about 1-1.5GB of disk space. If you consider that the Beaglebone black has only 4GB of MMC memory, once I had installed Ubuntu and ROS, not many space remains. In fact, after I had installed ubuntu-desktop package to use the display and a light VNC server, the were no free space available.
Thus, I had to reinstall all from scratch, but to leave some free space, I preferred to use ROS base package.
Before to start to write the code, I tested the functioning of the two additional shields. While the Display worked immediately without any problem, At first I had some difficulties with the Wireless cape. Ubuntu did not recognize it as peripheral device, nor I found drivers or guides to install the Cape. I have to thank ninjatrent for the link suggested in the comments. Following its link, the Wireless cape worked properly.
Another issue I found was the USB power supply. If used the Wirless Cape or the Display alone, no problem occurred, vice-versa if I tried to use the two shields together, the Beaglebone did not start. I tried to sort them differently, but the result did not change.
For a list of problems, linked to the libraries I wanted to use, and to some design details I had not thought, I could not complete my project. The main points of this list are:
However, I perform some tests to evaluate the performances of the board. What I’ve done was:
I used two different cameras, with two different frame rates: an old 15 fps (640x480) Creative PC-CAM 300 and a 30 fps webcams, embedded on my pc. Regarding the preprocessing, I converted each RGB frame into a grayscale image, then I applied some filters in order to separate the laser beam from the image (a difficult task if there is no chance of adjusting the exposure time). Thus, I run the main task on the Beaglebone.
In the pictures below you can see some software (RViz) screenshots I used to monitor the briefly described process. The two streams are the webcam stream and the processes stream, respectively. While I’m working on my project I did not see any lag between the two frames.
Here are three screens of the process described below. While the first two are examples to show the elaborations made, the third (that with the smartphone flashlight) shows that without the possibility of calibration of exposure times, natural light is not filtered properly, so the system is not suitable for use outside.
Example 2 with solid object
Example 3 with light
I'm sorry I could not complete the project, however, I take my product considerations below.
The Beaglebone Black is a truly flexible device, easy to configure, use and develop. As I shown in the first part of this review, the Baglebone is fully compatible with Ubuntu ecosystem, and after the first time you installed it, the process becomes easy to complete. In my opinion, the AM335x Cortex-A8 is a very good processor for this type of tasks, fast and stable. Also 512MB of RAM are enough. The only negative aspect is the memory: 4GB are too few to install onboard libraries and/or software of a certain type (such as ROS). I did not try to run it from USB, but my experience suggests that the lag would be too high to guarantee a fast and stable software.
I did not like the fact that I could not supply it via USB when all the three board where mounted together, but I was very excited by the many network connectivity options of this board. Furthermore, the display has the right size to shown a minimal desktop, or read information of interest.
Thanks for the opportunity to review this fantastic board.