获取wifi信号并发布在ros

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值