mavlink / qgroundcontrol

Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
http://qgroundcontrol.io
3.3k stars 3.62k forks source link

Support for Bebop 2? #2794

Closed gmaclennan closed 3 years ago

gmaclennan commented 8 years ago

Does qgroundcontrol support the Parrot Bebop 2 yet? I see support is mentioned in the v2.9.0 milestone, but I don't see any other mention of it in any commits, other than some airframe stubs by @tcanabrava. I am unclear what mechanism I should use to connect to the Bebop if it were to work, I seem to be getting some kind of connection with UDP, but it doesn't read any parameters.

LorenzMeier commented 8 years ago

Parrot has shipped two units to our developers, which should help.

DonLakeFlyer commented 8 years ago

@gmaclennan Sorry lost this in the fray of Issues. The BeBop has not parameters so you won't get any back.

gmaclennan commented 8 years ago

Would be fantastic to see support!

erdnaxe commented 8 years ago

This can maybe help : https://github.com/Parrot-Developers/bebop_mavlink_ctrl I packaged the app on Archlinux (AUR) so I'm going to test the app on my Bebop 2 (and I have a xbox controller).

DonLakeFlyer commented 8 years ago

@erdnaxe How do you start a mission that you sent across?

erdnaxe commented 8 years ago

By default, the Bebop is in manual control (and no battery status...). To start a mission you need to send a mavlink file (describing the path) on the FTP server of the Bebop, then tell the Bebop to read the file. The documentation is here : http://developer.parrot.com/docs/SDK3/#a-name-common-mavlink-start-a libARMavlink can be built with only libARSAL so you don't need the whole SDK (I packaged everything on AUR).

erdnaxe commented 8 years ago

I'm going to see what I can do for video streaming on the Bebop 2. It's a UDP RTP with H264 (you can open that in VLC) but before opening the stream, you need to send a command to activate the stream. I'm going to see if there's a simple way (without the whole Parrot arsdk libs)...

DonLakeFlyer commented 8 years ago

The 3dr Solo video support works exactly the same way "send command to start stream". https://github.com/mavlink/qgroundcontrol/blob/master/src/FirmwarePlugin/APM/APMFirmwarePlugin.cc#L383

On Aug 19, 2016, at 3:10 AM, Alexandre Iooss notifications@github.com wrote:

I'm going to see what I can do for video streaming on the Bebop 2. It's a UDP RTP with H264 (you can open that in VLC) but before opening the stream, you need to send a command to activate the stream. I'm going to see if there's a simple way (without the whole Parrot arsdk libs)...

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/mavlink/qgroundcontrol/issues/2794#issuecomment-240980827, or mute the thread https://github.com/notifications/unsubscribe-auth/AFmscyRUOrdk8Kv79gQuz8DuIgQpd8Mwks5qhYEygaJpZM4HZij3.

DonLakeFlyer commented 8 years ago

The trick will be identifying you are connected to a BeBop so you know when you need to do the special Parrot stuff. The current plugin architecture is based on MAVAUTOPILOT* coming back in heartbeat but the BeBop returns MAT_AUTOPILOT_GENERIC if I remember correctly. Let me know if you need any help with what should go where.

MAVProxyUser commented 8 years ago

Why not use the MDNS advertisement? Specifically to determine you are connected to a Parrot product. http://developer.parrot.com/docs/bebop/ARSDK_Protocols.pdf

The ARSDK Wifi Products use the mDNS protocol to advertise themselves on the wifi network. You can use any compatible implementation (Apple Bonjour, Avahi, Android NSDManager...) to discover the products. The service types for the different products are: Product Name Service Type Bebop Drone ._arsdk-0901._udp Jumping Sumo ._arsdk-0902._udp SkyController ._arsdk-0903._udp ...

Table 2: mDNS Service type for the Wifi Products These identifiers can be found in the

/libARDiscovery/Sources/ARDISCOVERY_Discovery.c file.
gmaclennan commented 7 years ago

Just checking back in on this, my understanding is from the new milestone label that this is still some ways off? My main interest in this was the ability to do mission planning for the Bebop 2.

DonLakeFlyer commented 7 years ago

Yes you are correct. That said, I think missions actually work from a standpoint of sending them to the vehicle. It's more about identifying which mission commands are supported. So you are going to be presented with the full set of commands. But the BeBop may not support them and and may respond to some of them in unknown ways.

gmaclennan commented 7 years ago

Interesting. I will test this out over the next few weeks and report back with findings.

DonLakeFlyer commented 7 years ago

Just take it slow and be careful :)

yohanboniface commented 7 years ago

@erdnaxe any update from your tests? :)

booo commented 3 years ago

As far as I can see you can flash ardupilot (https://ardupilot.org/dev/docs/building-for-bebop-2.html) and have a supported airframe. Therefore I close this one as fixed.