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: David Anderson davida at smu.edu
Date: Thu Feb 5 16:23:16 CST 2015


Good find.  Haven't watched it yet, but this phrase caught my eye:

"There's a C compiler for the PRU."

Any details?


On 02/04/2015 12:27 PM, Dick Swan wrote:
> 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 lines.
> 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 include.
> ·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.
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at dprg.org
> http://list.dprg.org/mailman/listinfo/dprglist

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.dprg.org/pipermail/dprglist/attachments/20150205/13e3124f/attachment.html 

More information about the DPRG mailing list