DPRG
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: Dennis Clark dlc at frii.com
Date: Fri Feb 6 17:22:18 CST 2015

It doesn't mean we all have to sign on. 

Grump,
DLC
--
Dennis Clark
While traveling

> On Feb 6, 2015, at 2:46 PM, David Anderson <davida at smu.edu> wrote:
> 
> It's too late.
> 
> 
>> On 02/06/2015 11:38 AM, Dennis Clark wrote:
>> Am I the only one that cringes when people call these quad and hex copters "drones?"  Can we move away from this media term with such heavy, negative military connotations?
>> 
>> My rant for the day,
>> --
>> Dennis Clark
>> While traveling
>> 
>>> On Feb 6, 2015, at 10:31 AM, ed at okerson.com wrote:
>>> 
>>> You can download it here:
>>> 
>>> http://software-dl.ti.com/codegen/non-esd/downloads/download.htm#PRU
>>> 
>>> Ed Okerson
>>> 
>>>> Dick,
>>>> 
>>>> Good find.  Haven't watched it yet, but this phrase caught my eye:
>>>> 
>>>> "There's a C compiler for the PRU."
>>>> 
>>>> Any details?
>>>> 
>>>> dpa
>>>> 
>>>> 
>>>>> 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
>>>> _______________________________________________
>>>> DPRGlist mailing list
>>>> DPRGlist at dprg.org
>>>> http://list.dprg.org/mailman/listinfo/dprglist
>>> 
>>> _______________________________________________
>>> DPRGlist mailing list
>>> DPRGlist at dprg.org
>>> http://list.dprg.org/mailman/listinfo/dprglist
>> _______________________________________________
>> DPRGlist mailing list
>> DPRGlist at dprg.org
>> http://list.dprg.org/mailman/listinfo/dprglist
> 
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at dprg.org
> http://list.dprg.org/mailman/listinfo/dprglist

More information about the DPRG mailing list