ardrone 2.0

892 views
Skip to first unread message

Fahad Alsharef

unread,
Nov 7, 2012, 11:38:16 AM11/7/12
to java...@googlegroups.com
I want start project using this api, can any one help me if it will work with ardrone 2.0 before i buy it?
i want some answer it's important!!! . 

Sebastian S

unread,
Nov 29, 2012, 5:53:09 AM11/29/12
to java...@googlegroups.com
Hello,
today we bought the AR.Drone 2.0 and we have no video signal. Flying seems to work, still testing.
Sorry for the bad news :(

Denis Shmyga

unread,
Nov 30, 2012, 12:05:25 PM11/30/12
to java...@googlegroups.com
The reason is that  ARDrone 2.0 is using different video stream encoding that is not compatible with ARDrone 1.0

Quote from "ARDrone_Developer_Guide.pdf"

Possible codec values for AR.Drone 2.0 are :
• MP4_360P_CODEC : Live stream with MPEG4.2 soft encoder. No record stream.
• H264_360P_CODEC : Live stream with H264 hardware encoder configured in 360p mode. No record stream.
• MP4_360P_H264_720P_CODEC : Live stream with MPEG4.2 soft encoder. Record stream with H264 hard-
ware encoder in 720p mode.
• H264_720P_CODEC : Live stream with H264 hardware encoder configured in 720p mode. No record stream.
• MP4_360P_H264_360P_CODEC : Live stream with MPEG4.2 soft encoder. Record stream with H264 hard-
ware encoder in 360p mode.

Possible codec values for AR.Drone 1.0 are :
• UVLC_CODEC : MJPEG-like codec.
• P264_CODEC : H264-like codec.

javadrone is pure java project so any help with decoding of H264 in java would help.
In our lab we have only ARDrone 1.0 so originally SDK was developed to work with 1.0

четверг, 29 ноября 2012 г., 12:53:09 UTC+2 пользователь Sebastian S написал:

Jason von Nieda

unread,
Jan 9, 2013, 9:27:17 PM1/9/13
to java...@googlegroups.com
Hi Javadrone,

I received an AR.Drone 2.0 for Christmas and started hacking on it last night. I discovered your project but also discovered it doesn't work with 2.0. I would like to provide any help that I can getting javadrone 2.0 ready. I am an experienced Java programmer and have experience hacking on hardware. I already wrote code to decode the PaVE headers from the new video streams before I found out that others were already working on it.

Aside from the PaVE headers, the video frames are just standard H.264 I and P frames, and there are several ways to decode them in Java. Other projects seem to use Xuggler quite a bit: http://www.xuggle.com/xuggler/

There is also this, in pure Java: http://code.google.com/p/h264j/

So, if you'd like any help, just let me know where you'd like me to start.

Thanks,
Jason

Denis Shmyga

unread,
Jan 11, 2013, 8:47:35 AM1/11/13
to java...@googlegroups.com
Javadrone is open-source project and we would like other developers to join us

Support of ARDrone 2.0 is priority target. In order to do that we need to decode correctly additional NavData sensor information  and new Video stream format.  Recent changes in javadrone-api are oriented to solve those problems:
 
 a) support of extermal video stream decoder  ARDrone.setExternalVideoDataDecoder
 b) new method ARDrone.connectWithChannelLoging(String logDirectory)  - initiates connection to ardron an logs navdata and video data streams to log files 

I'm also working on H264 video decoding.   Idea is to develop ardrone 2.0 video stream decoder based on pure java (we can use external decoding libraries but only if they have open licence and compatible with Android Dalvik). This decoder will be embedded inside javadrone-api.  Xuggler does not suits because internally it uses native build of ffmpeg project. http://code.google.com/p/h264j/ is good candidate I've made a build of this library and attached to javdrone-utils.  Experimental decoder  com.codeminders.ardrone.decoder.TestH264DataDecoder is based on h264j library. One problem I've never tested it because do not have ARDrone 2.0 or ARDrone 2.0 video stream log. Project http://jcodec.org/ could also potentially help, if we manage to use jcodec will get a big plus that build of jcodec library is in maven repository.

To continue work on support of ARDrone 2.0 we need to have log files of  NavData and Video data streams.  This should be easy to do: you can change code  in ControlTower.java  line  ->  drone.connect();  to  drone.connectWithChannelLoging(<path to dir with wright permissions>);  and start ControlTower.
You could also help in developing of H264 decoder. Write our own realization of com.codeminders.ardrone.data.decoder.DataDecoder and attach it with following code ControlTower.java  line  ->  drone.connect(); to    drone.setExternalVideoDataDecoder(<your_decoder>) ; drone.connect();. If decoder will be based on h264j library or jcodec (or any other pure java realization) it will be submitted to javdrone-api. Platform dependent realization could be submitted to javdrone-utils
In general project is open and any improvement in source code or bug-fixes are welcome.

