1、试了ros官方wifi_tool http://wiki.ros.org/wifi_tools
svn下载的时候显示连接超时,下不下来,在github上找了包手动下载
https://github.com/svn2github/wifitool
https://github.com/svn2github/gaussian_process
然后下面两步没问题
rosdep install gaussian_process
sudo apt-get install libiw-dev
rosmake的时候报错
暂时放弃
2、参考的github另一个 https://github.com/azz2k/wifi_sensor
用到一些ubuntu的命令
ifconfig -a #显示全部接口信息。
iwconfig #显示无线网络设备信息
该github使用方法 :
mkdir ws && cd ws
mkdir src && cd src
git clone https://github.com/azz2k/wifi_sensor
cd ..
catkin_make
rosrun wifi_sensor wifi_sensor.py
但是这个不知道为什么获取不了数据
就重新自己写了一个wifi_sensor.py,用了Python的pywifi库,然后作为rostopic发布
替换原来的文件,重新编译就能用了
源码贴上
#!/usr/bin/env python
import rospy
import time
import pywifi
import numpy as np
# from msg import *
from std_msgs.msg import String
def pub_wifi():
rospy.init_node('wifisensor',anonymous = True)
pub = rospy.Publisher('wifi',String,queue_size=10)
rate = rospy.Rate(10)
#from comtypes import GUID
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]
iface.scan()
time.sleep(2)
while not rospy.is_shutdown():
t = time.time()
result=iface.scan_results()
for i in range(len(result)):
#print(result[i])
# print(t, result[i].ssid, result[i].bssid, result[i].signal)
a=[t, result[i].ssid, result[i].bssid, result[i].signal]
b = "," . join(str(v) for v in a)
#c = b%rospy.get_time()
rospy.loginfo(b)
pub.publish(b)
rate.sleep()
if __name__ == '__main__':
try:
pub_wifi()
except rospy.ROSInterruptException:
pass