From 9fad5656968676f295d091ca69afb199cbccc5c8 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 13 Oct 2021 16:01:57 +0100 Subject: [PATCH 01/11] Launch file to test signals independent of the physical car --- .../modules/signal_panel_recognition.launch | 6 ------ physical_bringup/launch/signal_usbcam.launch | 17 +++++++++++++++++ .../launch/signal_panel_recognition.launch | 6 ------ 3 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 physical_bringup/launch/signal_usbcam.launch diff --git a/physical_bringup/launch/modules/signal_panel_recognition.launch b/physical_bringup/launch/modules/signal_panel_recognition.launch index e7195813..0221c937 100644 --- a/physical_bringup/launch/modules/signal_panel_recognition.launch +++ b/physical_bringup/launch/modules/signal_panel_recognition.launch @@ -1,16 +1,10 @@ <launch> <arg name="image_raw_topic" default="/real_camera"/> - <arg name="vel_cmd_topic" default="/android_input_vel"/> - <arg name="twist_linear_x" default="1"/> <arg name="signal_cmd_topic" default="/signal_vel"/> - <arg name="twist_cmd_topic" default=""/> <include file="$(find signal_recognition)/launch/signal_panel_recognition.launch"> - <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> - <arg name="twist_cmd_topic" value="$(arg twist_cmd_topic)"/> <arg name="image_raw_topic" value="$(arg image_raw_topic)"/> <arg name="signal_cmd_topic" value="$(arg signal_cmd_topic)"/> - <arg name="twist_linear_x" value="$(arg twist_linear_x)"/> </include> </launch> \ No newline at end of file diff --git a/physical_bringup/launch/signal_usbcam.launch b/physical_bringup/launch/signal_usbcam.launch new file mode 100644 index 00000000..05f2829e --- /dev/null +++ b/physical_bringup/launch/signal_usbcam.launch @@ -0,0 +1,17 @@ +<launch> + <arg name="camera_topic" default="/real_camera"/> + <arg name="int_camera_id" default="2"/> + <arg name="signal_cmd_topic" default="/signal_vel"/> + + <include file="$(find physical_bringup)/launch/modules/signal_panel_recognition.launch"> + <arg name="signal_cmd_topic" value="$(arg signal_cmd_topic)"/> + <arg name="image_raw_topic" value="$(arg camera_topic)"/> + </include> + + <include file="$(find physical_bringup)/launch/modules/lane_camera.launch"> + <arg name="camera_topic" value="$(arg camera_topic)"/> + <arg name="int_camera_id" value="$(arg int_camera_id)"/> + </include> + + +</launch> diff --git a/signal_recognition/launch/signal_panel_recognition.launch b/signal_recognition/launch/signal_panel_recognition.launch index 7fd4c9e8..58a78af7 100644 --- a/signal_recognition/launch/signal_panel_recognition.launch +++ b/signal_recognition/launch/signal_panel_recognition.launch @@ -1,16 +1,10 @@ <launch> <arg name="image_raw_topic" default="/real_camera"/> - <arg name="vel_cmd_topic" default="/android_input_vel"/> - <arg name="twist_cmd_topic" default="/vel_cmd"/> <arg name="signal_cmd_topic" default="/signal_vel"/> - <arg name="twist_linear_x" default="1"/> <node name="signal_panel_recognition" pkg="signal_recognition" type="signal_panel_recognition.py" output="screen"> - <param name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> <param name="image_raw_topic" value="$(arg image_raw_topic)"/> - <param name="twist_cmd_topic" value="$(arg twist_cmd_topic)"/> <param name="signal_cmd_topic" value="$(arg signal_cmd_topic)"/> - <param name="twist_linear_x" value="$(arg twist_linear_x)"/> </node> </launch> \ No newline at end of file From f1b6f278f5a5c04030074b331a091e812f0dcac0 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 13 Oct 2021 17:42:22 +0100 Subject: [PATCH 02/11] Removing lines of code not used --- .../scripts/signal_panel_recognition.py | 35 +------------------ 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index cfd2340e..700457da 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -1,21 +1,13 @@ #!/usr/bin/env python3 # Imports -#import argparse import cv2 -from csv import writer -#import copy import numpy as np import rospy from std_msgs.msg import Bool -from geometry_msgs.msg._Twist import Twist from sensor_msgs.msg._Image import Image from cv_bridge.core import CvBridge -from datetime import datetime -#from tensorflow.keras.models import load_model import pathlib -#import os -#import string global img_rbg global bridge @@ -91,22 +83,15 @@ def main(): begin_img = False velbool = False - #twist = Twist() # Init Node rospy.init_node('ml_driving', anonymous=False) # Get parameters - image_raw_topic = rospy.get_param('~image_raw_topic', '/ackermann_vehicle/camera2/rgb/image_raw') - twist_cmd_topic = rospy.get_param('~twist_cmd_topic', '/cmd_vel') + image_raw_topic = rospy.get_param('~image_raw_topic', '/ackermann_vehicle/camera2/rgb/image_raw') signal_cmd_topic = rospy.get_param('~signal_cmd_topic', '/signal_vel') - twist_linear_x = rospy.get_param('~twist_linear_x', 0.5) # Create publishers - #if twist_cmd_topic!= "": - #pubtwist = rospy.Publisher(twist_cmd_topic, Twist, queue_size=10) - - #if vel_cmd_topic!= "": pubbool = rospy.Publisher(signal_cmd_topic, Bool, queue_size=10) # ______________________________________________________________________________ @@ -205,7 +190,6 @@ def main(): for name in dict_images.keys(): for key in dict_images[name]['images']: dict_images[name]['images'][key] = cv2.GaussianBlur(dict_images[name]['images'][key], (3, 3), 0) - #cv2.imshow(name + ' ' + key, dict_images[name]['images'][key]) # ______________________________________________________________________________ @@ -244,11 +228,6 @@ def main(): max_key = '' - ##cv2.imshow('Robot View Processed', resized_) - #cv2.imshow('Robot View', img_rbg) - #cv2.imshow('Robot View used', frame) - #cv2.waitKey(1) - # For each image: for name in dict_images.keys(): for key in dict_images[name]['images']: @@ -264,7 +243,6 @@ def main(): max_name = name max_key = key - #print (max_res, max_key) if max_res > detection_threshold: @@ -295,17 +273,6 @@ def main(): elif max_name == "pStop": velbool = False - # Send twist or bool - #if twist_cmd_topic != "": - # twist.linear.x = vel - # twist.linear.y = 0 - # twist.linear.z = 0 - # twist.angular.x = 0 - # twist.angular.y = 0 - # twist.angular.z = 0 - # pubtwist.publish(twist) - - #if vel_cmd_topic != "": pubbool.publish(velbool) # Show image From e33aa4cd0c51a2560c7280f64c3b96a4efa81724 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 13 Oct 2021 18:30:55 +0100 Subject: [PATCH 03/11] Introduced a threshold to only publish on /signal_vel after a few consecutive signal detections --- .../scripts/signal_panel_recognition.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index 700457da..81ec3bd9 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -82,7 +82,9 @@ def main(): global begin_img begin_img = False velbool = False - + count_stop = 0 + count_start = 0 + count_max = 5 # Init Node rospy.init_node('ml_driving', anonymous=False) @@ -202,7 +204,7 @@ def main(): Image, message_RGB_ReceivedCallback) - rate = rospy.Rate(10) + rate = rospy.Rate(30) while not rospy.is_shutdown(): @@ -270,10 +272,19 @@ def main(): # Defining and publishing the velocity of the car in regards to the signal seen if max_name == "pForward": velbool = True + count_start = count_start + 1 + count_stop = 0 elif max_name == "pStop": velbool = False + count_stop = count_stop + 1 + count_start = 0 + + if count_stop >= count_max or count_start >= count_max: + pubbool.publish(velbool) - pubbool.publish(velbool) + else: + count_stop = 0 + count_start = 0 # Show image cv2.imshow("Frame", img_rbg) From 14b9e115694fc09a31494fc339655dbf960908c0 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 20 Oct 2021 15:52:10 +0100 Subject: [PATCH 04/11] Removing lines of code not used --- .../scripts/signal_panel_recognition.py | 57 +------------------ 1 file changed, 2 insertions(+), 55 deletions(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index cfd2340e..045c2f48 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -1,35 +1,18 @@ #!/usr/bin/env python3 # Imports -#import argparse import cv2 -from csv import writer -#import copy import numpy as np import rospy from std_msgs.msg import Bool -from geometry_msgs.msg._Twist import Twist from sensor_msgs.msg._Image import Image from cv_bridge.core import CvBridge -from datetime import datetime -#from tensorflow.keras.models import load_model import pathlib -#import os -#import string global img_rbg global bridge global begin_img -# not used by now -def preProcess(img): - img = cv2.cvtColor(img, cv2.COLOR_RGB2YUV) - img = cv2.GaussianBlur(img, (3, 3), 0) - img = cv2.resize(img, (200, 66)) - img = img/255 - - return img - def message_RGB_ReceivedCallback(message): global img_rbg @@ -48,7 +31,6 @@ def main(): # Import Parameters scale_import = 0.1 # The scale of the first image, related to the imported one. N_red = 2 # Number of piramidizations to apply to each image. - factor_red = 0.8 # Font Parameters subtitle_offset = -10 @@ -62,13 +44,9 @@ def main(): line_thickness = 3 # Detection Parameters - scale_cap = 0.4 detection_threshold = 0.85 - # Initial velocity - vel = 0 - # ______________________________________________________________________________ # Images to import and Images Info @@ -91,22 +69,14 @@ def main(): begin_img = False velbool = False - #twist = Twist() - # Init Node rospy.init_node('ml_driving', anonymous=False) # Get parameters - image_raw_topic = rospy.get_param('~image_raw_topic', '/ackermann_vehicle/camera2/rgb/image_raw') - twist_cmd_topic = rospy.get_param('~twist_cmd_topic', '/cmd_vel') + image_raw_topic = rospy.get_param('~image_raw_topic', '/ackermann_vehicle/camera2/rgb/image_raw') signal_cmd_topic = rospy.get_param('~signal_cmd_topic', '/signal_vel') - twist_linear_x = rospy.get_param('~twist_linear_x', 0.5) # Create publishers - #if twist_cmd_topic!= "": - #pubtwist = rospy.Publisher(twist_cmd_topic, Twist, queue_size=10) - - #if vel_cmd_topic!= "": pubbool = rospy.Publisher(signal_cmd_topic, Bool, queue_size=10) # ______________________________________________________________________________ @@ -205,7 +175,6 @@ def main(): for name in dict_images.keys(): for key in dict_images[name]['images']: dict_images[name]['images'][key] = cv2.GaussianBlur(dict_images[name]['images'][key], (3, 3), 0) - #cv2.imshow(name + ' ' + key, dict_images[name]['images'][key]) # ______________________________________________________________________________ @@ -225,11 +194,8 @@ def main(): if begin_img == False: continue - #resized_ = preProcess(img_rbg) - width_frame = img_rbg.shape[1] height_frame = img_rbg.shape[0] - #default_dim = (width_frame, height_frame) reduced_dim = (int(width_frame * scale_cap), int(height_frame * scale_cap)) frame = cv2.resize(img_rbg, reduced_dim) @@ -244,11 +210,6 @@ def main(): max_key = '' - ##cv2.imshow('Robot View Processed', resized_) - #cv2.imshow('Robot View', img_rbg) - #cv2.imshow('Robot View used', frame) - #cv2.waitKey(1) - # For each image: for name in dict_images.keys(): for key in dict_images[name]['images']: @@ -264,13 +225,11 @@ def main(): max_name = name max_key = key - #print (max_res, max_key) if max_res > detection_threshold: max_width = int(dict_images[max_name]['images'][max_key].shape[1] / scale_cap) max_height = int(dict_images[max_name]['images'][max_key].shape[0] / scale_cap) - max_dim = (max_width, max_height) for pt in zip(*max_loc[::-1]): pt = tuple(int(pti / scale_cap) for pti in pt) @@ -278,8 +237,6 @@ def main(): dict_colors.get(dict_images[max_name]['color']), line_thickness) text = 'Detected: ' + max_name + ' ' + max_key + ' > ' + dict_images[max_name]['type'] + ': ' + \ dict_images[max_name]['title'] - - #print(text) origin = (pt[0], pt[1] + subtitle_offset) origin_2 = (0, height_frame + subtitle_2_offset) @@ -295,17 +252,7 @@ def main(): elif max_name == "pStop": velbool = False - # Send twist or bool - #if twist_cmd_topic != "": - # twist.linear.x = vel - # twist.linear.y = 0 - # twist.linear.z = 0 - # twist.angular.x = 0 - # twist.angular.y = 0 - # twist.angular.z = 0 - # pubtwist.publish(twist) - - #if vel_cmd_topic != "": + # Send bool pubbool.publish(velbool) # Show image From eb4ac437eb5758395bc04b1b6293793991f26556 Mon Sep 17 00:00:00 2001 From: BrunoMonteiro <brunomonteiro98@ua.pt> Date: Wed, 20 Oct 2021 16:39:57 +0100 Subject: [PATCH 05/11] changed signal fps from 10 to 30 --- signal_recognition/scripts/signal_panel_recognition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index 045c2f48..53e90f3a 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -187,7 +187,7 @@ def main(): Image, message_RGB_ReceivedCallback) - rate = rospy.Rate(10) + rate = rospy.Rate(30) while not rospy.is_shutdown(): From 237e349dcfae8fc9042bfede08994df4e3cef0af Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 20 Oct 2021 18:25:49 +0100 Subject: [PATCH 06/11] hotfixes for launch file without kinects --- physical_bringup/launch/modules/driving_cnn1.launch | 2 +- physical_bringup/launch/modules/driving_cnn2a.launch | 2 +- physical_bringup/launch/traxxas_drive1.launch | 4 ---- physical_bringup/launch/traxxas_drive2a.launch | 5 ----- physical_bringup/launch/traxxas_drive2a_kinect.launch | 5 ----- 5 files changed, 2 insertions(+), 16 deletions(-) diff --git a/physical_bringup/launch/modules/driving_cnn1.launch b/physical_bringup/launch/modules/driving_cnn1.launch index b81fce09..744f0291 100644 --- a/physical_bringup/launch/modules/driving_cnn1.launch +++ b/physical_bringup/launch/modules/driving_cnn1.launch @@ -4,7 +4,7 @@ <arg name="twist_cmd_topic" default="/android_input_dir" /> <arg name="vel_cmd_topic" default="android_input_vel" /> <arg name="model" default="" /> - <arg name="signal_cmd_topic" default="/signal_vel"/> + <arg name="signal_cmd_topic" default=""/> <include file="$(find cnn)/launch/driving1.launch"> <arg name="image_raw_topic" value="$(arg image_raw_topic)" /> diff --git a/physical_bringup/launch/modules/driving_cnn2a.launch b/physical_bringup/launch/modules/driving_cnn2a.launch index 0d68273e..1c18fdbb 100644 --- a/physical_bringup/launch/modules/driving_cnn2a.launch +++ b/physical_bringup/launch/modules/driving_cnn2a.launch @@ -4,7 +4,7 @@ <arg name="twist_cmd_topic" default="/android_input_dir" /> <arg name="vel_cmd_topic" default="android_input_vel" /> <arg name="model" default="" /> - <arg name="signal_cmd_topic" default="/signal_vel"/> + <arg name="signal_cmd_topic" default=""/> <include file="$(find cnn)/launch/driving2a.launch"> <arg name="image_raw_topic" value="$(arg image_raw_topic)" /> diff --git a/physical_bringup/launch/traxxas_drive1.launch b/physical_bringup/launch/traxxas_drive1.launch index c3ed09b0..178c7662 100644 --- a/physical_bringup/launch/traxxas_drive1.launch +++ b/physical_bringup/launch/traxxas_drive1.launch @@ -1,14 +1,11 @@ <launch> <arg name="model" default="" /> - <arg name="twist_linear_x" default="1" /> - <arg name="twist_dir_topic" default="/android_input_dir"/> <arg name="int_dir_topic" default="/pub_dir"/> <arg name="int_vel_topic" default="/pub_vel"/> <arg name="int_vel_max" default="108"/> <arg name="vel_cmd_topic" default="/android_input_vel"/> - <arg name="camera_topic" default="/real_camera"/> <arg name="int_camera_id" default="2"/> @@ -18,7 +15,6 @@ <include file="$(find physical_bringup)/launch/modules/driving_cnn1.launch" > <arg name="model" value="$(arg model)"/> - <arg name="twist_linear_x" value="$(arg twist_linear_x)"/> <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> </include> diff --git a/physical_bringup/launch/traxxas_drive2a.launch b/physical_bringup/launch/traxxas_drive2a.launch index 5a0e2f35..8fd4622e 100644 --- a/physical_bringup/launch/traxxas_drive2a.launch +++ b/physical_bringup/launch/traxxas_drive2a.launch @@ -1,9 +1,6 @@ <launch> <arg name="model" default="" /> - <arg name="float_cmd_topic" default="" /> - <arg name="twist_linear_x" default="1" /> - <arg name="twist_dir_topic" default="/android_input_dir"/> <arg name="int_dir_topic" default="/pub_dir"/> <arg name="int_vel_topic" default="/pub_vel"/> @@ -19,8 +16,6 @@ <include file="$(find physical_bringup)/launch/modules/driving_cnn2a.launch" > <arg name="model" value="$(arg model)"/> - <arg name="float_cmd_topic" value="$(arg float_cmd_topic)"/> - <arg name="twist_linear_x" value="$(arg twist_linear_x)"/> <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> </include> diff --git a/physical_bringup/launch/traxxas_drive2a_kinect.launch b/physical_bringup/launch/traxxas_drive2a_kinect.launch index 89a29976..2d75fe55 100644 --- a/physical_bringup/launch/traxxas_drive2a_kinect.launch +++ b/physical_bringup/launch/traxxas_drive2a_kinect.launch @@ -1,9 +1,6 @@ <launch> <arg name="model" default="" /> - <arg name="float_cmd_topic" default="" /> - <arg name="twist_linear_x" default="1" /> - <arg name="twist_dir_topic" default="/android_input_dir"/> <arg name="int_dir_topic" default="/pub_dir"/> <arg name="int_vel_topic" default="/pub_vel"/> @@ -18,8 +15,6 @@ <include file="$(find physical_bringup)/launch/modules/driving_cnn2a.launch" > <arg name="model" value="$(arg model)"/> - <arg name="float_cmd_topic" value="$(arg float_cmd_topic)"/> - <arg name="twist_linear_x" value="$(arg twist_linear_x)"/> <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> <arg name="image_raw_topic" value="$(arg image_raw_topic)"/> </include> From 771569d121b35d78281ef9e2d70ea58452a7e2f7 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 20 Oct 2021 19:03:20 +0100 Subject: [PATCH 07/11] Test creation of csv --- .../scripts/signal_panel_recognition.py | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index 53e90f3a..7e421773 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -8,6 +8,10 @@ from sensor_msgs.msg._Image import Image from cv_bridge.core import CvBridge import pathlib +from datetime import datetime +import pandas as pd +import signal +import sys global img_rbg global bridge @@ -24,8 +28,17 @@ def message_RGB_ReceivedCallback(message): begin_img = True -def main(): +def signal_handler(sig, frame): + global driving_log + global log_path + + rospy.loginfo('You pressed Ctrl+C!') + driving_log.to_csv(log_path + '/driving_log.csv', mode='a', index=False, header=False) + sys.exit(0) +def main(): + global driving_log + global log_path # PARAMETERS__________________________________________________________________ # Import Parameters @@ -79,6 +92,17 @@ def main(): # Create publishers pubbool = rospy.Publisher(signal_cmd_topic, Bool, queue_size=10) + # Define path for .csv + s = str(pathlib.Path(__file__).parent.absolute()) + log_path = s + '/../log/' + rospy.loginfo(log_path) + + # Create pandas dataframe + driving_log = pd.DataFrame(columns=['Time', 'Signal', 'Resolution']) + + # set handler on termination + signal.signal(signal.SIGINT, signal_handler) + # ______________________________________________________________________________ path = str(pathlib.Path(__file__).parent.absolute()) @@ -226,6 +250,15 @@ def main(): max_key = key + # Write log files + curr_time = datetime.datetime.now() + time_str = str(curr_time.year) + '_' + str(curr_time.month) + '_' + str(curr_time.day) + '__' + str( + curr_time.hour) + '_' + str(curr_time.minute) + '_' + str(curr_time.second) + '__' + str( + curr_time.microsecond) + # add image, angle and velocity to the driving_log pandas + row = pd.DataFrame([[time_str, max_name, max_res]], columns=['Time', 'Signal', 'Recognition']) + driving_log = driving_log.append(row, ignore_index=True) + if max_res > detection_threshold: max_width = int(dict_images[max_name]['images'][max_key].shape[1] / scale_cap) From b4b5e5cc45a89905d32cb0222436a63ad6d30867 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Fri, 22 Oct 2021 15:20:19 +0100 Subject: [PATCH 08/11] Creates log file for signal recognition, with the signal detected and it's resolution --- .../scripts/signal_panel_recognition.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index f0cb1bac..6d47c276 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -30,15 +30,16 @@ def message_RGB_ReceivedCallback(message): def signal_handler(sig, frame): - global driving_log + global signal_log global log_path rospy.loginfo('You pressed Ctrl+C!') - driving_log.to_csv(log_path + '/driving_log.csv', mode='a', index=False, header=False) + signal_log.to_csv(log_path + '/signal_log.csv', mode='a', index=False, header=False) + print(signal_log) sys.exit(0) def main(): - global driving_log + global signal_log global log_path # PARAMETERS__________________________________________________________________ @@ -99,11 +100,11 @@ def main(): # Define path for .csv s = str(pathlib.Path(__file__).parent.absolute()) - log_path = s + '/../log/' + log_path = s + '/log/' rospy.loginfo(log_path) # Create pandas dataframe - driving_log = pd.DataFrame(columns=['Time', 'Signal', 'Resolution']) + signal_log = pd.DataFrame(columns=['Time', 'Signal', 'Resolution']) # set handler on termination signal.signal(signal.SIGINT, signal_handler) @@ -256,13 +257,13 @@ def main(): # Write log files - curr_time = datetime.datetime.now() + curr_time = datetime.now() time_str = str(curr_time.year) + '_' + str(curr_time.month) + '_' + str(curr_time.day) + '__' + str( curr_time.hour) + '_' + str(curr_time.minute) + '_' + str(curr_time.second) + '__' + str( curr_time.microsecond) - # add image, angle and velocity to the driving_log pandas - row = pd.DataFrame([[time_str, max_name, max_res]], columns=['Time', 'Signal', 'Recognition']) - driving_log = driving_log.append(row, ignore_index=True) + # add image, angle and velocity to the signal_log pandas + row = pd.DataFrame([[time_str, max_name, max_res]], columns=['Time', 'Signal', 'Resolution']) + signal_log = signal_log.append(row, ignore_index=True) if max_res > detection_threshold: From 6a08c5293397d6b45a5acdb029f09e4e554cd2bb Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Fri, 22 Oct 2021 15:38:14 +0100 Subject: [PATCH 09/11] Different names for each log file --- signal_recognition/scripts/signal_panel_recognition.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index 6d47c276..f5951231 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -34,8 +34,10 @@ def signal_handler(sig, frame): global log_path rospy.loginfo('You pressed Ctrl+C!') - signal_log.to_csv(log_path + '/signal_log.csv', mode='a', index=False, header=False) - print(signal_log) + curr_time = datetime.now() + time_str = str(curr_time.year) + '_' + str(curr_time.month) + '_' + str(curr_time.day) + '__' + str( + curr_time.hour) + '_' + str(curr_time.minute) + signal_log.to_csv(log_path + '/signal_log_' + time_str + '.csv', mode='a', index=False, header=False) sys.exit(0) def main(): From 6e1d29fdacd2ede90e6a035b60525bdff1525951 Mon Sep 17 00:00:00 2001 From: Manuel <gomesnelito@gmail.com> Date: Wed, 27 Oct 2021 15:01:48 +0100 Subject: [PATCH 10/11] Create new folder for log files and rounded the percentages --- signal_recognition/scripts/signal_panel_recognition.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/signal_recognition/scripts/signal_panel_recognition.py b/signal_recognition/scripts/signal_panel_recognition.py index f5951231..19e871ec 100755 --- a/signal_recognition/scripts/signal_panel_recognition.py +++ b/signal_recognition/scripts/signal_panel_recognition.py @@ -12,6 +12,7 @@ import pandas as pd import signal import sys +import os global img_rbg @@ -105,6 +106,10 @@ def main(): log_path = s + '/log/' rospy.loginfo(log_path) + # If the path does not exist, create it + if not os.path.exists(log_path): + os.makedirs(log_path) + # Create pandas dataframe signal_log = pd.DataFrame(columns=['Time', 'Signal', 'Resolution']) @@ -264,7 +269,9 @@ def main(): curr_time.hour) + '_' + str(curr_time.minute) + '_' + str(curr_time.second) + '__' + str( curr_time.microsecond) # add image, angle and velocity to the signal_log pandas - row = pd.DataFrame([[time_str, max_name, max_res]], columns=['Time', 'Signal', 'Resolution']) + max_res_round = round(max_res, 3) + print(max_res_round) + row = pd.DataFrame([[time_str, max_name, max_res_round]], columns=['Time', 'Signal', 'Resolution']) signal_log = signal_log.append(row, ignore_index=True) if max_res > detection_threshold: From 3d75f6e92f515b635fd218b425b6c291e4e4bb76 Mon Sep 17 00:00:00 2001 From: BrunoMonteiro <brunomonteiro98@ua.pt> Date: Wed, 27 Oct 2021 15:46:56 +0100 Subject: [PATCH 11/11] removed vel_cmd_topic from drive1 and drive2 --- physical_bringup/launch/traxxas_drive_signal1.launch | 1 - physical_bringup/launch/traxxas_drive_signal2a.launch | 1 - 2 files changed, 2 deletions(-) diff --git a/physical_bringup/launch/traxxas_drive_signal1.launch b/physical_bringup/launch/traxxas_drive_signal1.launch index 4970713b..71ec8310 100644 --- a/physical_bringup/launch/traxxas_drive_signal1.launch +++ b/physical_bringup/launch/traxxas_drive_signal1.launch @@ -33,7 +33,6 @@ </include> <include file="$(find physical_bringup)/launch/modules/signal_panel_recognition.launch"> - <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> <arg name="signal_cmd_topic" value="$(arg signal_cmd_topic)"/> <arg name="image_raw_topic" value="$(arg camera_topic)"/> </include> diff --git a/physical_bringup/launch/traxxas_drive_signal2a.launch b/physical_bringup/launch/traxxas_drive_signal2a.launch index b66e6e72..4755d451 100644 --- a/physical_bringup/launch/traxxas_drive_signal2a.launch +++ b/physical_bringup/launch/traxxas_drive_signal2a.launch @@ -33,7 +33,6 @@ </include> <include file="$(find physical_bringup)/launch/modules/signal_panel_recognition.launch"> - <arg name="vel_cmd_topic" value="$(arg vel_cmd_topic)"/> <arg name="signal_cmd_topic" value="$(arg signal_cmd_topic)"/> <arg name="image_raw_topic" value="$(arg camera_topic)"/> </include>