четверг, 10 января 2013 г., 4:27:17 UTC+2 пользователь Jason von Nieda написал:

Jason von Nieda

unread,
Jan 11, 2013, 12:44:07 PM1/11/13
to java...@googlegroups.com
Hi Denis, thank you for your in-depth response.

I have uploaded a video dump here: https://dl.dropbox.com/u/19742583/video.h264

This is a short dump I made by using netcat (nc command on Mac) to TCP port 5555 on the drone. I used this dump to develop the PaVE header parser which I have attached. You may note that I added a 4 byte reserved4 field at the end that is not specified in the documentation. I found that the stream contained these four bytes but the documentation doesn't specify it. Perhaps they just have not updated the documentation yet.

So far I have not had much luck getting ControlTower attached to my drone. I was able to get it to try to read NavData by commenting out the code that connects to the video stream. If I leave that in it just goes immediately into ERROR state.

I will try using the connectWithChannelLoging method to see if I can capture some more data for you. If that doesn't work, I'll continue to work on debugging until I can get it to connect.

Thanks,
Jason

VideoInputStream2.java

Denis Shmyga

unread,
Jan 15, 2013, 7:15:06 AM1/15/13
to java...@googlegroups.com
Great news. Thanks to Jason we now have Ardrone 2.0 video stream 

Looks like decoder H264j (http://code.google.com/p/h264j/)  can decode Ardrone 2.0 video.

java -classpath <javadron_scm_home>/lib/maven/com/twilight/h264-decoder/1.0/h264-decoder-1.0.jar com.twilight.h264.player.H264Player  <path_to_sample_video>/video.h264

h264-decoder-1.0.jar  - is build of H264j
h264-decoder-1.0-sources.jar - sources of  H264j  
(both jar files are available in our SCM:  hg clone https://code.google.com/p/javadrone/ )

Probably bad news will be that half of frames are decoded incorrectly.  But H264j is good starting point to continue work

пятница, 11 января 2013 г., 19:44:07 UTC+2 пользователь Jason von Nieda написал:

Jason von Nieda

unread,
Jan 17, 2013, 12:26:11 PM1/17/13
to java...@googlegroups.com
Denis,

I ran into the same problem with ffmpeg / ffplay skipping every other frame. I believe the reason is that it considers the PaVE header to be bad data. I think that once the PaVE header is parsed out and the frames are handed directly to the decoder it should work fine. I haven't had time to test this yet, unfortunately.

Jason

B. Tenbergen

unread,
Jun 20, 2013, 1:29:22 PM6/20/13
to java...@googlegroups.com


On Friday, January 11, 2013 6:44:07 PM UTC+1, Jason von Nieda wrote:
So far I have not had much luck getting ControlTower attached to my drone. I was able to get it to try to read NavData by commenting out the code that connects to the video stream. If I leave that in it just goes immediately into ERROR state.


Hi Jason,

this may be age old news for you, but I thought, I'd post it anyways.

I had the same issue. The problem for me was that the command connection couldn't be initiated because AR.Drone 2.0, firmware 2.2.3 uses port 5556 rather than 5559. You can find the declaration for the UDP port in the ARDrone class.

I believe I am also getting faulty NAVDATA. I was able to launch ControlTower from the source and connect to the drone, take off, and land. I can control the drone, but control is rather laggy and abrupt. In other words, barely maneuverable. I noticed that after a while, even when the drone hovers or is landed, the artificial horizon starts drifting. Mostly to the left, sometimes to the right. When airborne, the drone apparently tries to compensate by moving itself into the other direction, but here in my office, this just leads to sudden wall impact ;-)

Moving the drone around a bit by picking it up actually fixes this issue for a while... before it starts to drift again. Also, by letting it sit on the (flat, even) ground for a while (like 5 mins or so), eventually corrects the drifting of the reading on the artificial horizon and it stays in the middle, as it should. Hence, I am wondering, if its more a problem pertaining to the nature of the connection rather than a simple problem with parsing the NAVDATA.

Anywho, on a different note, I was wondering what the status of this project is? The latest staff post is from January, so I am wondering if this project is currently on the back burner or has been dropped. I think it's a great project and improved AR.Drone 2 support would be stellar.

Thanks and cheers,

Bastian


B. Tenbergen

unread,
Jun 20, 2013, 2:23:56 PM6/20/13
to java...@googlegroups.com
Hi everyone,

one more addition to my post from earlier:

Looks like the art. horizon is only beginning to drift after the drone took off once and landed. After that, drifting starts rather immediately. Taking off again is not such a good idea then, because the drone will not stay put.

Upon launching ControlTower, I notice the issues below printed on the console. I tried getting a Log dump from NAVDATA, but it wasn't as simple as changing "drone.connect()" to "drone.connectWithChannelLoging(...)" as Denis suggested because that method doesn't exist. I played around a little with that DataLogger feature in the API, but didn't know how to properly instantiate it and gave up. Any suggestions?

Cheers,

Bastian

No suitable controller found! Using keyboard
Connecting to the drone
20.06.2013 20:16:29 com.codeminders.ardrone.version.ftp.DroneFTPversionReader readDroneVersion
INFO: Attempting to read AR Drone version using FTP. Version file is: ftp://192.168.1.1:5551/version.txt
797 [ARDrone Control Loop] INFO com.codeminders.ardrone.version.ftp.DroneFTPversionReader - Attempting to read AR Drone version using FTP. Version file is: ftp://192.168.1.1:5551/version.txt
20.06.2013 20:16:29 com.codeminders.ardrone.version.ftp.DroneFTPversionReader readDroneVersion
INFO: ftp://192.168.1.1:5551/version.txt- Connection Opened
797 [ARDrone Control Loop] INFO com.codeminders.ardrone.version.ftp.DroneFTPversionReader - ftp://192.168.1.1:5551/version.txt- Connection Opened
20.06.2013 20:16:30 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
1015 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
Configure
Connected to the drone
20.06.2013 20:16:30 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
1124 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:16:30 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
1125 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:16:30 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
1136 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
Configure
20.06.2013 20:17:22 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
53658 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
Configure
20.06.2013 20:17:44 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
75811 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
Configure
20.06.2013 20:17:51 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
82487 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:17:51 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
82490 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:17:51 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
82493 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:17:51 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND: Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
82517 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder - Failed to decode receivd navdata information
com.codeminders.ardrone.data.navdata.NavDataFormatException: Error parsing NavData
    at com.codeminders.ardrone.data.decoder.ardrone10.navdata.ARDrone10NavData.createFromData(ARDrone10NavData.java:366)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:42)
