So, I went from a fresh Fuerte install, and installed the linux_networking stack. Using the new rosws
, this is pretty straightforward:
roslocate info linux_networking | rosws merge -
rosws update
I then installed the dependencies and compiled the wpa_supplicant_node
:
rosdep install wpa_supplicant_node
rosmake wpa_supplicant_node
Once this is all set up, you can get the node running. I believe that this has to be done with super user privileges, as that's what wpa_supplicant
requires. Someone may know how to do this with regular user privileges.
The node takes the arguments that wpa_supplicant would normally take, so in my case, I did the following:
sudo -s
source ~/devel/wireless/setup.bash
rosrun wpa_supplicant_node wpa_supplicant_node -iwlan0 -ctest.conf -Dnl80211 -dd
Once running, a rostopic list
returns the following:
/wifi/wlan0/associate/cancel
/wifi/wlan0/associate/feedback
/wifi/wlan0/associate/goal
/wifi/wlan0/associate/result
/wifi/wlan0/associate/status
/wifi/wlan0/association_state
/wifi/wlan0/frequency_list
/wifi/wlan0/network_list
/wifi/wlan0/scan/cancel
/wifi/wlan0/scan/feedback
/wifi/wlan0/scan/goal
/wifi/wlan0/scan/result
/wifi/wlan0/scan/status
/wifi/wlan0/scan_results
/wpa_supplicant/parameter_descriptions
/wpa_supplicant/parameter_updates
If you simply want network signal strength, I would suggest using the /*/scan_results
topic, which returns the following:
∫ rostopic echo /wifi/wlan0/scan_results
success: True
bss:
-
stamp:
secs: 1339715209
nsecs: 925256105
ssid: Avocado
bssid: [0, 127, 40, 49, 227, 125]
frequency: 2437
beacon_interval: 100
capabilities: 1073
quality: 0
noise: 0
level: -46
wpa:
key_mgmt: ['wpa-psk']
group: ['tkip']
pairwise: ['tkip', 'ccmp']
rsn:
key_mgmt: ['wpa-psk']
group: ['tkip']
pairwise: ['tkip', 'ccmp']
-
stamp:
secs: 1339715208
nsecs: 921288442
ssid: ZEO32
bssid: [0, 24, 1, 236, 26, 48]
frequency: 2412
beacon_interval: 100
capabilities: 1329
quality: 0
noise: 0
level: -86
wpa:
key_mgmt: []
group: []
pairwise: []
rsn:
key_mgmt: []
group: []
pairwise: []
---
This shows the (rather sparse) wifi networks in my apartment. You can also make calls through the Actionlib interface to the node as well.
Hope this helps you out.