Tutorials

With a total of 14 students on our team (and a need for heavy training) we decided to create a series of tutorials covering the essential steps in the creation of a computer vision MAV. The tutorials cover electronics, mechanical hardware as well as the single board computers and Linux. The original goal was just to train team members, but we quickly realized that this information might be helpful to others as well.

This series of tutorials assumes no prior knowledge and explains every step very detailed.

Team Tutorials

OMAP35x and Embedded Linux Tutorials

The OMAP35x allows for the first time to do onboard vision processing, which allowed PIXHAWK to win the EMAV 2009 competition. We created these tutorials while we setup the BeagleBoard and Gumstix Overo Linux development systems for our computer vision platform. These guides are organized step-by-step, from aquiring the Computer-on-Module (COM) and necessary peripherals (e.g. USB wifi sticks, machine vision cameras, etc.) to Gumstix Overo Linux kernel reconfiguration and USB networking.

We will extend these tutorials in the future, several new tutorials are already created internally.

Getting Started

This introduction provides a list of matching (and tested) peripherals as well as information how to efficiently connect the peripherals.

Important for BeagleBoard users might be also the guide how to create an IDC10 to DB9 adapter yourself.

Getting Started with OMAP35x SBCs




Serial Connection

Many embedded devices still communicate over the serial connection like 40 years ago. As most modern computers lack a hardware serial port, USB adapters provide the serial interface. This tutorial shows in detailed steps how to open a serial connection to an embedded device on Windows (Vista, XP), Linux and Mac OS X.

Open a Serial Terminal Connection




Setup an Ubuntu VirtualBox VM in Windows/MacOs

Ubuntu 8.10 boot screen

If a dedicated Linux development PC is not possible or not desirable, a virtual machine offers the flexibility to run Linux on a Windows XP/Vista or Mac Os X host. Because USB connections can be forwarded transparently, USB device support is no problem and allows to use USB card readers and USB serial dongles the same way as on a real Linux computer. This guide explains step-by-step how to setup the open source VirtualBox VM software.

Ubuntu on the VirtualBox Virtual Machine (VM)




Partition and Format a bootable SD/SDHC card

This guide shows how to partition / format a SD/SDHC card correctly for the BeagleBoard and Gumstix Overo OMAP SBCs. The card is configured (as in other OMAP35x SD/SDHC guides) with a FAT16 boot and an EXT3 Linux partition.


Create a bootable SD/SDHC card in Ubuntu




Copy the Embedded Linux system on a bootable SD/SDHC card

This guide includes the instructions how to copy the Embedded Linux system onto the previously copied micro SD card. The instructions cover both the precompiled binaries available for BeagleBoard and Overo as well as custom build OE images.

Copy Linux filesystem on bootable SD card




BeagleBoard special: Replace Bootloader

BeagleBoard Logo wide

Some BeagleBoards are delivered with a slightly outdated version of the TI X-loader, preventing them to boot from EXT3 SD/SDHC partitions. The bootloader can be flashed with a recent X-loader version solving this issue. This guide shows in detailed steps how to do this.

Enable SD boot / replace X-Loader on BeagleBoard




OpenEmbedded and Bitbake Installation Tutorial

OpenEmbedded Logo

OpenEmbedded is a collection of recipes (like makefiles), suitable for embedded devices. BitBake is a tool to generate packages out of this source collection. Together they form a cross-compilation system, somehow related to the way Gentoo_Linux works.
Following this tutorial will give you an OpenEmbedded Linux with Point Grey Firefly / Chameleon OpenCV support out-of-the-box, you can just run opencv-cvcap 0 and you'll have the camera image.

This installation allows to use the same code base for BeagleBoard and Gumstix Overo.

How to install OpenEmbedded and Bitbake




Quick command reference for OpenEmbedded

OpenEmbedded Logo

While many parts of this tutorial collection need only to be done once or a few times, there are some commands which have to be used on a daily basis. However some of them include quite long path names. As an intermediate step before using a shell script, we have collected the most frequent commands which can be directly used by copy-and-paste.

Quick Command Reference for OE




Custom Packages and Custom Images in OpenEmbedded

