Launch Bebop 2 driver as Client


#1

Hi all,

I’ve recently installed Bebop Driver from here to launch it with ROS. However, I can only launch it when I’m connected to its own network.

I was wondering if would be possible to connect to the Bebop 2 without having to connect to its network (Bebop2Power-xxxxxx). Otherwise I’m not seeing how will it be possible to integrate with GCS tools such as QGroundControl (QGC).

I need to have an internet connection to make use of QGC, but since I have to connect to the Bebop in order to launch the driver, that’s simply not possible…

Any ideas?

Thanks in advance.


Connect bebop 2 to wifi router
#2

In the past… Going way back to the AR.Drone here, I took two approaches.

One was caching as much as possible map wise in QGC before initiating the connection and the second, more reliable method, was having the drone work as a wifi peer for a managed network I hosted on my PC.

Similar can be attained with the Bebop but will require you to use some wifi configuration command line tools via telnet to get it connected.

You may also be able to forego the above if you multihome your PC (dual network interfaces) with one interace (private) connecting to the drone, and the other providing public routing via an internet hotspot or some other mechanism.


#3

I was aiming for the second option.

having the drone work as a WiFi peer for a managed network I hosted on my PC.

Could you guide me through it? I’ve dug the internet for some guidelines but they’ve got me nowhere, so far…


#4

I need to pull some code to demonstrate. Stand by… Could be a couple hours or more to respond.


#5

That’s ok, I can wait.

I appreciate your help. :grinning:


#6

Start here: https://github.com/Parrot-Developers/Samples/wiki/Convert-Bebop-to-client-instead-of-access-point

I have my own functional model around here somewhere but for the sake of simplicity, all the magic happens with bcmwl.


#7

Another good reference: https://github.com/tnaegeli/multiple_bebops


#8

That’s the one I tried. I followed the entire guide, changed the shortpress_3.sh but it doesn’t seem to be doing anything… the IP is always the same no matter what I do :frowning:


#9

It has been a long time since I’ve messed with these settings… all of my initial work was on a B1 but I recall doing validation on B2s later on.

I thought I had saved all the old bcmwl command examples off to a separate text file but I gave up after poking around for a couple minutes looking for them. I’ll dig a little further tonight.

Stuff like changing the SSID, broadcast mode, encryption, etc still work fine. I would like to think Parrot didn’t nerf changing the wifi adapter’s connection methods: https://community.parrot.com/t5/Bebop-Drone/Hide-the-WiFi-SSID/m-p/124612?search-action-id=15587657341&search-result-uid=124612#M12066


#10

I wasted way to much time on this tonight. I enabled USB networking and tried a countless number of different approaches. None successful.

I’m thinking infra client got nerfed when parrot (silently) made changes to channel and auto country selection some time ago.

This is the only plausible explanation I can reach. We may be able to work around this by downgrading to a firmware prior to the nerf and copying the old broadcom drivers / modules. You could possibly reflash the current firmware and hack the old module back in but it could very quickly get ugly trying to get wifi back up again.

And I’m pretty sure Parrot would not appreciate us doing any of this.


#11

I’ll try to work around with different firmware versions. I really need to get this working, otherwise we’re going to have to buy different drones…

Thank you so much for your time.


#12

@synman

I think we’ve figured it out.
Basically, we followed the guide from tnaegeli and adjusted the script to execute the following command:

wpa_supplicant -B -ieth0 -c/etc/wpa_supplicant.conf -Dwext

The command that was originally in the script is:

wpa_supplicant -B -D wext -i eth0 -c /etc/wpa_supplicant.conf

But it looks like it wasn’t executing the options correctly.
Also, in the wpa_supplicant.conf the network’s password is commented by default, so we had to edit that .conf and uncomment the password’s line.

That seems to have done the trick.


#13

i could’ve swore I looked for wpa_supplicant, but I’l take it. nice. so we just need to make sure we have our infrastructure APs defined in its conf file.


#14

@dlcosta

Have you had any other issues? I am following tnaegeli’s guide, too. As soon as I start the drone, nothing happens. I started the shortpress_3.sh manually via telnet or adb and I get the error

./shortpress_3.sh: line 22: wpa_passphrase: not found

When I execute wpa_passphrase (or any other of the copied files) its always the same. I am able to complete with tab, checked the executionrights, which are correct, and always get back

/bin/sh: wpa_passphrase: not found
OR
/bin/sh: iwlist: not found

He seems to try to execute as shell, but why? Am I missing anything besides the Guide?