Notes on programming with Ubuntu and ROS
This page is archived. You might find what you are looking for on the NavQ GitBook.
As part of our NXP drone development solutions we like to offer several options for companion computers. The i.MX 8, 8M, 8M-mini, 8M-nano and 8M+ family of processors is a good industrial fit as they are low cost and robust. There are also automotive grade processors to consider when functional safety is required.
i.MX 8M is a QuadCore A53 + M4 with Video pipeline and H.265 (4K HDR) decoding acceleration in hardware. It is not necessarily our perfect choice for a drone companion computer, but it is fully available now. Given it is focused on video decoding, it may be the better choice for a QGC groundstation or HDR FPV goggles. With the i.MX 8M, H.264 video decoding employs a software Codec.
The i.MX 8MM ("8M Mini") is better suited as a drone companion computer as it is lower power, and includes a hardware H.264 video encoder. We will use it soon when it becomes available. Despite the name "mini" it is just as capable as the 8M processing wise. The "mini" in fact refers to a silicon die shrink to a more advanced process node. The learning and development work done on an 8M is transferable to an 8MM.
This GitBook entry is intended to document in one place the resources needed for using this board for our needs. It refers to preparing the PICO-IMX8M SOM (System on Module) and corresponding PicoPi baseboard for experimentation with Ubuntu Linux and ROS
It is expected that this document will become outdated quickly as additional resources become available.This document was last updated January 2019
The procedure for getting the desired software on the processor board is a bit more involved as we are working with a SOM that uses eMMC memory instead of an SDCARD it is programmed while in place on the board. The benefit however is that eMMC memory is more robust than an SDCARD memory, and therefore more suitable for a high reliability long lived embedded system. Often general purpose SDCARDs can fail with regular active use within a year or two.
The SOM board we are referring to is here:
The base board / carrier boards we are referring to is here:
The are several complete development kits available here:
The specific kit we are using , which includes SOM + carrier board is the PICO-PI-IMX8M-PRO
TechNexion provides a download center for images for their SOMs and Baseboards. check here for the latest versions.
Initially I was unable to find the quickstart guide an image correctly using the sorting filters on their page. they seem to have since corrected this. If in doubt, don't use the page filters, and instead do <Ctrl-F> to find a word like "IMX8M" on the page.
Link below to the TechNexion download center:
TechNexion provides an Ubuntu image for the Pico-Pi-IMX8M. This image was the latest available as of January 2019. Check the TechNexion FTP site for updates:
You will need change the jumpers to the baseboard into serial bootloader mode
Following the same instructions for the i.MX 6 boards shown here will get the image programmed.
The ubuntu image is/was using the xfce desktop environment. the date was not set using ntp, and as a result was wrong. Webpages would not load correctly, nor would apt work correctly because the time was a year off. Setting the date manually, and loading ntp using apt corrected these issues.
Follow these instructions to install ROS on the embedded i.MX 8M board :
ROS chatter example can be found here:
Todo - test camera input using the following info:
https://github.com/TechNexion/u-boot-edm/wiki/Test-OV5645-MIPI-CSI2-camera-for-i.mx8
# gst-launch-1.0 v4l2src io-mode=3 device=/dev/video0 ! video/x-raw,width=1280,height=720 ! kmssink