[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] What's the state of ardrone2_vision?

From: Ori Pessach
Subject: Re: [Paparazzi-devel] What's the state of ardrone2_vision?
Date: Sun, 14 Dec 2014 11:39:39 -0700

Thanks! This looks useful as a starting point for a more full featured implementation, but as it stands now it falls short of what I'm looking for. 

First, it only streams low resolution MPEG4 video over UDP, whereas I'm interested in storing 720p H.264 video on a USB stick while simultaneously streaming a lower quality stream to a laptop. Even the lower quality stream shouldn't be 320x240. That's kinda bad. 

There are many missing piece which I'm currently working on figuring out: the ISO-14496-12 multiplexer appears to be missing from the version of gstreamer that comes with ardrone2_vision, and there's no working H.264 encoder. The former is relatively easy to fix, while the latter seems to be a bit trickier. 

I'm basically trying to get to feature parity with the Parrot firmware, at least when it comes to video support. Once I'm there, I can start looking at doing some fancier stuff...


On Sun, Dec 14, 2014 at 2:59 AM, Christophe De Wagter <address@hidden> wrote:
What you describe is not in the repo at the moment but has been done before: a simple module.xml with the following start and stop functions: 

void gst_video_start(void)
  // Start GST plugiun
  // Normal video 320
  system("/opt/arm/gst/bin/gst-launch v4l2src device=/dev/video1 ! videorate ! 'video/x-raw-yuv,framerate=15/1' ! videoscale ! video/x-raw-yuv, width=320, height=240 ! dspmp4venc ! rtpmp4vpay config-interval=2 ! udpsink host= port=5000 &");

void gst_video_stop(void)
  // Stop GST-Plugin
  system("kill -9 `pidof gst-launch-0.10` &");

and raw:

@echo "====================================VISION START/INSTALL======================================" startvision


 we have 


On Sun, Dec 7, 2014 at 4:53 PM, Ori Pessach <address@hidden> wrote:
Also, I couldn't figure out from the documentation how to load any modules other than the ardrone2_vision mjpeg module... It sounds like there's a way to include the ardrone2_gstreamer module in a paparazzi airframe file so that it sets everything up and starts a gstreamer pipeline when you press upload, but I couldn't figure out how to do it.

Any tips?

On Sun, Dec 7, 2014 at 7:54 AM, Christophe De Wagter <address@hidden> wrote:
ardrone2_vision contains mainly computer vision code and is work in progress.

ardrone2_gstreamer is quite ready and has what you ask for: there are a few examples of gstreamer chains and the upload button has all the needed code to upload images to the dsp and start it. 


On Sat, Dec 6, 2014 at 10:58 PM, Ori Pessach <address@hidden> wrote:

I'm trying to get the vision framework to work, but something is amiss. I can get the mjpeg streaming module to work (by including it in the airframe file) but the image quality is quite poor, and there's a lot of latency when viewed with VLC. I'm guessing it's streamed over a TCP connection, which can do that. 

What I would like to do is try to run the H.264 encoder on the DSP using gstreamer, and save the video to a USB thumb drive on the vehicle, at the very least. This should give the drone similar functionality to what you would get with the Parrot firmware. 

As a first step, I'm trying to just run a pipeline to encode MPEG4 on the drone using gst-launch, (as described here:

This kinda works, after futzing with environment variables on the command line and stopping paparazzi (since with the MJPEG module, it grabs /dev/video1 and we can't have that now, can we?)

So, seeing that I can get gst-launch to work on the drone, I should be able to write a paparazzi module using gstreamer to run the same pipeline and use it to replace the mjpeg module. Right?

What I'm wondering about, though, is why the H.264 DSP based encoder doesn't get installed along with the MPEG-4 encoder. Is this intentional? Is it an oversight? Can I just copy it over, launch it in the same way that launces the MPEG-4 encoder and expect it to work? Am I missing something?

I would love it if someone who's familiar with the code and how it's supposed to work would comment on that.


Ori Pessach

Paparazzi-devel mailing list

Paparazzi-devel mailing list

Paparazzi-devel mailing list

Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]