DPRG List  

[DPRG] Video of Drone Contolled by BeagleBOne Black Running APM Pilot Software

Subject: [DPRG] Video of Drone Contolled by BeagleBOne Black Running APM Pilot Software
From: Dick Swan dickswan at sbcglobal.net
Date: Wed Feb 4 12:27:38 CST 2015

This is interesting 48 minute video
<https://www.youtube.com/watch?v=2Twl2mQAh6g>  from the lead developer of
APM Pilot. It was given at a LINUX conference. He was describing the
successful results of running APM code on LINUX.


Here's my comments on some topics in the talk indicating the approximate
time in the video that it occurred.


4:38        Live demonstration of a drone / airplane controlled via LINUX
port of APM Pilot on a BeagleBone Black (BBB). The drone was at an airfield
some distance from the conference location and watched a video as it took
off, flew to way points and autonomously landed. LINUX console was remotely
running on the overhead screen along with a video (Skype call) of the plane.

6:38        Drone was compiling LINUX kernel at same time as flying. On the
BBB the kernel compile takes 5-6 hours because of relatively "low powered"
CPU) when dedicated to this task. The compile time increases when APM is
also running to around 10 hours.


1,200 SPI transactions per second from IMU in this application (i.e.
simultaneous  APM Pilot and Kernel compile). Elsewhere he mentions 4K SPI
per second.


Uses a BBB "Cape" (similar to a Arduino "Shield") to provide the navigation
sensors. Several BBB Capes now exist that contain the appropriate navigation
sensors (i.e GPS and IMU and barometer). For example, the successful NavIO
Cape from Kickstarter; and recently announced NavIO+. Plus several more
Capes from others. Most (all?) were introduced in the last year. 


20:21     Uses inline waits for sending 20 byte SPI packets. Better
(faster?) than DMA because DMA setup has too much overhead.

22:05     Why use "user space driver" instead of kernel drivers? Answer:
Same driver source code used on LINUX as on Arduino APM! Same drivers run on
different OSes! It wasn't explicit but it seemed the user space drivers were
for SPI and I2C; it was unclear if the low level SPI/I2C hardware control
was in kernel space.


24:00     Future will see many of the current I2C sensors (gyro, accel,
compass, GPS) migrate to CAN Bus.


24:58     Describes how APM handles real-time critical threads - they're
described as LINUX "FIFO scheduled real time task" with pages locked,
predefined stacks, etc for best performance. There's six critical tasks that
run in APM. 


27:15     Some problems with "jitter" on the long duration nominal 20
millisecond loop. 

.         19 of 2M loops (i.e. a 11 hour run) were over 30 msec. This was
the same run APM with LINUX kernel compile in background. 18 of these were
under 50 msec. Easily handled by APM Pilot since all the calculations
running on the 20 msec loop adjust for the actual loop time rather than
assuming it is "precisely" 20 msec.

.         Longest time was 1.7 seconds. This is a bug. Possibly writing to
SD Card with interrupts disabled and waited too long. 


31:20     Two things need microsecond timing; i.e. servo pulse input and PWM
servo pulse output. Solution uses the 200 MHZ simple PRU (Programmable
Real-time Units) on BBB. PRUs have direct access to GPIO pins. I think PRUs
are on-board the CPU chip. PRUs have shared access to the BBB memory.
There's a C compiler for the PRU. Total source code for the PRUs is 300


37:00     Description of latest Outback challenge competition held Oct 2014.
It's a "search and rescue" autonomous drone looking for a human (via image
recognition) at an approximate GPS location 6 miles away. Drone needs to
fily to approximate location, search for the human and then drops a water
bottle to the human. APM team won the competition. Many of the other
entrants used chunks of APM code.

38:30     Picture of image recognition from Outback challenge. It looks
similar to the images you see from a CMU Cam where color blob is highlighted
with a rectangle overlaid on the camera image. I'm amazed at how the image
recognition found a human shape from the air.


Some of the new sensors drivers in development for integration with APM

.         Optical flow sensors

.         Laser range finding. Pointing downward for containing altitude.

.         Use Android quad-core (i.e. lots more CPU cycles) and then do
image recognition using increased processing power. 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.dprg.org/pipermail/dprglist/attachments/20150204/6489789b/attachment.html 

More information about the DPRG mailing list