diff --git a/launch/export-data.launch b/launch/export-data.launch new file mode 100644 index 0000000..4c58174 --- /dev/null +++ b/launch/export-data.launch @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/launch/gmapping-bagfile.launch b/launch/gmapping-bagfile.launch deleted file mode 100644 index 295e9db..0000000 --- a/launch/gmapping-bagfile.launch +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - diff --git a/src/export-data.py b/src/export-data.py index 65af273..16180cc 100755 --- a/src/export-data.py +++ b/src/export-data.py @@ -4,30 +4,51 @@ import rosbag import sys import os from wlan_pioneer.msg import WlanSignalMsg -from geometry_msgs.msg import Point import datetime +import tf2_msgs +import geometry_msgs +import rospy +import tf2_ros + + +rospy.init_node('wlan_bag_listener') inFileName = os.path.abspath(sys.argv[1]) outFileName = os.path.join(os.path.dirname(inFileName), os.path.basename(inFileName).split(".")[0] + ".csv") -count = 0 -pos = Point() -bag = rosbag.Bag(inFileName) -outFile = open(outFileName, "w") -outFile.write("SecsSinceEpoch;xPos;yPos;level2G4;level5G\n") +countOut = 0 +outFile = open(outFileName, "w", buffering=1) +trans = geometry_msgs.msg.TransformStamped() +tfBuffer = tf2_ros.Buffer() +listener = tf2_ros.TransformListener(tfBuffer) +rate = rospy.Rate(10.0) -for topic, msg, timestamp in bag.read_messages(topics=['/wlan_signal', '/pose']): +def wlanCallback(msg, args): + trans = geometry_msgs.msg.TransformStamped() + outFile = args[0] + if (msg.level_2G4 == -128 and msg.level_5G == -128): + return - if (topic == "/pose"): - pos = msg.pose.pose.position + try: + trans = tfBuffer.lookup_transform("map", "base_link", rospy.Time()) + except (tf2_ros.LookupException, tf2_ros.ConnectivityException, tf2_ros.ExtrapolationException): + pass - if (topic == "/wlan_signal"): - timeStr = datetime.datetime.fromtimestamp(msg.timestamp.secs).isoformat() - outFile.write("%s;%f;%f;%d;%d\n" - % (timeStr, pos.x, pos.y, msg.level_2G4, msg.level_5G)) + rospy.loginfo ("line %d: %s,%f,%f,%d,%d" % + (0, msg.timestamp.secs, trans.transform.translation.x, trans.transform.translation.y, + msg.level_2G4, msg.level_5G)) - count += 1 + outFile.write("%s,%f,%f,%d,%d\n" + % (msg.timestamp.secs, trans.transform.translation.x, trans.transform.translation.y, + msg.level_2G4, msg.level_5G)) -print "%d rows written to %s" % (count, outFileName) + +rospy.Subscriber("wlan_signal", WlanSignalMsg, wlanCallback, (outFile,)) +outFile.write("SecsSinceEpoch,xPos,yPos,level2G4,level5G\n") + +rospy.spin() + +#rospy.loginfo "%d Messages read from bag file\n%d rows written to %s" % (countBag, countOut, outFileName) outFile.close() -bag.close() + +