Custom package icon

Most users of single board computers will want to use their custom software in addition to the standard OpenEmbedded configuration. This guide shows how to integrate custom BitBake packages (called recipes) into OpenEmbedded without modifying the original distribution. It also shows how to define custom images, which allow to create OpenEmbedded installations really optimized to a specific task.

Create custom OpenEmbedded packages




Use DSPLink in OpenEmbedded

DSPLink tutorial icon

The heavy computational load of many computer vision algorithms cannot be handled by current embedded CPUs alone. In order to run at real time speed levels, some expensive algorithms have to be accelerated with the DSP present in the OMAP3530 SoC. This guide shows how to install the toolchain for TI's DSPLink, as well as creating an OpenEmbedded image containing DSPLink and a sanity check application.

OMAP35x DSPLink and OpenEmbedded Tutorial




DSPLink Toolchain for Windows and Linux

DSPLink tutorial icon

There is a mind-boggling variety of possibilities on compiling DSPLink-aware GPP/DSP code. The following tutorial intends to provide the reader with clarity and structure. The following tutorial is separated into two main sections: Setting up the toolchain and Compiling each of which is subdivided further into Windows Host, Ubuntu Linux Host and Ångström Linux Host.

OMAP3 DSP Toolchain




DSPLink Memory Map

DSPLink tutorial icon

When using the DSP, part of the onboard RAM is dedicated to the DSP. Therefore, an important step to be taken in the setup of DSPLink is to properly configure the memory mapping.
This tutorial gives insight and instructions on the way DSPLink must be adapted in order to accept a user-defined memory map.

DSPLink Memory Map Tutorial




Gumstix Overo USB OTG Networking

USB OTG Networking icon

FIXME: Work in progress. USB networking is very convenient to connect the SBC to the host development computer. However an even more important use is to connect multiple SBCs together. We are using USB OTG to build an onboard 480 MBit network on our MAV. This allows to easily use multiple SBCs for parallel processing. Connecting two SBCs is as easy as connecting an USB OTG (mini-A to mini-B) cable, for more than two a high-speed USB 2.0 hub is necessary.

USB CDC Ethernet on OMAP35x platforms






Machine Vision Cameras

How to secure M12/S-Mount lenses with Teflon tape

Taped M12 lens

Usually the standard M12 lenses do not fit perfectly into the lens mount. Securing it with adhesive tape is not durable and might induce a lens offset from the center, because the lens can still move in its mount. We present a different approach with teflon tape commonly used for sealing pipes. The lens is tighly fixed, but can still be moved when sufficient force is applied.

How to secure M12/S-Mount lenses with Teflon tape




Getting started with OpenCV video capturing

PtGrey FireFly MV

A short tutorial to capture video with OpenCV HighGUI from the PT Grey Firefly.

Getting Started with OpenCV capturing

OpenCV Tutorial on OMAP

PtGrey FireFly MV

There are some additional tricks to get OpenCV and the Point Grey cameras working reliably on OMAP. This page outlines the steps required to obtain a working setup.

Embedded Computer Vision on OMAP with OpenCV




Electronics

How to configure the XBee Radio Modules for MAVs

2.4 GHz receiver This tutorial explains how to configure the XBee 2.4GHz radio modules with the X-CTU configuration utitily from Digi.

How to configure the XBee radio modules




How to obtain the PPM sum signal from a 2.4 GHz RC receiver

2.4 GHz receiver

The standard approach to interface the manual (backup) remote control to a MAV is through the PPM sum signal. This signal is however not present in usual 2.4 GHz receivers. There is however a method to get it out of the receiver by a simple modification.

Receiver PPM Sum Signal Tutorial




RC Frequency Guide for MAV Competitions

RC Radio frequencies regulations are often very different even between neighboring countries. We have therefore set up a short radio frequency tutorial to help us (and others) to navigate through the different regulations. We carefully select our equipment to be usable worldwide and would like to provide our information base to other teams as well.

Frequency Guide






tutorials/start.txt · Last modified: 2009/12/12 11:22 (external edit)     Back to top
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Driven by DokuWiki