20.06.2013 20:18:10 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
101350 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:11 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
102352 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:12 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
103355 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:13 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
104358 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:14 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
105361 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:15 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
106363 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:16 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
107366 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:17 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
108368 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:18 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
109370 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:19 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
110373 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:20 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
111378 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
20.06.2013 20:18:21 com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder run
SCHWERWIEGEND:  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)
112386 [ARDrone 1.0 NavData decodding thread] ERROR com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder -  Error reading data from data input stream. Stopping decoding thread
java.net.SocketTimeoutException: Receive timed out
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    at java.net.PlainDatagramSocketImpl.receive(Unknown Source)
    at java.net.DatagramSocket.receive(Unknown Source)
    at com.codeminders.ardrone.data.reader.LigthUDPDataReader.readDataBlock(LigthUDPDataReader.java:63)
    at com.codeminders.ardrone.data.decoder.ardrone10.ARDrone10NavDataDecoder.run(ARDrone10NavDataDecoder.java:38)

Martin Verzilli

unread,
Dec 23, 2014, 1:42:52 PM12/23/14
to java...@googlegroups.com
Hi there! Any news on this? I know it's a bit outdated, but I'm trying to leverage javadrone for a research project. 

I'm exploring the possibilities of turning the AR Drone 2 into an autonomous vehicle by using an Android smartphone as its "brain". Currently I'm trying to wrap javadrone with a Scala Android app based on Akka actors, which seems to be a quite pleasurable way of approaching these problems without getting too caught on Java multithreading nightmares.

Javadrone is the most sensible Java lib I found out there, even though I noticed there are some rough edges when using it with an AR2. Right now I'm trying to teach the AR2 how to "see", so I recently found out the latest JAR doesn't provide a decoder. 

I was happy to find this thread, and Denis' message: "Great news. Thanks to Jason we now have Ardrone 2.0 video stream[...]  "

But all I can see there is that you added twilight's H264 lib as dependency. Is there any examples of how you integrate that decoder into javadrone?

I noticed in ARDrone.java there's a method to get a decoder based on the version:

private VideoDataDecoder getVideoDecoder(int version) throws IOException {
       
switch (version) {
           
case 1:
               
return   new ARDrone10VideoDataDecoder(this, VIDEO_BUFFER_SIZE);
           
case 2:
                 
return null;
           
default:
               
return   new ARDrone10VideoDataDecoder(this, VIDEO_BUFFER_SIZE);
       
}
     
   
}


So I guess I should add a new ARDrone20VideoDataDecoder for case 2. I was working on that, when I stumbled upon this thread, and I wonder if there isn't any previous work trying to achieve exactly that (I'd rather not reinvent the wheel :)). 
Reply all
Reply to author
Forward
0 new messages