From f75cf00dac73a50774e2a677536ac7258186a904 Mon Sep 17 00:00:00 2001
From: Remco van Gorsel
Date: Wed, 3 May 2023 15:41:05 +0200
Subject: [PATCH 01/16] 9-MBT: - Put old snapshot gamemode in seperate files
---
.../ros2_csi_camera_publish/photo_mode.py | 143 ++++++++++++++++
.../ros2_save_camera_image/cloud.py | 152 ++++++++++++++++++
2 files changed, 295 insertions(+)
create mode 100644 src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py
create mode 100644 src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
diff --git a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py b/src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py
new file mode 100644
index 0000000..f9735c3
--- /dev/null
+++ b/src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py
@@ -0,0 +1,143 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""ROS2 CSI Camera Image Publisher.
+This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image
+format. And starts rtmp stream to rtmp://localhost;1935/live/stream
+Example:
+ $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
+ $ source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
+ $ ros2 run ros2_csi_camera_publish jetson
+"""
+
+# ___Import Modules:
+import os
+import cv2
+import json
+import numpy as np
+
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from ament_index_python.packages import get_package_share_directory
+from std_msgs.msg import String
+
+
+# ___Global Variables:
+SETTINGS = os.path.join(get_package_share_directory('ros2_csi_camera_publish'), "settings.json")
+
+
+# __Functions:
+def gstreamer_pipeline(capture_width=320, capture_height=240, display_width=320,
+ display_height=240, framerate=30, flip_method=0):
+ """Copyright (c) 2019 JetsonHacks
+
+ """
+
+ return (
+ "nvarguscamerasrc ! "
+ "video/x-raw(memory:NVMM), "
+ "width=(int)%d, height=(int)%d, "
+ "format=(string)NV12, framerate=(fraction)%d/1 ! "
+ "nvvidconv flip-method=%d ! "
+ "video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
+ "videoconvert ! "
+ "video/x-raw, format=(string)BGR ! appsink"
+ % (capture_width, capture_height, framerate, flip_method, display_width, display_height)
+ )
+
+
+# __Classes:
+class CameraPublisher(Node):
+ """Camera Publisher Class.
+ This class contains all methods to publish csi camera data as
+ sensor_msgs.msg/Image format.
+
+ """
+
+ def __init__(self, publish_topic='/cmd_vel', trigger_topic='/trigger', publish_frequency=100):
+ super().__init__('camera_publisher')
+
+ # initialize publisher
+ self.publisher_ = self.create_publisher(Image, publish_topic, 1)
+ self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 10)
+
+ # set image counter
+ self.i = 0
+
+ def listener_callback1(self, msg):
+ """Timer Callback Function
+
+ This method captures images and publishes required data in ros 2 topic.
+
+ """
+ cap = cv2.VideoCapture(gstreamer_pipeline(1920, 1080,
+ 1920, 1080,
+ 30, 0, ), cv2.CAP_GSTREAMER)
+
+ if cap.isOpened():
+ # reads image data
+ ret, frame = cap.read()
+
+ # processes image data and converts to ros 2 message
+ msg_image = Image()
+ msg_image.header.stamp = Node.get_clock(self).now().to_msg()
+ msg_image.header.frame_id = 'ORDINA'
+ msg_image.height = np.shape(frame)[0]
+ msg_image.width = np.shape(frame)[1]
+ msg_image.encoding = "bgr8"
+ msg_image.is_bigendian = False
+ msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
+ msg_image.data = np.array(frame).tobytes()
+
+ if msg.data == 'pressed':
+ # publishes message
+ self.publisher_.publish(msg_image)
+ self.get_logger().info('%d Images Published' % self.i)
+ cap.release()
+
+ # image counter increment
+ self.i += 1
+
+ return None
+
+
+# ___Main Method:
+def main(args=None):
+ """This is the Main Method.
+
+ """
+
+ # parse settings from json file
+ with open(SETTINGS) as fp:
+ content = json.load(fp)
+ publish_topic = content["publish_topic"]
+ publish_frequency = content["publish_frequency"]
+ capture_width = content["capture_width"]
+ capture_height = content["capture_height"]
+ framerate = content["framerate"]
+ flip_method = content["flip_method"]
+ display_width = content["display_width"]
+ display_height = content["display_height"]
+
+ trigger_topic = '/trigger'
+
+ # initializes node and start publishing
+ rclpy.init(args=args)
+ camera_publisher = CameraPublisher(publish_topic, trigger_topic, publish_frequency)
+ rclpy.spin(camera_publisher)
+
+ # shuts down nose and releases everything
+ camera_publisher.destroy_node()
+ rclpy.shutdown()
+
+ return None
+
+
+# ___Driver Program:
+if __name__ == '__main__':
+ main()
+
+#
+# end of file
+"""ORDINA"""
\ No newline at end of file
diff --git a/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py b/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
new file mode 100644
index 0000000..5e6e198
--- /dev/null
+++ b/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""ROS2 Image Saving Tool.
+
+This script saves image with twist messages as annotation.
+
+Revision History:
+ 2021-10-02 (ANI717 - Animesh Bala Ani): Baseline Software.
+
+Example:
+ $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_save_camera_image execute
+ $ source install/local_setup.bash && ros2 run ros2_save_camera_image execute
+ $ ros2 run ros2_save_camera_image execute
+
+"""
+
+# ___Import Modules:
+import os
+import cv2
+import json
+import datetime
+import requests
+import random
+import string
+import numpy as np
+from pathlib import Path
+
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from geometry_msgs.msg import Twist
+from ament_index_python.packages import get_package_share_directory
+
+# Global Variables:
+SETTINGS = os.path.join(get_package_share_directory('ros2_save_camera_image'), "settings.json")
+
+
+# Classes
+class ImageSubscriber(Node):
+ """Image Saving Class.
+
+ This class contains all methods to save annotated images.
+
+ """
+
+ def __init__(self, azure_url, azure_code, robot_name, image_folder, image_topic='/image', twist_topic='/cmd_vel'):
+ super().__init__('image_subscriber')
+
+ # image topic subscriber initialization
+ self.subscription1 = self.create_subscription(Image, image_topic, self.listener_callback1, 1)
+ self.subscription1 # prevent unused variable warning
+ self.image_count = 0
+
+ # twist topic subscriber initialization
+ self.subscription2 = self.create_subscription(Twist, twist_topic, self.listener_callback2, 1)
+ self.subscription2
+
+ # variable initialization
+ self.image_folder = image_folder
+ self.azure_url = azure_url
+ self.azure_code = azure_code
+ self.robot_name = robot_name
+ self.x = 0
+ self.z = 0
+
+ def get_random_string(self, length):
+ letters = string.ascii_lowercase
+ result_str = ''.join(random.choice(letters) for i in range(length))
+ return result_str
+
+ def listener_callback1(self, msg):
+ """Listener Callback Function 1
+
+ This method collects data from image topic and saves them.
+
+ """
+
+ # parse image data from subscribed topic
+ height = msg.height
+ width = msg.width
+ channel = msg.step // msg.width
+ frame = np.reshape(msg.data, (height, width, channel))
+ self.get_logger().info("Image Received")
+
+ image_name = self.get_random_string(12) + '.jpg'
+
+ url = "{0}?code={1}&robotName={2}&liveStream=0.0.0.0".format(self.azure_url, self.azure_code, self.robot_name)
+
+ cv2.imwrite(os.path.join(self.image_folder, image_name), frame)
+
+ files = {'F': (image_name, open(self.image_folder + '/' + image_name, "rb"), 'image/jpeg')}
+
+ response = requests.post(url, files=files)
+
+ self.get_logger().info(str(response.status_code))
+ self.get_logger().info("Photo send to cloud")
+
+ self.image_count += 1
+
+ os.remove(os.path.join(self.image_folder, image_name))
+
+ def listener_callback2(self, msg):
+ """Listener Callback Function 1
+
+ This method collects data from geometry twist message topic.
+
+ """
+
+ # parse geometry twist data from subscribed topic
+ self.x = int(msg.linear.x * 5) + 5
+ self.z = int(msg.angular.z * 5) + 5
+
+
+# Main Method:
+def main(args=None):
+ """This is the Main Method.
+
+ """
+
+ # parse settings from json file
+ with open(SETTINGS) as fp:
+ content = json.load(fp)
+ image_topic = content["image_topic"]
+ twist_topic = content["twist_topic"]
+ data_directory = content["data_directory"]
+ azure_url = content["azure_url"]
+ azure_code = content["azure_code"]
+ robot_name = content["robot_name"]
+
+ # set directory for saving images
+ image_folder = os.path.join(data_directory,
+ '{0:04d}_{1:02d}_{2:02d}_{3:02d}_{4:02d}'.format(datetime.datetime.now().year,
+ datetime.datetime.now().month,
+ datetime.datetime.now().day,
+ datetime.datetime.now().hour,
+ datetime.datetime.now().minute))
+ Path(image_folder).mkdir(parents=True, exist_ok=True)
+
+ # initializes node and save annotated images
+ rclpy.init(args=args)
+ image_subscriber = ImageSubscriber(azure_url, azure_code, robot_name, image_folder, image_topic, twist_topic)
+ rclpy.spin(image_subscriber)
+
+ # shuts down and releases everything
+ image_subscriber.destroy_node()
+ rclpy.shutdown()
+
+
+# Driver Program:
+if __name__ == '__main__':
+ main()
\ No newline at end of file
From c9e953be06c2ac62e09c454ba5358be65ab23ceb Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Wed, 3 May 2023 16:29:07 +0200
Subject: [PATCH 02/16] smal change in naming of publish message
---
.../ros2_gamepad_to_twist_message/logitech.py | 117 ------------------
.../playstation.py | 10 +-
.../waveshare.py | 8 +-
3 files changed, 9 insertions(+), 126 deletions(-)
delete mode 100644 src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/logitech.py
diff --git a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/logitech.py b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/logitech.py
deleted file mode 100644
index e7a0f55..0000000
--- a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/logitech.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 Publisher for Gamepad Data as Twist Message.
-
-This script publishes gamepad controller data to "\cmd_vel" topic as Twist
-message.
-
-Revision History:
- 2021-10-01 (ANI717 - Animesh Bala Ani): Baseline Software.
-
-Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_gamepad_to_twist_message logitech
- $ source install/local_setup.bash && ros2 run ros2_gamepad_to_twist_message logitech
- $ ros2 run ros2_gamepad_to_twist_message logitech
-
-"""
-
-
-#___Import Modules:
-import os
-import json
-from inputs import get_gamepad
-
-import rclpy
-from rclpy.node import Node
-from geometry_msgs.msg import Twist
-from ament_index_python.packages import get_package_share_directory
-
-
-#___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('ros2_gamepad_to_twist_message'), "settings.json")
-
-
-#__Classes
-class GamepadTwist(Node):
- """Gamepad Twist Class.
-
- This class contains all methods to publish gamepad controller data.
-
- """
-
- def __init__(self, publish_topic='/cmd_vel', publish_frequency=100):
- super().__init__('gamepad_publisher')
-
- # publisher initialization
- self.publisher_ = self.create_publisher(Twist, publish_topic, 1)
- self.timer = self.create_timer(1/publish_frequency, self.timer_callback)
-
- # variable initialization
- self.max_z = 1
- self.max_x = 1
- self.z = 0.0
- self.x = 0.0
-
- def timer_callback(self):
- """Timer Callback Function
-
- This method publishes gamepad data as Twist message.
-
- """
-
- # initializes Twist message
- twist = Twist()
-
- # obtains gamepad data
- events = get_gamepad()
- for event in events:
- if event.code == 'ABS_RX':
- self.max_z = max(abs(event.state), self.max_z)
- self.z = event.state/self.max_z
-
- if event.code == 'ABS_Y':
- self.max_x = max(abs(event.state), self.max_x)
- self.x = - event.state/self.max_x
-
- # creates Twist message
- twist.angular.z = round(self.z, 1)
- twist.linear.x = round(self.x, 1)
-
- # publishes message
- self.publisher_.publish(twist)
- self.get_logger().info("Angular Z: {:.1f}, Linear X: {:.1f}".format(self.z, self.x))
-
- return None
-
-
-def main(args=None):
- """This is the Main Method.
-
- """
-
- # parse settings from json file
- with open(SETTINGS) as fp:
- content = json.load(fp)
- publish_topic = content["publish_topic"]
- publish_frequency = content["publish_frequency"]
-
- # initializes node and start publishing
- rclpy.init(args=args)
- gamepad_publisher = GamepadTwist(publish_topic, publish_frequency)
- rclpy.spin(gamepad_publisher)
-
- # shuts down and releases everything
- gamepad_publisher.destroy_node()
- rclpy.shutdown()
-
- return None
-
-
-if __name__ == '__main__':
- main()
-
-
-#
-# end of file
-"""ANI717"""
diff --git a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
index 9ab641c..a672452 100644
--- a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
+++ b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
@@ -44,8 +44,8 @@ def __init__(self, publish_topic='/cmd_vel', publish_frequency=100):
super().__init__('gamepad_publisher')
# publisher initialization
- self.publisher_ = self.create_publisher(Twist, publish_topic, 1)
- self.publisher2 = self.create_publisher(String, '/trigger', 1)
+ self.pub_joystick = self.create_publisher(Twist, publish_topic, 1)
+ self.pub_camera_trigger = self.create_publisher(String, '/camera_trigger', 2)
self.timer = self.create_timer(1 / publish_frequency, self.timer_callback)
# variable initialization
@@ -93,20 +93,20 @@ def timer_callback(self):
if event.button == 0:
msg = String()
msg.data = 'pressed'
- self.publisher2.publish(msg)
+ self.pub_camera_trigger.publish(msg)
self.get_logger().info(" [0 - Square] Button pressed")
if event.button == 9:
self.get_logger().info(" [9 - Options] Button pressed")
msg = String()
msg.data = 'register'
- self.publisher2.publish(msg)
+ self.pub_camera_trigger.publish(msg)
# Creates Twist message
twist.angular.z = round(self.z, 1)
twist.linear.x = round(self.x, 1)
# Publishes message
- self.publisher_.publish(twist)
+ self.pub_joystick.publish(twist)
return None
diff --git a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/waveshare.py b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/waveshare.py
index ce28814..dc930c5 100644
--- a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/waveshare.py
+++ b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/waveshare.py
@@ -45,8 +45,8 @@ def __init__(self, publish_topic='/cmd_vel', publish_frequency=100):
super().__init__('gamepad_publisher')
# publisher initialization
- self.publisher_ = self.create_publisher(Twist, publish_topic, 1)
- self.publisher2 = self.create_publisher(String, '/trigger', 2)
+ self.pub_joystick = self.create_publisher(Twist, publish_topic, 1)
+ self.pub_camera_trigger = self.create_publisher(String, '/camera_trigger', 2)
self.timer = self.create_timer(1/publish_frequency, self.timer_callback)
# variable initialization
@@ -84,14 +84,14 @@ def timer_callback(self):
if event.code == 'BTN_NORTH':
msg = String()
msg.data = 'pressed'
- self.publisher2.publish(msg)
+ self.pub_camera_trigger.publish(msg)
# creates Twist message
twist.angular.z = round(self.z, 1)
twist.linear.x = round(self.x, 1)
# publishes message
- self.publisher_.publish(twist)
+ self.pub_joystick.publish(twist)
self.get_logger().info("Angular Z: {:.1f}, Linear X: {:.1f}".format(self.z, self.x))
return None
From 8751eb19c1d1e043b12f0bded4ae0722e32c781a Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Thu, 4 May 2023 17:10:14 +0200
Subject: [PATCH 03/16] initial setup save camera snapshot
---
src/camera_snap_shot/__init__.py | 0
.../camera_snap_shot/__init__.py | 0
.../camera_snap_shot/take_snap_shot.py} | 42 +++++++---------
.../config/camera_snap_shot_settings.json | 12 +++++
.../launch/camera_snap_shot.launch.py | 38 ++++++++++++++
src/camera_snap_shot/package.xml | 22 ++++++++
.../resource/camera_snap_shot | 0
src/camera_snap_shot/setup.cfg | 4 ++
src/camera_snap_shot/setup.py | 50 +++++++++++++++++++
.../jetbot.py | 4 +-
10 files changed, 147 insertions(+), 25 deletions(-)
create mode 100644 src/camera_snap_shot/__init__.py
create mode 100644 src/camera_snap_shot/camera_snap_shot/__init__.py
rename src/{ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py => camera_snap_shot/camera_snap_shot/take_snap_shot.py} (76%)
create mode 100644 src/camera_snap_shot/config/camera_snap_shot_settings.json
create mode 100644 src/camera_snap_shot/launch/camera_snap_shot.launch.py
create mode 100644 src/camera_snap_shot/package.xml
create mode 100644 src/camera_snap_shot/resource/camera_snap_shot
create mode 100644 src/camera_snap_shot/setup.cfg
create mode 100644 src/camera_snap_shot/setup.py
diff --git a/src/camera_snap_shot/__init__.py b/src/camera_snap_shot/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_snap_shot/camera_snap_shot/__init__.py b/src/camera_snap_shot/camera_snap_shot/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
similarity index 76%
rename from src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py
rename to src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
index f9735c3..fb30e94 100644
--- a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/photo_mode.py
+++ b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
@@ -22,14 +22,18 @@
from ament_index_python.packages import get_package_share_directory
from std_msgs.msg import String
-
# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('ros2_csi_camera_publish'), "settings.json")
-
+SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
+with open(SETTINGS) as fp:
+ json_settings = json.load(fp)
# __Functions:
-def gstreamer_pipeline(capture_width=320, capture_height=240, display_width=320,
- display_height=240, framerate=30, flip_method=0):
+def gstreamer_pipeline(capture_width=json_settings["capture_width"],
+ capture_height=json_settings["capture_height"],
+ display_width=json_settings["display_width"],
+ display_height=json_settings["display_height"],
+ framerate=json_settings["framerate"],
+ flip_method=json_settings["flip_method"]):
"""Copyright (c) 2019 JetsonHacks
"""
@@ -55,12 +59,12 @@ class CameraPublisher(Node):
"""
- def __init__(self, publish_topic='/cmd_vel', trigger_topic='/trigger', publish_frequency=100):
+ def __init__(self, publish_topic='/image', trigger_topic='/trigger', publish_frequency=10):
super().__init__('camera_publisher')
# initialize publisher
- self.publisher_ = self.create_publisher(Image, publish_topic, 1)
- self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 10)
+ self.publisher_ = self.create_publisher(Image, publish_topic, publish_frequency)
+ self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 1)
# set image counter
self.i = 0
@@ -82,7 +86,7 @@ def listener_callback1(self, msg):
# processes image data and converts to ros 2 message
msg_image = Image()
msg_image.header.stamp = Node.get_clock(self).now().to_msg()
- msg_image.header.frame_id = 'ORDINA'
+ msg_image.header.frame_id = str(self.i)
msg_image.height = np.shape(frame)[0]
msg_image.width = np.shape(frame)[1]
msg_image.encoding = "bgr8"
@@ -90,7 +94,7 @@ def listener_callback1(self, msg):
msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
msg_image.data = np.array(frame).tobytes()
- if msg.data == 'pressed':
+ if msg.data == json_settings["camera_trigger_message"]:
# publishes message
self.publisher_.publish(msg_image)
self.get_logger().info('%d Images Published' % self.i)
@@ -109,22 +113,14 @@ def main(args=None):
"""
# parse settings from json file
- with open(SETTINGS) as fp:
- content = json.load(fp)
- publish_topic = content["publish_topic"]
- publish_frequency = content["publish_frequency"]
- capture_width = content["capture_width"]
- capture_height = content["capture_height"]
- framerate = content["framerate"]
- flip_method = content["flip_method"]
- display_width = content["display_width"]
- display_height = content["display_height"]
-
- trigger_topic = '/trigger'
# initializes node and start publishing
rclpy.init(args=args)
- camera_publisher = CameraPublisher(publish_topic, trigger_topic, publish_frequency)
+ camera_publisher = CameraPublisher(
+ json_settings["publish_topic"],
+ json_settings["trigger_topic"],
+ json_settings["publish_frequency"]
+ )
rclpy.spin(camera_publisher)
# shuts down nose and releases everything
diff --git a/src/camera_snap_shot/config/camera_snap_shot_settings.json b/src/camera_snap_shot/config/camera_snap_shot_settings.json
new file mode 100644
index 0000000..3f823de
--- /dev/null
+++ b/src/camera_snap_shot/config/camera_snap_shot_settings.json
@@ -0,0 +1,12 @@
+{
+ "publish_topic": "/image",
+ "publish_frequency": 10,
+ "capture_width": 1920,
+ "capture_height": 1080,
+ "framerate": 30,
+ "flip_method": 0,
+ "display_width": 320,
+ "display_height": 240,
+ "trigger_topic": "/camera_trigger",
+ "camera_trigger_message": "pressed"
+}
\ No newline at end of file
diff --git a/src/camera_snap_shot/launch/camera_snap_shot.launch.py b/src/camera_snap_shot/launch/camera_snap_shot.launch.py
new file mode 100644
index 0000000..56b1a6d
--- /dev/null
+++ b/src/camera_snap_shot/launch/camera_snap_shot.launch.py
@@ -0,0 +1,38 @@
+import pathlib
+
+from ament_index_python.packages import get_package_share_directory
+from launch import LaunchDescription
+from launch.conditions import IfCondition
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration, TextSubstitution
+from launch_ros.actions import Node
+
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.actions import IncludeLaunchDescription
+from launch.actions import GroupAction
+from launch.launch_description_sources import PythonLaunchDescriptionSource
+from launch.substitutions import LaunchConfiguration
+from launch.substitutions import TextSubstitution
+from launch_ros.actions import Node
+from launch_ros.actions import PushRosNamespace
+
+DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('camera_snap_shot')}/config/camera_snap_shot_settings.json"))
+
+
+def generate_launch_description() -> LaunchDescription:
+ # args that can be set from the command line or a default will be used
+ config_file_arg = DeclareLaunchArgument(
+ "config_file", default_value=TextSubstitution(text=DEFAULT_CONFIG_PATH)
+ )
+ # start a turtlesim_node in the turtlesim1 namespace
+ camera_snap_shot = Node(
+ package='camera_snap_shot',
+ executable='take_snap_shot',
+ name='sim',
+ )
+
+ return LaunchDescription([
+ # launch_include,
+ camera_snap_shot,
+ ])
diff --git a/src/camera_snap_shot/package.xml b/src/camera_snap_shot/package.xml
new file mode 100644
index 0000000..48f8bcc
--- /dev/null
+++ b/src/camera_snap_shot/package.xml
@@ -0,0 +1,22 @@
+
+
+
+ camera_snap_shot
+ 1.0.0
+ ros_skeleton
+ raymond houwing
+ MIT License
+
+ ament_index_python
+ rclpy
+ sensor_msgs
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
diff --git a/src/camera_snap_shot/resource/camera_snap_shot b/src/camera_snap_shot/resource/camera_snap_shot
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_snap_shot/setup.cfg b/src/camera_snap_shot/setup.cfg
new file mode 100644
index 0000000..27efca9
--- /dev/null
+++ b/src/camera_snap_shot/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/camera_snap_shot
+[install]
+install_scripts=$base/lib/camera_snap_shot
diff --git a/src/camera_snap_shot/setup.py b/src/camera_snap_shot/setup.py
new file mode 100644
index 0000000..c1d0a34
--- /dev/null
+++ b/src/camera_snap_shot/setup.py
@@ -0,0 +1,50 @@
+from glob import glob
+from pathlib import Path
+from setuptools import setup
+
+
+def get_value_from_string(string: str, prefix: str, suffix: str):
+ value = ""
+ if string.startswith(prefix) and string.endswith(suffix):
+ value = string[len(prefix):][:-len(suffix)]
+ return value
+
+
+with open(Path(__file__).parent / 'package.xml', 'r') as xml_file:
+ for line in xml_file.readlines():
+ if line.startswith(' ') and line.endswith('\n'):
+ package_name = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ version = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ description = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' \n'):
+ line = get_value_from_string(line, ' ')
+ elif line.startswith(' ') and line.endswith('\n'):
+ project_license = get_value_from_string(line, ' ', '\n')
+
+
+setup(
+ name=package_name,
+ version=version,
+ packages=[package_name],
+ data_files=[
+ (str(Path('share/ament_index/resource_index/packages')), [str(Path(f'resource/{package_name}'))]),
+ (str(Path(f'share/{package_name}/config')), glob(str(Path('config/*')))),
+ (str(Path(f'share/{package_name}/launch')), glob(str(Path('launch/*.launch.py')))),
+ (str(Path(f'share/{package_name}')), ['package.xml']),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer=maintainer,
+ maintainer_email=maintainer_email,
+ description=description,
+ license=project_license,
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ 'take_snap_shot = camera_snap_shot.take_snap_shot:main'
+ ],
+ },
+)
diff --git a/src/ros2_twist_message_to_robot_motion/ros2_twist_message_to_robot_motion/jetbot.py b/src/ros2_twist_message_to_robot_motion/ros2_twist_message_to_robot_motion/jetbot.py
index f7d7908..d744ad6 100644
--- a/src/ros2_twist_message_to_robot_motion/ros2_twist_message_to_robot_motion/jetbot.py
+++ b/src/ros2_twist_message_to_robot_motion/ros2_twist_message_to_robot_motion/jetbot.py
@@ -70,8 +70,8 @@ def listener_callback(self, msg):
x = self.x_calibration*float(msg.linear.x)
z = self.z_calibration*float(msg.angular.z)
- self.get_logger().info("x ={:.1f}".format(x))
- self.get_logger().info("z ={:.1f}".format(z))
+ # self.get_logger().info("x ={:.1f}".format(x))
+ # self.get_logger().info("z ={:.1f}".format(z))
# control robot movement
# both wheel same state
From 8d702c38f62a19415c6680735c34ba7dae226333 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Fri, 5 May 2023 16:01:09 +0200
Subject: [PATCH 04/16] working snapshot on trigger topic
---
.gitignore | 2023 +++++++++++++++++
.../ros2_save_camera_image => }/__init__.py | 0
.../camera_snap_shot/take_snap_shot.py | 27 +-
src/camera_snap_shot/package.xml | 1 +
src/ros2_save_camera_image/README.md | 50 -
src/ros2_save_camera_image/launch/launch.py | 70 -
src/ros2_save_camera_image/package.xml | 23 -
.../resource/ros2_save_camera_image | 0
.../ros2_save_camera_image/cloud.py | 152 --
.../ros2_save_camera_image/execute.py | 122 -
src/ros2_save_camera_image/settings.json | 6 -
src/ros2_save_camera_image/setup.cfg | 4 -
src/ros2_save_camera_image/setup.py | 29 -
.../test/test_copyright.py | 23 -
.../test/test_flake8.py | 23 -
.../test/test_pep257.py | 23 -
16 files changed, 2039 insertions(+), 537 deletions(-)
rename src/{ros2_save_camera_image/ros2_save_camera_image => }/__init__.py (100%)
delete mode 100644 src/ros2_save_camera_image/README.md
delete mode 100644 src/ros2_save_camera_image/launch/launch.py
delete mode 100644 src/ros2_save_camera_image/package.xml
delete mode 100644 src/ros2_save_camera_image/resource/ros2_save_camera_image
delete mode 100644 src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
delete mode 100644 src/ros2_save_camera_image/ros2_save_camera_image/execute.py
delete mode 100644 src/ros2_save_camera_image/settings.json
delete mode 100644 src/ros2_save_camera_image/setup.cfg
delete mode 100644 src/ros2_save_camera_image/setup.py
delete mode 100644 src/ros2_save_camera_image/test/test_copyright.py
delete mode 100644 src/ros2_save_camera_image/test/test_flake8.py
delete mode 100644 src/ros2_save_camera_image/test/test_pep257.py
diff --git a/.gitignore b/.gitignore
index 3b0fc45..ab2ed74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,3 +65,2026 @@ About
/venv/
/.idea/
+src/camera_snap_shot/camera_snap_shot/temp.py
+log/COLCON_IGNORE
+log/latest
+log/latest_build
+log/build_2023-04-24_13-23-55/events.log
+log/build_2023-04-24_13-23-55/logger_all.log
+log/build_2023-04-24_13-23-55/robot_app/command.log
+log/build_2023-04-24_13-23-55/robot_app/stderr.log
+log/build_2023-04-24_13-23-55/robot_app/stdout_stderr.log
+log/build_2023-04-24_13-23-55/robot_app/stdout.log
+log/build_2023-04-24_13-23-55/robot_app/streams.log
+log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/command.log
+log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stderr.log
+log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stdout.log
+log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/streams.log
+log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/command.log
+log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-04-24_13-23-55/ros2_save_camera_image/command.log
+log/build_2023-04-24_13-23-55/ros2_save_camera_image/stderr.log
+log/build_2023-04-24_13-23-55/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-04-24_13-23-55/ros2_save_camera_image/stdout.log
+log/build_2023-04-24_13-23-55/ros2_save_camera_image/streams.log
+log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-04-24_13-38-40/events.log
+log/build_2023-04-24_13-38-40/logger_all.log
+log/build_2023-04-24_13-38-40/robot_app/command.log
+log/build_2023-04-24_13-38-40/robot_app/stderr.log
+log/build_2023-04-24_13-38-40/robot_app/stdout_stderr.log
+log/build_2023-04-24_13-38-40/robot_app/stdout.log
+log/build_2023-04-24_13-38-40/robot_app/streams.log
+log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/command.log
+log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stderr.log
+log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stdout.log
+log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/streams.log
+log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/command.log
+log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-04-24_13-38-40/ros2_save_camera_image/command.log
+log/build_2023-04-24_13-38-40/ros2_save_camera_image/stderr.log
+log/build_2023-04-24_13-38-40/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-04-24_13-38-40/ros2_save_camera_image/stdout.log
+log/build_2023-04-24_13-38-40/ros2_save_camera_image/streams.log
+log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-04-24_19-27-25/events.log
+log/build_2023-04-24_19-27-25/logger_all.log
+log/build_2023-04-24_19-27-25/robot_app/command.log
+log/build_2023-04-24_19-27-25/robot_app/stderr.log
+log/build_2023-04-24_19-27-25/robot_app/stdout_stderr.log
+log/build_2023-04-24_19-27-25/robot_app/stdout.log
+log/build_2023-04-24_19-27-25/robot_app/streams.log
+log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/command.log
+log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stderr.log
+log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stdout.log
+log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/streams.log
+log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/command.log
+log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-04-24_19-27-25/ros2_save_camera_image/command.log
+log/build_2023-04-24_19-27-25/ros2_save_camera_image/stderr.log
+log/build_2023-04-24_19-27-25/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-04-24_19-27-25/ros2_save_camera_image/stdout.log
+log/build_2023-04-24_19-27-25/ros2_save_camera_image/streams.log
+log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-03_14-51-50/events.log
+log/build_2023-05-03_14-51-50/logger_all.log
+log/build_2023-05-03_14-51-50/robot_app/command.log
+log/build_2023-05-03_14-51-50/robot_app/stderr.log
+log/build_2023-05-03_14-51-50/robot_app/stdout_stderr.log
+log/build_2023-05-03_14-51-50/robot_app/stdout.log
+log/build_2023-05-03_14-51-50/robot_app/streams.log
+log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/command.log
+log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/streams.log
+log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-03_14-51-50/ros2_save_camera_image/command.log
+log/build_2023-05-03_14-51-50/ros2_save_camera_image/stderr.log
+log/build_2023-05-03_14-51-50/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-03_14-51-50/ros2_save_camera_image/stdout.log
+log/build_2023-05-03_14-51-50/ros2_save_camera_image/streams.log
+log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-03_15-33-52/events.log
+log/build_2023-05-03_15-33-52/logger_all.log
+log/build_2023-05-03_15-33-52/robot_app/command.log
+log/build_2023-05-03_15-33-52/robot_app/stderr.log
+log/build_2023-05-03_15-33-52/robot_app/stdout_stderr.log
+log/build_2023-05-03_15-33-52/robot_app/stdout.log
+log/build_2023-05-03_15-33-52/robot_app/streams.log
+log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/command.log
+log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/streams.log
+log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-03_15-33-52/ros2_save_camera_image/command.log
+log/build_2023-05-03_15-33-52/ros2_save_camera_image/stderr.log
+log/build_2023-05-03_15-33-52/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-03_15-33-52/ros2_save_camera_image/stdout.log
+log/build_2023-05-03_15-33-52/ros2_save_camera_image/streams.log
+log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-03_15-40-04/events.log
+log/build_2023-05-03_15-40-04/logger_all.log
+log/build_2023-05-03_15-40-04/robot_app/command.log
+log/build_2023-05-03_15-40-04/robot_app/stderr.log
+log/build_2023-05-03_15-40-04/robot_app/stdout_stderr.log
+log/build_2023-05-03_15-40-04/robot_app/stdout.log
+log/build_2023-05-03_15-40-04/robot_app/streams.log
+log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/command.log
+log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/streams.log
+log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-03_15-40-04/ros2_save_camera_image/command.log
+log/build_2023-05-03_15-40-04/ros2_save_camera_image/stderr.log
+log/build_2023-05-03_15-40-04/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-03_15-40-04/ros2_save_camera_image/stdout.log
+log/build_2023-05-03_15-40-04/ros2_save_camera_image/streams.log
+log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-03_16-14-18/events.log
+log/build_2023-05-03_16-14-18/logger_all.log
+log/build_2023-05-03_16-14-18/robot_app/command.log
+log/build_2023-05-03_16-14-18/robot_app/stderr.log
+log/build_2023-05-03_16-14-18/robot_app/stdout_stderr.log
+log/build_2023-05-03_16-14-18/robot_app/stdout.log
+log/build_2023-05-03_16-14-18/robot_app/streams.log
+log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/command.log
+log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/streams.log
+log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-03_16-14-18/ros2_save_camera_image/command.log
+log/build_2023-05-03_16-14-18/ros2_save_camera_image/stderr.log
+log/build_2023-05-03_16-14-18/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-03_16-14-18/ros2_save_camera_image/stdout.log
+log/build_2023-05-03_16-14-18/ros2_save_camera_image/streams.log
+log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-03_16-26-04/events.log
+log/build_2023-05-03_16-26-04/logger_all.log
+log/build_2023-05-03_16-26-04/robot_app/command.log
+log/build_2023-05-03_16-26-04/robot_app/stderr.log
+log/build_2023-05-03_16-26-04/robot_app/stdout_stderr.log
+log/build_2023-05-03_16-26-04/robot_app/stdout.log
+log/build_2023-05-03_16-26-04/robot_app/streams.log
+log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/command.log
+log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/streams.log
+log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-03_16-26-04/ros2_save_camera_image/command.log
+log/build_2023-05-03_16-26-04/ros2_save_camera_image/stderr.log
+log/build_2023-05-03_16-26-04/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-03_16-26-04/ros2_save_camera_image/stdout.log
+log/build_2023-05-03_16-26-04/ros2_save_camera_image/streams.log
+log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_11-09-08/events.log
+log/build_2023-05-04_11-09-08/logger_all.log
+log/build_2023-05-04_11-09-08/camera_snap_shot/command.log
+log/build_2023-05-04_11-09-08/camera_snap_shot/stderr.log
+log/build_2023-05-04_11-09-08/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_11-09-08/camera_snap_shot/stdout.log
+log/build_2023-05-04_11-09-08/camera_snap_shot/streams.log
+log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_11-09-08/ros2_save_camera_image/command.log
+log/build_2023-05-04_11-09-08/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_11-09-08/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_11-09-08/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_11-09-08/ros2_save_camera_image/streams.log
+log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_11-10-31/events.log
+log/build_2023-05-04_11-10-31/logger_all.log
+log/build_2023-05-04_11-10-31/camera_snap_shot/command.log
+log/build_2023-05-04_11-10-31/camera_snap_shot/stderr.log
+log/build_2023-05-04_11-10-31/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_11-10-31/camera_snap_shot/stdout.log
+log/build_2023-05-04_11-10-31/camera_snap_shot/streams.log
+log/build_2023-05-04_11-10-31/robot_app/command.log
+log/build_2023-05-04_11-10-31/robot_app/stderr.log
+log/build_2023-05-04_11-10-31/robot_app/stdout_stderr.log
+log/build_2023-05-04_11-10-31/robot_app/stdout.log
+log/build_2023-05-04_11-10-31/robot_app/streams.log
+log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_11-10-31/ros2_save_camera_image/command.log
+log/build_2023-05-04_11-10-31/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_11-10-31/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_11-10-31/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_11-10-31/ros2_save_camera_image/streams.log
+log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_12-45-34/events.log
+log/build_2023-05-04_12-45-34/logger_all.log
+log/build_2023-05-04_12-45-34/camera_snap_shot/command.log
+log/build_2023-05-04_12-45-34/camera_snap_shot/stderr.log
+log/build_2023-05-04_12-45-34/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_12-45-34/camera_snap_shot/stdout.log
+log/build_2023-05-04_12-45-34/camera_snap_shot/streams.log
+log/build_2023-05-04_12-45-34/robot_app/command.log
+log/build_2023-05-04_12-45-34/robot_app/stderr.log
+log/build_2023-05-04_12-45-34/robot_app/stdout_stderr.log
+log/build_2023-05-04_12-45-34/robot_app/stdout.log
+log/build_2023-05-04_12-45-34/robot_app/streams.log
+log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_12-45-34/ros2_save_camera_image/command.log
+log/build_2023-05-04_12-45-34/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_12-45-34/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_12-45-34/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_12-45-34/ros2_save_camera_image/streams.log
+log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_13-30-47/events.log
+log/build_2023-05-04_13-30-47/logger_all.log
+log/build_2023-05-04_13-30-47/camera_snap_shot/command.log
+log/build_2023-05-04_13-30-47/camera_snap_shot/stderr.log
+log/build_2023-05-04_13-30-47/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_13-30-47/camera_snap_shot/stdout.log
+log/build_2023-05-04_13-30-47/camera_snap_shot/streams.log
+log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_13-30-47/ros2_save_camera_image/command.log
+log/build_2023-05-04_13-30-47/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_13-30-47/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_13-30-47/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_13-30-47/ros2_save_camera_image/streams.log
+log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-35-50/events.log
+log/build_2023-05-04_14-35-50/logger_all.log
+log/build_2023-05-04_14-35-50/camera_snap_shot/command.log
+log/build_2023-05-04_14-35-50/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-35-50/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-35-50/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-35-50/camera_snap_shot/streams.log
+log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-35-50/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-35-50/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-35-50/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-35-50/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-35-50/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-40-29/events.log
+log/build_2023-05-04_14-40-29/logger_all.log
+log/build_2023-05-04_14-40-29/camera_snap_shot/command.log
+log/build_2023-05-04_14-40-29/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-40-29/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-40-29/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-40-29/camera_snap_shot/streams.log
+log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-40-29/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-40-29/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-40-29/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-40-29/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-40-29/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-41-57/events.log
+log/build_2023-05-04_14-41-57/logger_all.log
+log/build_2023-05-04_14-41-57/camera_snap_shot/command.log
+log/build_2023-05-04_14-41-57/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-41-57/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-41-57/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-41-57/camera_snap_shot/streams.log
+log/build_2023-05-04_14-41-57/robot_app/command.log
+log/build_2023-05-04_14-41-57/robot_app/stderr.log
+log/build_2023-05-04_14-41-57/robot_app/stdout_stderr.log
+log/build_2023-05-04_14-41-57/robot_app/stdout.log
+log/build_2023-05-04_14-41-57/robot_app/streams.log
+log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-41-57/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-41-57/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-41-57/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-41-57/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-41-57/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-45-35/events.log
+log/build_2023-05-04_14-45-35/logger_all.log
+log/build_2023-05-04_14-45-35/camera_snap_shot/command.log
+log/build_2023-05-04_14-45-35/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-45-35/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-45-35/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-45-35/camera_snap_shot/streams.log
+log/build_2023-05-04_14-45-35/robot_app/command.log
+log/build_2023-05-04_14-45-35/robot_app/stderr.log
+log/build_2023-05-04_14-45-35/robot_app/stdout_stderr.log
+log/build_2023-05-04_14-45-35/robot_app/stdout.log
+log/build_2023-05-04_14-45-35/robot_app/streams.log
+log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-45-35/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-45-35/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-45-35/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-45-35/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-45-35/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-49-00/events.log
+log/build_2023-05-04_14-49-00/logger_all.log
+log/build_2023-05-04_14-49-00/camera_snap_shot/command.log
+log/build_2023-05-04_14-49-00/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-49-00/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-49-00/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-49-00/camera_snap_shot/streams.log
+log/build_2023-05-04_14-49-00/robot_app/command.log
+log/build_2023-05-04_14-49-00/robot_app/stderr.log
+log/build_2023-05-04_14-49-00/robot_app/stdout_stderr.log
+log/build_2023-05-04_14-49-00/robot_app/stdout.log
+log/build_2023-05-04_14-49-00/robot_app/streams.log
+log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-49-00/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-49-00/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-49-00/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-49-00/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-49-00/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_14-54-26/events.log
+log/build_2023-05-04_14-54-26/logger_all.log
+log/build_2023-05-04_14-54-26/camera_snap_shot/command.log
+log/build_2023-05-04_14-54-26/camera_snap_shot/stderr.log
+log/build_2023-05-04_14-54-26/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_14-54-26/camera_snap_shot/stdout.log
+log/build_2023-05-04_14-54-26/camera_snap_shot/streams.log
+log/build_2023-05-04_14-54-26/robot_app/command.log
+log/build_2023-05-04_14-54-26/robot_app/stderr.log
+log/build_2023-05-04_14-54-26/robot_app/stdout_stderr.log
+log/build_2023-05-04_14-54-26/robot_app/stdout.log
+log/build_2023-05-04_14-54-26/robot_app/streams.log
+log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_14-54-26/ros2_save_camera_image/command.log
+log/build_2023-05-04_14-54-26/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_14-54-26/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_14-54-26/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_14-54-26/ros2_save_camera_image/streams.log
+log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_15-08-18/events.log
+log/build_2023-05-04_15-08-18/logger_all.log
+log/build_2023-05-04_15-08-18/camera_snap_shot/command.log
+log/build_2023-05-04_15-08-18/camera_snap_shot/stderr.log
+log/build_2023-05-04_15-08-18/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_15-08-18/camera_snap_shot/stdout.log
+log/build_2023-05-04_15-08-18/camera_snap_shot/streams.log
+log/build_2023-05-04_15-08-18/robot_app/command.log
+log/build_2023-05-04_15-08-18/robot_app/stderr.log
+log/build_2023-05-04_15-08-18/robot_app/stdout_stderr.log
+log/build_2023-05-04_15-08-18/robot_app/stdout.log
+log/build_2023-05-04_15-08-18/robot_app/streams.log
+log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_15-08-18/ros2_save_camera_image/command.log
+log/build_2023-05-04_15-08-18/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_15-08-18/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_15-08-18/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_15-08-18/ros2_save_camera_image/streams.log
+log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_15-15-15/events.log
+log/build_2023-05-04_15-15-15/logger_all.log
+log/build_2023-05-04_15-15-15/camera_snap_shot/command.log
+log/build_2023-05-04_15-15-15/camera_snap_shot/stderr.log
+log/build_2023-05-04_15-15-15/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_15-15-15/camera_snap_shot/stdout.log
+log/build_2023-05-04_15-15-15/camera_snap_shot/streams.log
+log/build_2023-05-04_15-15-15/robot_app/command.log
+log/build_2023-05-04_15-15-15/robot_app/stderr.log
+log/build_2023-05-04_15-15-15/robot_app/stdout_stderr.log
+log/build_2023-05-04_15-15-15/robot_app/stdout.log
+log/build_2023-05-04_15-15-15/robot_app/streams.log
+log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_15-15-15/ros2_save_camera_image/command.log
+log/build_2023-05-04_15-15-15/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_15-15-15/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_15-15-15/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_15-15-15/ros2_save_camera_image/streams.log
+log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_15-21-20/events.log
+log/build_2023-05-04_15-21-20/logger_all.log
+log/build_2023-05-04_15-21-20/camera_snap_shot/command.log
+log/build_2023-05-04_15-21-20/camera_snap_shot/stderr.log
+log/build_2023-05-04_15-21-20/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_15-21-20/camera_snap_shot/stdout.log
+log/build_2023-05-04_15-21-20/camera_snap_shot/streams.log
+log/build_2023-05-04_15-21-20/robot_app/command.log
+log/build_2023-05-04_15-21-20/robot_app/stderr.log
+log/build_2023-05-04_15-21-20/robot_app/stdout_stderr.log
+log/build_2023-05-04_15-21-20/robot_app/stdout.log
+log/build_2023-05-04_15-21-20/robot_app/streams.log
+log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_15-21-20/ros2_save_camera_image/command.log
+log/build_2023-05-04_15-21-20/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_15-21-20/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_15-21-20/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_15-21-20/ros2_save_camera_image/streams.log
+log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_16-56-46/events.log
+log/build_2023-05-04_16-56-46/logger_all.log
+log/build_2023-05-04_16-56-46/camera_snap_shot/command.log
+log/build_2023-05-04_16-56-46/camera_snap_shot/stderr.log
+log/build_2023-05-04_16-56-46/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_16-56-46/camera_snap_shot/stdout.log
+log/build_2023-05-04_16-56-46/camera_snap_shot/streams.log
+log/build_2023-05-04_16-56-46/robot_app/command.log
+log/build_2023-05-04_16-56-46/robot_app/stderr.log
+log/build_2023-05-04_16-56-46/robot_app/stdout_stderr.log
+log/build_2023-05-04_16-56-46/robot_app/stdout.log
+log/build_2023-05-04_16-56-46/robot_app/streams.log
+log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_16-56-46/ros2_save_camera_image/command.log
+log/build_2023-05-04_16-56-46/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_16-56-46/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_16-56-46/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_16-56-46/ros2_save_camera_image/streams.log
+log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_17-19-28/events.log
+log/build_2023-05-04_17-19-28/logger_all.log
+log/build_2023-05-04_17-19-28/camera_snap_shot/command.log
+log/build_2023-05-04_17-19-28/camera_snap_shot/stderr.log
+log/build_2023-05-04_17-19-28/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_17-19-28/camera_snap_shot/stdout.log
+log/build_2023-05-04_17-19-28/camera_snap_shot/streams.log
+log/build_2023-05-04_17-19-28/robot_app/command.log
+log/build_2023-05-04_17-19-28/robot_app/stderr.log
+log/build_2023-05-04_17-19-28/robot_app/stdout_stderr.log
+log/build_2023-05-04_17-19-28/robot_app/stdout.log
+log/build_2023-05-04_17-19-28/robot_app/streams.log
+log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_17-19-28/ros2_save_camera_image/command.log
+log/build_2023-05-04_17-19-28/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_17-19-28/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_17-19-28/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_17-19-28/ros2_save_camera_image/streams.log
+log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_17-22-12/events.log
+log/build_2023-05-04_17-22-12/logger_all.log
+log/build_2023-05-04_17-22-12/camera_snap_shot/command.log
+log/build_2023-05-04_17-22-12/camera_snap_shot/stderr.log
+log/build_2023-05-04_17-22-12/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_17-22-12/camera_snap_shot/stdout.log
+log/build_2023-05-04_17-22-12/camera_snap_shot/streams.log
+log/build_2023-05-04_17-22-12/robot_app/command.log
+log/build_2023-05-04_17-22-12/robot_app/stderr.log
+log/build_2023-05-04_17-22-12/robot_app/stdout_stderr.log
+log/build_2023-05-04_17-22-12/robot_app/stdout.log
+log/build_2023-05-04_17-22-12/robot_app/streams.log
+log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_17-22-12/ros2_save_camera_image/command.log
+log/build_2023-05-04_17-22-12/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_17-22-12/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_17-22-12/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_17-22-12/ros2_save_camera_image/streams.log
+log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-04_17-30-02/events.log
+log/build_2023-05-04_17-30-02/logger_all.log
+log/build_2023-05-04_17-30-02/camera_snap_shot/command.log
+log/build_2023-05-04_17-30-02/camera_snap_shot/stderr.log
+log/build_2023-05-04_17-30-02/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-04_17-30-02/camera_snap_shot/stdout.log
+log/build_2023-05-04_17-30-02/camera_snap_shot/streams.log
+log/build_2023-05-04_17-30-02/robot_app/command.log
+log/build_2023-05-04_17-30-02/robot_app/stderr.log
+log/build_2023-05-04_17-30-02/robot_app/stdout_stderr.log
+log/build_2023-05-04_17-30-02/robot_app/stdout.log
+log/build_2023-05-04_17-30-02/robot_app/streams.log
+log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/command.log
+log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/streams.log
+log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-04_17-30-02/ros2_save_camera_image/command.log
+log/build_2023-05-04_17-30-02/ros2_save_camera_image/stderr.log
+log/build_2023-05-04_17-30-02/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-04_17-30-02/ros2_save_camera_image/stdout.log
+log/build_2023-05-04_17-30-02/ros2_save_camera_image/streams.log
+log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_09-27-08/events.log
+log/build_2023-05-05_09-27-08/logger_all.log
+log/build_2023-05-05_09-27-08/camera_snap_shot/command.log
+log/build_2023-05-05_09-27-08/camera_snap_shot/stderr.log
+log/build_2023-05-05_09-27-08/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_09-27-08/camera_snap_shot/stdout.log
+log/build_2023-05-05_09-27-08/camera_snap_shot/streams.log
+log/build_2023-05-05_09-27-08/robot_app/command.log
+log/build_2023-05-05_09-27-08/robot_app/stderr.log
+log/build_2023-05-05_09-27-08/robot_app/stdout_stderr.log
+log/build_2023-05-05_09-27-08/robot_app/stdout.log
+log/build_2023-05-05_09-27-08/robot_app/streams.log
+log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_09-27-08/ros2_save_camera_image/command.log
+log/build_2023-05-05_09-27-08/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_09-27-08/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_09-27-08/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_09-27-08/ros2_save_camera_image/streams.log
+log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_09-42-27/events.log
+log/build_2023-05-05_09-42-27/logger_all.log
+log/build_2023-05-05_09-42-27/camera_snap_shot/command.log
+log/build_2023-05-05_09-42-27/camera_snap_shot/stderr.log
+log/build_2023-05-05_09-42-27/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_09-42-27/camera_snap_shot/stdout.log
+log/build_2023-05-05_09-42-27/camera_snap_shot/streams.log
+log/build_2023-05-05_09-42-27/robot_app/command.log
+log/build_2023-05-05_09-42-27/robot_app/stderr.log
+log/build_2023-05-05_09-42-27/robot_app/stdout_stderr.log
+log/build_2023-05-05_09-42-27/robot_app/stdout.log
+log/build_2023-05-05_09-42-27/robot_app/streams.log
+log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_09-42-27/ros2_save_camera_image/command.log
+log/build_2023-05-05_09-42-27/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_09-42-27/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_09-42-27/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_09-42-27/ros2_save_camera_image/streams.log
+log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_09-50-50/events.log
+log/build_2023-05-05_09-50-50/logger_all.log
+log/build_2023-05-05_09-50-50/camera_snap_shot/command.log
+log/build_2023-05-05_09-50-50/camera_snap_shot/stderr.log
+log/build_2023-05-05_09-50-50/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_09-50-50/camera_snap_shot/stdout.log
+log/build_2023-05-05_09-50-50/camera_snap_shot/streams.log
+log/build_2023-05-05_09-50-50/robot_app/command.log
+log/build_2023-05-05_09-50-50/robot_app/stderr.log
+log/build_2023-05-05_09-50-50/robot_app/stdout_stderr.log
+log/build_2023-05-05_09-50-50/robot_app/stdout.log
+log/build_2023-05-05_09-50-50/robot_app/streams.log
+log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_09-50-50/ros2_save_camera_image/command.log
+log/build_2023-05-05_09-50-50/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_09-50-50/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_09-50-50/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_09-50-50/ros2_save_camera_image/streams.log
+log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_10-02-18/events.log
+log/build_2023-05-05_10-02-18/logger_all.log
+log/build_2023-05-05_10-02-18/camera_snap_shot/command.log
+log/build_2023-05-05_10-02-18/camera_snap_shot/stderr.log
+log/build_2023-05-05_10-02-18/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_10-02-18/camera_snap_shot/stdout.log
+log/build_2023-05-05_10-02-18/camera_snap_shot/streams.log
+log/build_2023-05-05_10-02-18/robot_app/command.log
+log/build_2023-05-05_10-02-18/robot_app/stderr.log
+log/build_2023-05-05_10-02-18/robot_app/stdout_stderr.log
+log/build_2023-05-05_10-02-18/robot_app/stdout.log
+log/build_2023-05-05_10-02-18/robot_app/streams.log
+log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_10-02-18/ros2_save_camera_image/command.log
+log/build_2023-05-05_10-02-18/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_10-02-18/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_10-02-18/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_10-02-18/ros2_save_camera_image/streams.log
+log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_10-07-26/events.log
+log/build_2023-05-05_10-07-26/logger_all.log
+log/build_2023-05-05_10-07-26/camera_snap_shot/command.log
+log/build_2023-05-05_10-07-26/camera_snap_shot/stderr.log
+log/build_2023-05-05_10-07-26/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_10-07-26/camera_snap_shot/stdout.log
+log/build_2023-05-05_10-07-26/camera_snap_shot/streams.log
+log/build_2023-05-05_10-07-26/robot_app/command.log
+log/build_2023-05-05_10-07-26/robot_app/stderr.log
+log/build_2023-05-05_10-07-26/robot_app/stdout_stderr.log
+log/build_2023-05-05_10-07-26/robot_app/stdout.log
+log/build_2023-05-05_10-07-26/robot_app/streams.log
+log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_10-07-26/ros2_save_camera_image/command.log
+log/build_2023-05-05_10-07-26/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_10-07-26/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_10-07-26/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_10-07-26/ros2_save_camera_image/streams.log
+log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_12-45-57/events.log
+log/build_2023-05-05_12-45-57/logger_all.log
+log/build_2023-05-05_12-45-57/camera_snap_shot/command.log
+log/build_2023-05-05_12-45-57/camera_snap_shot/stderr.log
+log/build_2023-05-05_12-45-57/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_12-45-57/camera_snap_shot/stdout.log
+log/build_2023-05-05_12-45-57/camera_snap_shot/streams.log
+log/build_2023-05-05_12-45-57/robot_app/command.log
+log/build_2023-05-05_12-45-57/robot_app/stderr.log
+log/build_2023-05-05_12-45-57/robot_app/stdout_stderr.log
+log/build_2023-05-05_12-45-57/robot_app/stdout.log
+log/build_2023-05-05_12-45-57/robot_app/streams.log
+log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_12-45-57/ros2_save_camera_image/command.log
+log/build_2023-05-05_12-45-57/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_12-45-57/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_12-45-57/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_12-45-57/ros2_save_camera_image/streams.log
+log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_12-47-24/events.log
+log/build_2023-05-05_12-47-24/logger_all.log
+log/build_2023-05-05_12-47-24/camera_snap_shot/command.log
+log/build_2023-05-05_12-47-24/camera_snap_shot/stderr.log
+log/build_2023-05-05_12-47-24/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_12-47-24/camera_snap_shot/stdout.log
+log/build_2023-05-05_12-47-24/camera_snap_shot/streams.log
+log/build_2023-05-05_12-47-24/robot_app/command.log
+log/build_2023-05-05_12-47-24/robot_app/stderr.log
+log/build_2023-05-05_12-47-24/robot_app/stdout_stderr.log
+log/build_2023-05-05_12-47-24/robot_app/stdout.log
+log/build_2023-05-05_12-47-24/robot_app/streams.log
+log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_12-47-24/ros2_save_camera_image/command.log
+log/build_2023-05-05_12-47-24/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_12-47-24/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_12-47-24/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_12-47-24/ros2_save_camera_image/streams.log
+log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_12-53-01/events.log
+log/build_2023-05-05_12-53-01/logger_all.log
+log/build_2023-05-05_12-53-01/camera_snap_shot/command.log
+log/build_2023-05-05_12-53-01/camera_snap_shot/stderr.log
+log/build_2023-05-05_12-53-01/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_12-53-01/camera_snap_shot/stdout.log
+log/build_2023-05-05_12-53-01/camera_snap_shot/streams.log
+log/build_2023-05-05_12-53-01/robot_app/command.log
+log/build_2023-05-05_12-53-01/robot_app/stderr.log
+log/build_2023-05-05_12-53-01/robot_app/stdout_stderr.log
+log/build_2023-05-05_12-53-01/robot_app/stdout.log
+log/build_2023-05-05_12-53-01/robot_app/streams.log
+log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_12-53-01/ros2_save_camera_image/command.log
+log/build_2023-05-05_12-53-01/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_12-53-01/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_12-53-01/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_12-53-01/ros2_save_camera_image/streams.log
+log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-17-36/events.log
+log/build_2023-05-05_13-17-36/logger_all.log
+log/build_2023-05-05_13-17-36/camera_snap_shot/command.log
+log/build_2023-05-05_13-17-36/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-17-36/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-17-36/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-17-36/camera_snap_shot/streams.log
+log/build_2023-05-05_13-17-36/robot_app/command.log
+log/build_2023-05-05_13-17-36/robot_app/stderr.log
+log/build_2023-05-05_13-17-36/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-17-36/robot_app/stdout.log
+log/build_2023-05-05_13-17-36/robot_app/streams.log
+log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-17-36/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-17-36/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-17-36/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-17-36/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-17-36/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-22-00/events.log
+log/build_2023-05-05_13-22-00/logger_all.log
+log/build_2023-05-05_13-22-00/camera_snap_shot/command.log
+log/build_2023-05-05_13-22-00/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-22-00/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-22-00/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-22-00/camera_snap_shot/streams.log
+log/build_2023-05-05_13-22-00/robot_app/command.log
+log/build_2023-05-05_13-22-00/robot_app/stderr.log
+log/build_2023-05-05_13-22-00/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-22-00/robot_app/stdout.log
+log/build_2023-05-05_13-22-00/robot_app/streams.log
+log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-22-00/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-22-00/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-22-00/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-22-00/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-22-00/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-23-40/events.log
+log/build_2023-05-05_13-23-40/logger_all.log
+log/build_2023-05-05_13-23-40/camera_snap_shot/command.log
+log/build_2023-05-05_13-23-40/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-23-40/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-23-40/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-23-40/camera_snap_shot/streams.log
+log/build_2023-05-05_13-23-40/robot_app/command.log
+log/build_2023-05-05_13-23-40/robot_app/stderr.log
+log/build_2023-05-05_13-23-40/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-23-40/robot_app/stdout.log
+log/build_2023-05-05_13-23-40/robot_app/streams.log
+log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-23-40/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-23-40/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-23-40/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-23-40/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-23-40/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-30-09/events.log
+log/build_2023-05-05_13-30-09/logger_all.log
+log/build_2023-05-05_13-30-09/camera_snap_shot/command.log
+log/build_2023-05-05_13-30-09/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-30-09/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-30-09/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-30-09/camera_snap_shot/streams.log
+log/build_2023-05-05_13-30-09/robot_app/command.log
+log/build_2023-05-05_13-30-09/robot_app/stderr.log
+log/build_2023-05-05_13-30-09/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-30-09/robot_app/stdout.log
+log/build_2023-05-05_13-30-09/robot_app/streams.log
+log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-30-09/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-30-09/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-30-09/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-30-09/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-30-09/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-35-36/events.log
+log/build_2023-05-05_13-35-36/logger_all.log
+log/build_2023-05-05_13-35-36/camera_snap_shot/command.log
+log/build_2023-05-05_13-35-36/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-35-36/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-35-36/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-35-36/camera_snap_shot/streams.log
+log/build_2023-05-05_13-35-36/robot_app/command.log
+log/build_2023-05-05_13-35-36/robot_app/stderr.log
+log/build_2023-05-05_13-35-36/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-35-36/robot_app/stdout.log
+log/build_2023-05-05_13-35-36/robot_app/streams.log
+log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-35-36/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-35-36/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-35-36/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-35-36/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-35-36/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-46-19/events.log
+log/build_2023-05-05_13-46-19/logger_all.log
+log/build_2023-05-05_13-46-19/camera_snap_shot/command.log
+log/build_2023-05-05_13-46-19/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-46-19/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-46-19/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-46-19/camera_snap_shot/streams.log
+log/build_2023-05-05_13-46-19/robot_app/command.log
+log/build_2023-05-05_13-46-19/robot_app/stderr.log
+log/build_2023-05-05_13-46-19/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-46-19/robot_app/stdout.log
+log/build_2023-05-05_13-46-19/robot_app/streams.log
+log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-46-19/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-46-19/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-46-19/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-46-19/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-46-19/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-49-35/events.log
+log/build_2023-05-05_13-49-35/logger_all.log
+log/build_2023-05-05_13-49-35/camera_snap_shot/command.log
+log/build_2023-05-05_13-49-35/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-49-35/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-49-35/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-49-35/camera_snap_shot/streams.log
+log/build_2023-05-05_13-49-35/robot_app/command.log
+log/build_2023-05-05_13-49-35/robot_app/stderr.log
+log/build_2023-05-05_13-49-35/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-49-35/robot_app/stdout.log
+log/build_2023-05-05_13-49-35/robot_app/streams.log
+log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-49-35/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-49-35/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-49-35/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-49-35/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-49-35/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_13-53-35/events.log
+log/build_2023-05-05_13-53-35/logger_all.log
+log/build_2023-05-05_13-53-35/camera_snap_shot/command.log
+log/build_2023-05-05_13-53-35/camera_snap_shot/stderr.log
+log/build_2023-05-05_13-53-35/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_13-53-35/camera_snap_shot/stdout.log
+log/build_2023-05-05_13-53-35/camera_snap_shot/streams.log
+log/build_2023-05-05_13-53-35/robot_app/command.log
+log/build_2023-05-05_13-53-35/robot_app/stderr.log
+log/build_2023-05-05_13-53-35/robot_app/stdout_stderr.log
+log/build_2023-05-05_13-53-35/robot_app/stdout.log
+log/build_2023-05-05_13-53-35/robot_app/streams.log
+log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_13-53-35/ros2_save_camera_image/command.log
+log/build_2023-05-05_13-53-35/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_13-53-35/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_13-53-35/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_13-53-35/ros2_save_camera_image/streams.log
+log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_14-32-19/events.log
+log/build_2023-05-05_14-32-19/logger_all.log
+log/build_2023-05-05_14-32-19/camera_snap_shot/command.log
+log/build_2023-05-05_14-32-19/camera_snap_shot/stderr.log
+log/build_2023-05-05_14-32-19/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_14-32-19/camera_snap_shot/stdout.log
+log/build_2023-05-05_14-32-19/camera_snap_shot/streams.log
+log/build_2023-05-05_14-32-19/robot_app/command.log
+log/build_2023-05-05_14-32-19/robot_app/stderr.log
+log/build_2023-05-05_14-32-19/robot_app/stdout_stderr.log
+log/build_2023-05-05_14-32-19/robot_app/stdout.log
+log/build_2023-05-05_14-32-19/robot_app/streams.log
+log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_14-32-19/ros2_save_camera_image/command.log
+log/build_2023-05-05_14-32-19/ros2_save_camera_image/stderr.log
+log/build_2023-05-05_14-32-19/ros2_save_camera_image/stdout_stderr.log
+log/build_2023-05-05_14-32-19/ros2_save_camera_image/stdout.log
+log/build_2023-05-05_14-32-19/ros2_save_camera_image/streams.log
+log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_14-46-59/events.log
+log/build_2023-05-05_14-46-59/logger_all.log
+log/build_2023-05-05_14-46-59/camera_snap_shot/command.log
+log/build_2023-05-05_14-46-59/camera_snap_shot/stderr.log
+log/build_2023-05-05_14-46-59/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_14-46-59/camera_snap_shot/stdout.log
+log/build_2023-05-05_14-46-59/camera_snap_shot/streams.log
+log/build_2023-05-05_14-46-59/robot_app/command.log
+log/build_2023-05-05_14-46-59/robot_app/stderr.log
+log/build_2023-05-05_14-46-59/robot_app/stdout_stderr.log
+log/build_2023-05-05_14-46-59/robot_app/stdout.log
+log/build_2023-05-05_14-46-59/robot_app/streams.log
+log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_14-55-23/events.log
+log/build_2023-05-05_14-55-23/logger_all.log
+log/build_2023-05-05_14-55-23/camera_snap_shot/command.log
+log/build_2023-05-05_14-55-23/camera_snap_shot/stderr.log
+log/build_2023-05-05_14-55-23/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_14-55-23/camera_snap_shot/stdout.log
+log/build_2023-05-05_14-55-23/camera_snap_shot/streams.log
+log/build_2023-05-05_14-55-23/robot_app/command.log
+log/build_2023-05-05_14-55-23/robot_app/stderr.log
+log/build_2023-05-05_14-55-23/robot_app/stdout_stderr.log
+log/build_2023-05-05_14-55-23/robot_app/stdout.log
+log/build_2023-05-05_14-55-23/robot_app/streams.log
+log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-07-23/events.log
+log/build_2023-05-05_15-07-23/logger_all.log
+log/build_2023-05-05_15-07-23/camera_snap_shot/command.log
+log/build_2023-05-05_15-07-23/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-07-23/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-07-23/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-07-23/camera_snap_shot/streams.log
+log/build_2023-05-05_15-07-23/robot_app/command.log
+log/build_2023-05-05_15-07-23/robot_app/stderr.log
+log/build_2023-05-05_15-07-23/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-07-23/robot_app/stdout.log
+log/build_2023-05-05_15-07-23/robot_app/streams.log
+log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-10-48/events.log
+log/build_2023-05-05_15-10-48/logger_all.log
+log/build_2023-05-05_15-10-48/camera_snap_shot/command.log
+log/build_2023-05-05_15-10-48/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-10-48/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-10-48/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-10-48/camera_snap_shot/streams.log
+log/build_2023-05-05_15-10-48/robot_app/command.log
+log/build_2023-05-05_15-10-48/robot_app/stderr.log
+log/build_2023-05-05_15-10-48/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-10-48/robot_app/stdout.log
+log/build_2023-05-05_15-10-48/robot_app/streams.log
+log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-12-46/events.log
+log/build_2023-05-05_15-12-46/logger_all.log
+log/build_2023-05-05_15-12-46/camera_snap_shot/command.log
+log/build_2023-05-05_15-12-46/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-12-46/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-12-46/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-12-46/camera_snap_shot/streams.log
+log/build_2023-05-05_15-12-46/robot_app/command.log
+log/build_2023-05-05_15-12-46/robot_app/stderr.log
+log/build_2023-05-05_15-12-46/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-12-46/robot_app/stdout.log
+log/build_2023-05-05_15-12-46/robot_app/streams.log
+log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-16-19/events.log
+log/build_2023-05-05_15-16-19/logger_all.log
+log/build_2023-05-05_15-16-19/camera_snap_shot/command.log
+log/build_2023-05-05_15-16-19/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-16-19/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-16-19/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-16-19/camera_snap_shot/streams.log
+log/build_2023-05-05_15-16-19/robot_app/command.log
+log/build_2023-05-05_15-16-19/robot_app/stderr.log
+log/build_2023-05-05_15-16-19/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-16-19/robot_app/stdout.log
+log/build_2023-05-05_15-16-19/robot_app/streams.log
+log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-20-15/events.log
+log/build_2023-05-05_15-20-15/logger_all.log
+log/build_2023-05-05_15-20-15/camera_snap_shot/command.log
+log/build_2023-05-05_15-20-15/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-20-15/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-20-15/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-20-15/camera_snap_shot/streams.log
+log/build_2023-05-05_15-20-15/robot_app/command.log
+log/build_2023-05-05_15-20-15/robot_app/stderr.log
+log/build_2023-05-05_15-20-15/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-20-15/robot_app/stdout.log
+log/build_2023-05-05_15-20-15/robot_app/streams.log
+log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-25-55/events.log
+log/build_2023-05-05_15-25-55/logger_all.log
+log/build_2023-05-05_15-25-55/camera_snap_shot/command.log
+log/build_2023-05-05_15-25-55/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-25-55/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-25-55/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-25-55/camera_snap_shot/streams.log
+log/build_2023-05-05_15-25-55/robot_app/command.log
+log/build_2023-05-05_15-25-55/robot_app/stderr.log
+log/build_2023-05-05_15-25-55/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-25-55/robot_app/stdout.log
+log/build_2023-05-05_15-25-55/robot_app/streams.log
+log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-33-05/events.log
+log/build_2023-05-05_15-33-05/logger_all.log
+log/build_2023-05-05_15-33-05/camera_snap_shot/command.log
+log/build_2023-05-05_15-33-05/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-33-05/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-33-05/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-33-05/camera_snap_shot/streams.log
+log/build_2023-05-05_15-33-05/robot_app/command.log
+log/build_2023-05-05_15-33-05/robot_app/stderr.log
+log/build_2023-05-05_15-33-05/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-33-05/robot_app/stdout.log
+log/build_2023-05-05_15-33-05/robot_app/streams.log
+log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-35-37/events.log
+log/build_2023-05-05_15-35-37/logger_all.log
+log/build_2023-05-05_15-35-37/camera_snap_shot/command.log
+log/build_2023-05-05_15-35-37/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-35-37/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-35-37/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-35-37/camera_snap_shot/streams.log
+log/build_2023-05-05_15-35-37/robot_app/command.log
+log/build_2023-05-05_15-35-37/robot_app/stderr.log
+log/build_2023-05-05_15-35-37/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-35-37/robot_app/stdout.log
+log/build_2023-05-05_15-35-37/robot_app/streams.log
+log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-41-21/events.log
+log/build_2023-05-05_15-41-21/logger_all.log
+log/build_2023-05-05_15-41-21/camera_snap_shot/command.log
+log/build_2023-05-05_15-41-21/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-41-21/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-41-21/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-41-21/camera_snap_shot/streams.log
+log/build_2023-05-05_15-41-21/robot_app/command.log
+log/build_2023-05-05_15-41-21/robot_app/stderr.log
+log/build_2023-05-05_15-41-21/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-41-21/robot_app/stdout.log
+log/build_2023-05-05_15-41-21/robot_app/streams.log
+log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-46-37/events.log
+log/build_2023-05-05_15-46-37/logger_all.log
+log/build_2023-05-05_15-46-37/camera_snap_shot/command.log
+log/build_2023-05-05_15-46-37/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-46-37/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-46-37/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-46-37/camera_snap_shot/streams.log
+log/build_2023-05-05_15-46-37/robot_app/command.log
+log/build_2023-05-05_15-46-37/robot_app/stderr.log
+log/build_2023-05-05_15-46-37/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-46-37/robot_app/stdout.log
+log/build_2023-05-05_15-46-37/robot_app/streams.log
+log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/streams.log
+log/build_2023-05-05_15-51-54/events.log
+log/build_2023-05-05_15-51-54/logger_all.log
+log/build_2023-05-05_15-51-54/camera_snap_shot/command.log
+log/build_2023-05-05_15-51-54/camera_snap_shot/stderr.log
+log/build_2023-05-05_15-51-54/camera_snap_shot/stdout_stderr.log
+log/build_2023-05-05_15-51-54/camera_snap_shot/stdout.log
+log/build_2023-05-05_15-51-54/camera_snap_shot/streams.log
+log/build_2023-05-05_15-51-54/robot_app/command.log
+log/build_2023-05-05_15-51-54/robot_app/stderr.log
+log/build_2023-05-05_15-51-54/robot_app/stdout_stderr.log
+log/build_2023-05-05_15-51-54/robot_app/stdout.log
+log/build_2023-05-05_15-51-54/robot_app/streams.log
+log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/command.log
+log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stderr.log
+log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stdout_stderr.log
+log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stdout.log
+log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/streams.log
+log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/command.log
+log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stderr.log
+log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stdout.log
+log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/streams.log
+log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/command.log
+log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stderr.log
+log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stdout_stderr.log
+log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stdout.log
+log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/streams.log
+log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/command.log
+log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stderr.log
+log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stdout_stderr.log
+log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stdout.log
+log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/streams.log
+install/_local_setup_util_ps1.py
+install/_local_setup_util_sh.py
+install/.colcon_install_layout
+install/COLCON_IGNORE
+install/local_setup.bash
+install/local_setup.ps1
+install/local_setup.sh
+install/local_setup.zsh
+install/setup.bash
+install/setup.ps1
+install/setup.sh
+install/setup.zsh
+install/camera_snap_shot/share/ament_index/resource_index/packages/camera_snap_shot
+install/camera_snap_shot/share/camera_snap_shot/package.bash
+install/camera_snap_shot/share/camera_snap_shot/package.dsv
+install/camera_snap_shot/share/camera_snap_shot/package.ps1
+install/camera_snap_shot/share/camera_snap_shot/package.sh
+install/camera_snap_shot/share/camera_snap_shot/package.xml
+install/camera_snap_shot/share/camera_snap_shot/package.zsh
+install/camera_snap_shot/share/camera_snap_shot/config/camera_snap_shot_settings.json
+install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.dsv
+install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.ps1
+install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.sh
+install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.dsv
+install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.ps1
+install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.sh
+install/camera_snap_shot/share/camera_snap_shot/launch/camera_snap_shot.launch.py
+install/camera_snap_shot/share/colcon-core/packages/camera_snap_shot
+install/robot_app/share/ament_index/resource_index/packages/robot_app
+install/robot_app/share/colcon-core/packages/robot_app
+install/robot_app/share/robot_app/package.bash
+install/robot_app/share/robot_app/package.dsv
+install/robot_app/share/robot_app/package.ps1
+install/robot_app/share/robot_app/package.sh
+install/robot_app/share/robot_app/package.xml
+install/robot_app/share/robot_app/package.zsh
+install/robot_app/share/robot_app/hook/ament_prefix_path.dsv
+install/robot_app/share/robot_app/hook/ament_prefix_path.ps1
+install/robot_app/share/robot_app/hook/ament_prefix_path.sh
+install/robot_app/share/robot_app/hook/pythonpath.dsv
+install/robot_app/share/robot_app/hook/pythonpath.ps1
+install/robot_app/share/robot_app/hook/pythonpath.sh
+install/robot_app/share/robot_app/launch/autonomous_launch.py
+install/robot_app/share/robot_app/launch/gamepad_launch.py
+install/ros2_csi_camera_publish/share/ament_index/resource_index/packages/ros2_csi_camera_publish
+install/ros2_csi_camera_publish/share/colcon-core/packages/ros2_csi_camera_publish
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.bash
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.dsv
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.ps1
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.sh
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.xml
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.zsh
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/settings.json
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.dsv
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.ps1
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.sh
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.dsv
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.ps1
+install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.sh
+install/ros2_deep_learning_to_twist_message/share/ament_index/resource_index/packages/ros2_deep_learning_to_twist_message
+install/ros2_deep_learning_to_twist_message/share/colcon-core/packages/ros2_deep_learning_to_twist_message
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.bash
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.dsv
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.ps1
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.sh
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.xml
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.zsh
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/settings.json
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.dsv
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.ps1
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.sh
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.dsv
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.ps1
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.sh
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/launch/launch.py
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/models/x.onnx
+install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/models/z.onnx
+install/ros2_gamepad_to_twist_message/share/ament_index/resource_index/packages/ros2_gamepad_to_twist_message
+install/ros2_gamepad_to_twist_message/share/colcon-core/packages/ros2_gamepad_to_twist_message
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.bash
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.dsv
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.ps1
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.sh
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.xml
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.zsh
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/settings.json
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.dsv
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.ps1
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.sh
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.dsv
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.ps1
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.sh
+install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/launch/launch.py
+install/ros2_twist_message_to_robot_motion/share/ament_index/resource_index/packages/ros2_twist_message_to_robot_motion
+install/ros2_twist_message_to_robot_motion/share/colcon-core/packages/ros2_twist_message_to_robot_motion
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.bash
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.dsv
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.ps1
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.sh
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.xml
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.zsh
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/settings.json
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.dsv
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.ps1
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.sh
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.dsv
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.ps1
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.sh
+install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/launch/launch.py
diff --git a/src/ros2_save_camera_image/ros2_save_camera_image/__init__.py b/src/__init__.py
similarity index 100%
rename from src/ros2_save_camera_image/ros2_save_camera_image/__init__.py
rename to src/__init__.py
diff --git a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
index fb30e94..ee90561 100644
--- a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
+++ b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
@@ -21,6 +21,7 @@
from sensor_msgs.msg import Image
from ament_index_python.packages import get_package_share_directory
from std_msgs.msg import String
+from cv_bridge import CvBridge, CvBridgeError
# ___Global Variables:
SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
@@ -39,7 +40,7 @@ def gstreamer_pipeline(capture_width=json_settings["capture_width"],
"""
return (
- "nvarguscamerasrc ! "
+ "nvarguscamerasrc sensor-id=0 sensor-mode=2 ! "
"video/x-raw(memory:NVMM), "
"width=(int)%d, height=(int)%d, "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
@@ -63,11 +64,15 @@ def __init__(self, publish_topic='/image', trigger_topic='/trigger', publish_fre
super().__init__('camera_publisher')
# initialize publisher
- self.publisher_ = self.create_publisher(Image, publish_topic, publish_frequency)
+ self.publisher_ = self.create_publisher(Image, publish_topic, 1)
self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 1)
# set image counter
self.i = 0
+ # self.cap = cv2.VideoCapture(gstreamer_pipeline(1920, 1080,
+ # 1920, 1080,
+ # 30, 0, ), cv2.CAP_GSTREAMER)
+ self.bridge = CvBridge()
def listener_callback1(self, msg):
"""Timer Callback Function
@@ -75,9 +80,7 @@ def listener_callback1(self, msg):
This method captures images and publishes required data in ros 2 topic.
"""
- cap = cv2.VideoCapture(gstreamer_pipeline(1920, 1080,
- 1920, 1080,
- 30, 0, ), cv2.CAP_GSTREAMER)
+ cap = cv2.VideoCapture("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")
if cap.isOpened():
# reads image data
@@ -95,13 +98,17 @@ def listener_callback1(self, msg):
msg_image.data = np.array(frame).tobytes()
if msg.data == json_settings["camera_trigger_message"]:
+ cv2.imwrite(f"snapshot_files/image{self.i}.jpg", frame)
+
# publishes message
+ # self.publisher_.publish(self.bridge.cv2_to_imgmsg(frame, "bgr8"))
self.publisher_.publish(msg_image)
- self.get_logger().info('%d Images Published' % self.i)
+
+ self.get_logger().info(f'image saved at image{self.i}.jpg')
cap.release()
- # image counter increment
- self.i += 1
+ # image counter increment
+ self.i += 1
return None
@@ -133,7 +140,3 @@ def main(args=None):
# ___Driver Program:
if __name__ == '__main__':
main()
-
-#
-# end of file
-"""ORDINA"""
\ No newline at end of file
diff --git a/src/camera_snap_shot/package.xml b/src/camera_snap_shot/package.xml
index 48f8bcc..d315861 100644
--- a/src/camera_snap_shot/package.xml
+++ b/src/camera_snap_shot/package.xml
@@ -10,6 +10,7 @@
ament_index_python
rclpy
sensor_msgs
+ cv_bridge
ament_copyright
ament_flake8
diff --git a/src/ros2_save_camera_image/README.md b/src/ros2_save_camera_image/README.md
deleted file mode 100644
index f32cac2..0000000
--- a/src/ros2_save_camera_image/README.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
ROS 2 Package to Save Anotated Camera Image
-
-
-
-ROS 2 Package to Save Camera Image Published in ROS2 Topic along with Geometry Twist Message as Annotation. Collected ROS 2 Geometry Twist linear.x and angular.z data are mapped from the range of floating:-1 to +1 to integer:0 to 10. Then these values are embeded in the image name. This approach doesn't require additional files for saving annotations separately. Example:0000001_z05_x05.jpg.
-
-
-## Colaborators
-[Animesh Bala Ani](https://www.linkedin.com/in/ani717/)
-
-
-## Table of Contents
-* [Install Dependency](#install)
-* [Build, Source & Launch Package](#launch)
-* [Launch Arguments](#arg)
-* [Settings](#set)
-
-
-## Install Dependency
-Install ROS2 dependency.
-```
-sudo apt-get update
-rosdep update
-rosdep install --from-paths src --ignore-src -r -y
-```
-
-
-## Build, Source & Launch Package
-```
-colcon build --symlink-install --packages-select ros2_save_camera_image
-source install/local_setup.bash
-ros2 launch ros2_save_camera_image launch.py
-```
-```
-colcon build --symlink-install && source install/local_setup.bash && ros2 launch ros2_save_camera_image launch.py
-```
-
-
-## Launch Arguments
-Select `True` by editing `line 38` of `launch/launch.py` file to launch `ros2 cam2image` for collecting image data with camera.
-Or use `True` as argument for `cam2image`.
-Default `cam2image`:`True`
-
-
-## Settings
-Edit `settings.json` file to assign `image topic`, `twist topic` and `data directory`.
-Default `image topic`:`\images`
-Default `twist topic`:`\cmd_vel`
-Default `data directory`:`..\images`
diff --git a/src/ros2_save_camera_image/launch/launch.py b/src/ros2_save_camera_image/launch/launch.py
deleted file mode 100644
index 744c90a..0000000
--- a/src/ros2_save_camera_image/launch/launch.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 Package launch File to Save Camera Images.
-
-This script collects image and twist message data from ros2 topics and saves
-annotated images.
-
-Revision History:
- 2021-08-26 (Animesh Bala Ani): Baseline Software.
-
-Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 launch ros2_save_camera_image launch.py
- $ source install/local_setup.bash && ros2 launch ros2_save_camera_image launch.py
- $ ros2 launch ros2_save_camera_image launch.py
-
-"""
-
-
-#___Import Modules:
-from launch import LaunchDescription
-from launch.conditions import IfCondition
-from launch.actions import DeclareLaunchArgument
-from launch.substitutions import LaunchConfiguration
-from launch_ros.actions import Node
-
-
-#___Function:
-def generate_launch_description():
-
- # Create launch configuration variables
- cam2image = LaunchConfiguration('cam2image')
-
-
- # Declare the launch arguments
- declare_cam2image_cmd = DeclareLaunchArgument(
- 'cam2image',
- default_value='True',
- description='Type of Robot to drive.')
-
-
- # Specify the actions
- execute_cmd = Node(
- package = 'ros2_save_camera_image',
- node_executable = 'execute',
- name='save_camera_image')
-
- cam2image_cmd = Node(
- condition=IfCondition(cam2image),
- package = 'image_tools',
- node_executable = 'cam2image',
- name='cam2image')
-
-
- # Create the launch description and populate
- ld = LaunchDescription()
-
- # Declare the launch options
- ld.add_action(declare_cam2image_cmd)
-
- # Add all actions
- ld.add_action(execute_cmd)
- ld.add_action(cam2image_cmd)
-
- return ld
-
-
-#
-# end of file
-"""ANI717"""
\ No newline at end of file
diff --git a/src/ros2_save_camera_image/package.xml b/src/ros2_save_camera_image/package.xml
deleted file mode 100644
index 6444d2a..0000000
--- a/src/ros2_save_camera_image/package.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- ros2_save_camera_image
- 1.0.0
- ROS2 Package to Save Camera Image
- ANI717 (Animesh Bala Ani)
- MIT License
-
- rclpy
- sensor_msgs
- geometry_msgs
- ament_index_python
-
- ament_copyright
- ament_flake8
- ament_pep257
- python3-pytest
-
-
- ament_python
-
-
diff --git a/src/ros2_save_camera_image/resource/ros2_save_camera_image b/src/ros2_save_camera_image/resource/ros2_save_camera_image
deleted file mode 100644
index e69de29..0000000
diff --git a/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py b/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
deleted file mode 100644
index 5e6e198..0000000
--- a/src/ros2_save_camera_image/ros2_save_camera_image/cloud.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 Image Saving Tool.
-
-This script saves image with twist messages as annotation.
-
-Revision History:
- 2021-10-02 (ANI717 - Animesh Bala Ani): Baseline Software.
-
-Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_save_camera_image execute
- $ source install/local_setup.bash && ros2 run ros2_save_camera_image execute
- $ ros2 run ros2_save_camera_image execute
-
-"""
-
-# ___Import Modules:
-import os
-import cv2
-import json
-import datetime
-import requests
-import random
-import string
-import numpy as np
-from pathlib import Path
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from geometry_msgs.msg import Twist
-from ament_index_python.packages import get_package_share_directory
-
-# Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('ros2_save_camera_image'), "settings.json")
-
-
-# Classes
-class ImageSubscriber(Node):
- """Image Saving Class.
-
- This class contains all methods to save annotated images.
-
- """
-
- def __init__(self, azure_url, azure_code, robot_name, image_folder, image_topic='/image', twist_topic='/cmd_vel'):
- super().__init__('image_subscriber')
-
- # image topic subscriber initialization
- self.subscription1 = self.create_subscription(Image, image_topic, self.listener_callback1, 1)
- self.subscription1 # prevent unused variable warning
- self.image_count = 0
-
- # twist topic subscriber initialization
- self.subscription2 = self.create_subscription(Twist, twist_topic, self.listener_callback2, 1)
- self.subscription2
-
- # variable initialization
- self.image_folder = image_folder
- self.azure_url = azure_url
- self.azure_code = azure_code
- self.robot_name = robot_name
- self.x = 0
- self.z = 0
-
- def get_random_string(self, length):
- letters = string.ascii_lowercase
- result_str = ''.join(random.choice(letters) for i in range(length))
- return result_str
-
- def listener_callback1(self, msg):
- """Listener Callback Function 1
-
- This method collects data from image topic and saves them.
-
- """
-
- # parse image data from subscribed topic
- height = msg.height
- width = msg.width
- channel = msg.step // msg.width
- frame = np.reshape(msg.data, (height, width, channel))
- self.get_logger().info("Image Received")
-
- image_name = self.get_random_string(12) + '.jpg'
-
- url = "{0}?code={1}&robotName={2}&liveStream=0.0.0.0".format(self.azure_url, self.azure_code, self.robot_name)
-
- cv2.imwrite(os.path.join(self.image_folder, image_name), frame)
-
- files = {'F': (image_name, open(self.image_folder + '/' + image_name, "rb"), 'image/jpeg')}
-
- response = requests.post(url, files=files)
-
- self.get_logger().info(str(response.status_code))
- self.get_logger().info("Photo send to cloud")
-
- self.image_count += 1
-
- os.remove(os.path.join(self.image_folder, image_name))
-
- def listener_callback2(self, msg):
- """Listener Callback Function 1
-
- This method collects data from geometry twist message topic.
-
- """
-
- # parse geometry twist data from subscribed topic
- self.x = int(msg.linear.x * 5) + 5
- self.z = int(msg.angular.z * 5) + 5
-
-
-# Main Method:
-def main(args=None):
- """This is the Main Method.
-
- """
-
- # parse settings from json file
- with open(SETTINGS) as fp:
- content = json.load(fp)
- image_topic = content["image_topic"]
- twist_topic = content["twist_topic"]
- data_directory = content["data_directory"]
- azure_url = content["azure_url"]
- azure_code = content["azure_code"]
- robot_name = content["robot_name"]
-
- # set directory for saving images
- image_folder = os.path.join(data_directory,
- '{0:04d}_{1:02d}_{2:02d}_{3:02d}_{4:02d}'.format(datetime.datetime.now().year,
- datetime.datetime.now().month,
- datetime.datetime.now().day,
- datetime.datetime.now().hour,
- datetime.datetime.now().minute))
- Path(image_folder).mkdir(parents=True, exist_ok=True)
-
- # initializes node and save annotated images
- rclpy.init(args=args)
- image_subscriber = ImageSubscriber(azure_url, azure_code, robot_name, image_folder, image_topic, twist_topic)
- rclpy.spin(image_subscriber)
-
- # shuts down and releases everything
- image_subscriber.destroy_node()
- rclpy.shutdown()
-
-
-# Driver Program:
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/src/ros2_save_camera_image/ros2_save_camera_image/execute.py b/src/ros2_save_camera_image/ros2_save_camera_image/execute.py
deleted file mode 100644
index eac51b6..0000000
--- a/src/ros2_save_camera_image/ros2_save_camera_image/execute.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 Image Saving Tool.
-
-This script saves image with twist messages as annotation.
-
-Revision History:
- 2021-10-02 (ANI717 - Animesh Bala Ani): Baseline Software.
-
-Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_save_camera_image execute
- $ source install/local_setup.bash && ros2 run ros2_save_camera_image execute
- $ ros2 run ros2_save_camera_image execute
-
-"""
-
-# ___Import Modules:
-import os
-import cv2
-import json
-import datetime
-import requests
-import random
-import string
-import subprocess
-import numpy as np
-from pathlib import Path
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from geometry_msgs.msg import Twist
-from std_msgs.msg import String
-from ament_index_python.packages import get_package_share_directory
-
-# Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('ros2_save_camera_image'), "settings.json")
-
-
-# Classes
-class ImageSubscriber(Node):
-
- def __init__(self, cloud_url, robot_name, image_topic='/image', twist_topic='/cmd_vel'):
- super().__init__('image_subscriber')
-
- self.subscription = self.create_subscription(
- String,
- '/trigger',
- self.manual_update,
- 1)
-
- # variable initialization
- self.cloud_url = cloud_url
- self.robot_name = robot_name
-
- self.register_to_cloud()
-
-
- def register_to_cloud(self):
- url = "{0}/robot".format(self.cloud_url)
- ipAddress = self.get_ip_address()
-
- jsonRobot = {'name': self.robot_name,
- 'liveStream': 'http://localhost:8888/{0}/stream.m3u8'.format(self.robot_name),
- 'rtspStream': 'rtsp://{0}:8554/robotstream'.format(ipAddress)}
-
- try:
- response = requests.post(url, json=jsonRobot, timeout=10)
- self.get_logger().info("Status code: " + str(response.status_code))
- except Exception as e:
- self.get_logger().info("Back-end couldn't be reached: ")
-
-
- def update_to_cloud(self):
- url = "{0}/robot".format(self.cloud_url)
- ipAddress = self.get_ip_address()
-
- jsonRobot = {'name': self.robot_name,
- 'liveStream': 'http://localhost:8888/{0}/stream.m3u8'.format(self.robot_name),
- 'rtspStream': 'rtsp://{0}:8554/robotstream'.format(ipAddress)}
-
- try:
- response = requests.put(url, json=jsonRobot, timeout=10)
- self.get_logger().info("Status code: " + str(response.status_code))
- except Exception as e:
- self.get_logger().info("Back-end couldn't be reached: ")
-
-
- def get_ip_address(self):
- cmd = "ifconfig %s | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'" % 'wlan0'
- return subprocess.check_output(cmd, shell=True).decode('ascii')[:-1]
-
-
- def manual_update(self, msg):
- if msg.data == 'register':
- self.update_to_cloud()
-
-
-# Main Method:
-def main(args=None):
-
- with open(SETTINGS) as fp:
- content = json.load(fp)
- image_topic = content["image_topic"]
- twist_topic = content["twist_topic"]
- cloud_url = content["cloud_url"]
- robot_name = content["robot_name"]
-
- # initializes node and save annotated images
- rclpy.init(args=args)
- cloud_subscriber = ImageSubscriber(cloud_url, robot_name, image_topic, twist_topic)
- rclpy.spin(cloud_subscriber)
-
- # shuts down and releases everything
- cloud_subscriber.destroy_node()
- rclpy.shutdown()
-
-
-# Driver Program:
-if __name__ == '__main__':
- main()
diff --git a/src/ros2_save_camera_image/settings.json b/src/ros2_save_camera_image/settings.json
deleted file mode 100644
index 389336d..0000000
--- a/src/ros2_save_camera_image/settings.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "image_topic": "/image",
- "twist_topic": "/cmd_vel",
- "cloud_url": "http://192.168.1.1:8080",
- "robot_name": "Batmobile"
-}
\ No newline at end of file
diff --git a/src/ros2_save_camera_image/setup.cfg b/src/ros2_save_camera_image/setup.cfg
deleted file mode 100644
index 792ce41..0000000
--- a/src/ros2_save_camera_image/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/ros2_save_camera_image
-[install]
-install_scripts=$base/lib/ros2_save_camera_image
diff --git a/src/ros2_save_camera_image/setup.py b/src/ros2_save_camera_image/setup.py
deleted file mode 100644
index 1b1b8c9..0000000
--- a/src/ros2_save_camera_image/setup.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from setuptools import setup
-from glob import glob
-
-package_name = 'ros2_save_camera_image'
-
-setup(
- name=package_name,
- version='1.0.0',
- packages=[package_name],
- data_files=[
- ('share/ament_index/resource_index/packages',
- ['resource/' + package_name]),
- ('share/' + package_name, ['package.xml']),
- ('share/' + package_name, ['settings.json']),
- ('share/' + package_name + '/launch', glob('launch/*')),
- ],
- install_requires=['setuptools'],
- zip_safe=True,
- maintainer='ANI717 (Animesh Bala Ani)',
- maintainer_email='animesh.ani@live.com',
- description='ROS2 Package to Save Camera Image',
- license='MIT License',
- tests_require=['pytest'],
- entry_points={
- 'console_scripts': [
- 'execute = ros2_save_camera_image.execute:main',
- ],
- },
-)
diff --git a/src/ros2_save_camera_image/test/test_copyright.py b/src/ros2_save_camera_image/test/test_copyright.py
deleted file mode 100644
index cc8ff03..0000000
--- a/src/ros2_save_camera_image/test/test_copyright.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2015 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_copyright.main import main
-import pytest
-
-
-@pytest.mark.copyright
-@pytest.mark.linter
-def test_copyright():
- rc = main(argv=['.', 'test'])
- assert rc == 0, 'Found errors'
diff --git a/src/ros2_save_camera_image/test/test_flake8.py b/src/ros2_save_camera_image/test/test_flake8.py
deleted file mode 100644
index eff8299..0000000
--- a/src/ros2_save_camera_image/test/test_flake8.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2017 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_flake8.main import main
-import pytest
-
-
-@pytest.mark.flake8
-@pytest.mark.linter
-def test_flake8():
- rc = main(argv=[])
- assert rc == 0, 'Found errors'
diff --git a/src/ros2_save_camera_image/test/test_pep257.py b/src/ros2_save_camera_image/test/test_pep257.py
deleted file mode 100644
index b234a38..0000000
--- a/src/ros2_save_camera_image/test/test_pep257.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2015 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_pep257.main import main
-import pytest
-
-
-@pytest.mark.linter
-@pytest.mark.pep257
-def test_pep257():
- rc = main(argv=['.', 'test'])
- assert rc == 0, 'Found code style errors / warnings'
From 2cf2c91164816183e718eac104247e1757f99eec Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Fri, 5 May 2023 16:59:00 +0200
Subject: [PATCH 05/16] cleaner version of snapshot mode
deletes also files so only the last 5 items are in the folder
---
.../camera_snap_shot/take_snap_shot.py | 84 ++++++++-----------
.../config/camera_snap_shot_settings.json | 3 +-
2 files changed, 35 insertions(+), 52 deletions(-)
diff --git a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
index ee90561..8adb2a6 100644
--- a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
+++ b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
@@ -2,12 +2,10 @@
# -*- coding: utf-8 -*-
"""ROS2 CSI Camera Image Publisher.
-This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image
-format. And starts rtmp stream to rtmp://localhost;1935/live/stream
+This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image format.
Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
- $ source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
- $ ros2 run ros2_csi_camera_publish jetson
+ $ colcon build --symlink-install
+ $ ros2 launch camera_snap_shot camera_snap_shot.launch.py
"""
# ___Import Modules:
@@ -21,7 +19,6 @@
from sensor_msgs.msg import Image
from ament_index_python.packages import get_package_share_directory
from std_msgs.msg import String
-from cv_bridge import CvBridge, CvBridgeError
# ___Global Variables:
SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
@@ -29,26 +26,19 @@
json_settings = json.load(fp)
# __Functions:
-def gstreamer_pipeline(capture_width=json_settings["capture_width"],
- capture_height=json_settings["capture_height"],
- display_width=json_settings["display_width"],
- display_height=json_settings["display_height"],
- framerate=json_settings["framerate"],
- flip_method=json_settings["flip_method"]):
- """Copyright (c) 2019 JetsonHacks
-
- """
-
+def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
+ capture_height=str(json_settings["capture_height"]),
+ framerate=str(json_settings["framerate"])):
return (
- "nvarguscamerasrc sensor-id=0 sensor-mode=2 ! "
- "video/x-raw(memory:NVMM), "
- "width=(int)%d, height=(int)%d, "
- "format=(string)NV12, framerate=(fraction)%d/1 ! "
- "nvvidconv flip-method=%d ! "
- "video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
- "videoconvert ! "
- "video/x-raw, format=(string)BGR ! appsink"
- % (capture_width, capture_height, framerate, flip_method, display_width, display_height)
+ "nvarguscamerasrc ! "
+ "video/x-raw(memory:NVMM), "
+ f"width=(int){capture_width}, height=(int){capture_height}, "
+ f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
+ "nvvidconv ! "
+ "video/x-raw, format=(string)BGRx ! "
+ "videoconvert ! "
+ "video/x-raw, format=(string)BGR ! "
+ "appsink"
)
@@ -60,7 +50,7 @@ class CameraPublisher(Node):
"""
- def __init__(self, publish_topic='/image', trigger_topic='/trigger', publish_frequency=10):
+ def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
super().__init__('camera_publisher')
# initialize publisher
@@ -68,11 +58,7 @@ def __init__(self, publish_topic='/image', trigger_topic='/trigger', publish_fre
self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 1)
# set image counter
- self.i = 0
- # self.cap = cv2.VideoCapture(gstreamer_pipeline(1920, 1080,
- # 1920, 1080,
- # 30, 0, ), cv2.CAP_GSTREAMER)
- self.bridge = CvBridge()
+ self.image_number = 0
def listener_callback1(self, msg):
"""Timer Callback Function
@@ -80,7 +66,7 @@ def listener_callback1(self, msg):
This method captures images and publishes required data in ros 2 topic.
"""
- cap = cv2.VideoCapture("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")
+ cap = cv2.VideoCapture(gstreamer_pipeline())
if cap.isOpened():
# reads image data
@@ -89,45 +75,41 @@ def listener_callback1(self, msg):
# processes image data and converts to ros 2 message
msg_image = Image()
msg_image.header.stamp = Node.get_clock(self).now().to_msg()
- msg_image.header.frame_id = str(self.i)
+ msg_image.header.frame_id = str(self.image_number)
msg_image.height = np.shape(frame)[0]
msg_image.width = np.shape(frame)[1]
msg_image.encoding = "bgr8"
msg_image.is_bigendian = False
msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
msg_image.data = np.array(frame).tobytes()
-
+
+ # if message is correct, publish & save image
if msg.data == json_settings["camera_trigger_message"]:
- cv2.imwrite(f"snapshot_files/image{self.i}.jpg", frame)
-
- # publishes message
- # self.publisher_.publish(self.bridge.cv2_to_imgmsg(frame, "bgr8"))
+ image_location = f"{json_settings['image_location']}/image{self.image_number}.jpg"
+ cv2.imwrite(image_location, frame)
self.publisher_.publish(msg_image)
-
- self.get_logger().info(f'image saved at image{self.i}.jpg')
+ self.get_logger().info(f'image saved at image{self.image_number}.jpg')
cap.release()
-
# image counter increment
- self.i += 1
+ self.image_number += 1
+ if self.image_number >4:
+ item_to_delete = f"{json_settings['image_location']}/image{self.image_number-5}.jpg"
+ if os.path.exists(item_to_delete):
+ os.remove(item_to_delete)
+
return None
# ___Main Method:
def main(args=None):
- """This is the Main Method.
-
"""
+ This is the Main Method.
- # parse settings from json file
-
+ """
# initializes node and start publishing
rclpy.init(args=args)
- camera_publisher = CameraPublisher(
- json_settings["publish_topic"],
- json_settings["trigger_topic"],
- json_settings["publish_frequency"]
- )
+ camera_publisher = CameraPublisher()
rclpy.spin(camera_publisher)
# shuts down nose and releases everything
diff --git a/src/camera_snap_shot/config/camera_snap_shot_settings.json b/src/camera_snap_shot/config/camera_snap_shot_settings.json
index 3f823de..4104922 100644
--- a/src/camera_snap_shot/config/camera_snap_shot_settings.json
+++ b/src/camera_snap_shot/config/camera_snap_shot_settings.json
@@ -8,5 +8,6 @@
"display_width": 320,
"display_height": 240,
"trigger_topic": "/camera_trigger",
- "camera_trigger_message": "pressed"
+ "camera_trigger_message": "pressed",
+ "image_location": "snapshot_files"
}
\ No newline at end of file
From 494f040055b11d69286e804885ad83dc5d2296b3 Mon Sep 17 00:00:00 2001
From: Remco van Gorsel
Date: Sun, 7 May 2023 21:49:47 +0200
Subject: [PATCH 06/16] 9-MBT: - Adjusted launch configuration - added
robot_mode:=livestream or snaphot to launch command
---
src/robot_app/launch/gamepad_launch.py | 35 ++++++++++++++++++--------
src/robot_app/package.xml | 2 +-
2 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/src/robot_app/launch/gamepad_launch.py b/src/robot_app/launch/gamepad_launch.py
index 0392936..eec502e 100644
--- a/src/robot_app/launch/gamepad_launch.py
+++ b/src/robot_app/launch/gamepad_launch.py
@@ -19,6 +19,7 @@
#___Import Modules:
from launch import LaunchDescription
from launch.conditions import IfCondition
+from launch.conditions import LaunchConfigurationEquals
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
@@ -37,9 +38,15 @@ def generate_launch_description():
# Declare the launch arguments
declare_gamepad_type_cmd = DeclareLaunchArgument(
'gamepad_type',
- default_value='logitech',
+ default_value='playstation',
description='Type of Gamepad to use.')
+ declare_robot_mode_cmd = DeclareLaunchArgument(
+ 'robot_mode',
+ default_value='livestream',
+ description='Livestream or Snapshot mode'
+ )
+
declare_robot_type_cmd = DeclareLaunchArgument(
'robot_type',
default_value='jetbot',
@@ -54,9 +61,20 @@ def generate_launch_description():
'csijetson',
default_value='True',
description='Using CSI camera on Jetson Nano or not.')
-
-
+
# Specify the actions
+ livestream_mode_cmd = Node(
+ condition = LaunchConfigurationEquals('robot_mode', 'livestream'),
+ package = 'ros2_csi_camera_publish',
+ executable = 'jetson',
+ name = 'csi_camera_publish')
+
+ snapshot_mode_cmd = Node(
+ condition = LaunchConfigurationEquals('robot_mode', 'snapshot'),
+ package = 'camera_snap_shot',
+ executable = 'take_snap_shot',
+ name = 'camera_snap_shot')
+
gamepad_to_twist_cmd = Node(
package = 'ros2_gamepad_to_twist_message',
executable = gamepad_type,
@@ -67,15 +85,10 @@ def generate_launch_description():
executable = robot_type,
name='twist_to_robot_motion')
- save_image_cmd = Node(
- package = 'ros2_save_camera_image',
- executable = 'execute',
- name='save_camera_image')
-
cam2image_cmd = Node(
condition=IfCondition(cam2image),
package = 'image_tools',
- node_executable = 'cam2image',
+ executable = 'cam2image',
name='cam2image')
csijetson_cmd = Node(
@@ -90,14 +103,16 @@ def generate_launch_description():
# Declare the launch options
ld.add_action(declare_gamepad_type_cmd)
+ ld.add_action(declare_robot_mode_cmd)
ld.add_action(declare_robot_type_cmd)
ld.add_action(declare_cam2image_cmd)
ld.add_action(declare_csijetson_cmd)
# Add all actions
ld.add_action(gamepad_to_twist_cmd)
+ ld.add_action(livestream_mode_cmd)
+ ld.add_action(snapshot_mode_cmd)
ld.add_action(twist_to_motion_cmd)
- ld.add_action(save_image_cmd)
ld.add_action(cam2image_cmd)
ld.add_action(csijetson_cmd)
diff --git a/src/robot_app/package.xml b/src/robot_app/package.xml
index dbfbe87..7957b12 100644
--- a/src/robot_app/package.xml
+++ b/src/robot_app/package.xml
@@ -10,8 +10,8 @@
ros2_csi_camera_publish
ros2_deep_learning_to_twist_message
ros2_gamepad_to_twist_message
- ros2_save_camera_image
ros2_twist_message_to_robot_motion
+ camera_snap_shot
image_tools
ament_copyright
From 206d9f098f0f78eef2eee905fde4926d8090aeab Mon Sep 17 00:00:00 2001
From: Raytesterk
Date: Tue, 9 May 2023 10:57:50 +0200
Subject: [PATCH 07/16] initial comit, livestream working
---
.../camera_livestream/__init__.py | 0
.../camera_livestream/camera_livestream.py | 115 ++++++++++++++++++
.../camera_livestream/temp.py | 80 ++++++++++++
.../config/camera_livestream_settings.json | 8 ++
.../launch/camera_livestream.launch.py | 39 ++++++
src/camera_livestream/package.xml | 23 ++++
.../resource/camera_livestream | 0
src/camera_livestream/setup.cfg | 4 +
src/camera_livestream/setup.py | 50 ++++++++
9 files changed, 319 insertions(+)
create mode 100644 src/camera_livestream/camera_livestream/__init__.py
create mode 100644 src/camera_livestream/camera_livestream/camera_livestream.py
create mode 100644 src/camera_livestream/camera_livestream/temp.py
create mode 100644 src/camera_livestream/config/camera_livestream_settings.json
create mode 100644 src/camera_livestream/launch/camera_livestream.launch.py
create mode 100644 src/camera_livestream/package.xml
create mode 100644 src/camera_livestream/resource/camera_livestream
create mode 100644 src/camera_livestream/setup.cfg
create mode 100644 src/camera_livestream/setup.py
diff --git a/src/camera_livestream/camera_livestream/__init__.py b/src/camera_livestream/camera_livestream/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_livestream/camera_livestream/camera_livestream.py b/src/camera_livestream/camera_livestream/camera_livestream.py
new file mode 100644
index 0000000..2699467
--- /dev/null
+++ b/src/camera_livestream/camera_livestream/camera_livestream.py
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""ROS2 CSI Camera Image Publisher.
+This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image format.
+Example:
+ $ colcon build --symlink-install
+ $ ros2 launch camera_snap_shot camera_snap_shot.launch.py
+"""
+
+# ___Import Modules:
+import os
+import cv2
+import json
+import numpy as np
+
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from ament_index_python.packages import get_package_share_directory
+from std_msgs.msg import String
+from cv_bridge import CvBridge
+
+# ___Global Variables:
+SETTINGS = os.path.join(get_package_share_directory('camera_livestream'), "config/camera_livestream_settings.json")
+with open(SETTINGS) as fp:
+ json_settings = json.load(fp)
+
+# __Functions:
+def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
+ capture_height=str(json_settings["capture_height"]),
+ framerate=str(json_settings["framerate"])):
+ return (
+ "nvarguscamerasrc ! "
+ "video/x-raw(memory:NVMM), "
+ f"width=(int){capture_width}, height=(int){capture_height}, "
+ f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
+ "nvvidconv ! "
+ "video/x-raw, format=(string)BGRx ! "
+ "videoconvert ! "
+ "video/x-raw, format=(string)BGR ! "
+ "appsink"
+ )
+
+
+# __Classes:
+class CameraPublisher(Node):
+ """Camera Publisher Class.
+ This class contains all methods to publish csi camera data as
+ sensor_msgs.msg/Image format.
+
+ """
+
+ def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
+ super().__init__('camera_publisher')
+
+ # initialize publisher
+ self.publisher_ = self.create_publisher(Image, publish_topic, 1)
+ self.subscription1 = self.create_subscription(String, trigger_topic, self.start_livestream, 1)
+
+ # set image counter
+ self.image_number = 0
+ self.bridge = CvBridge()
+
+ def start_livestream(self):
+ """Timer Callback Function
+
+ This method captures images and publishes required data in ros 2 topic.
+
+ """
+ cap = cv2.VideoCapture(gstreamer_pipeline())
+ os.environ['DISPLAY']=':0'
+ while cap.isOpened():
+ # reads image data
+ ret, frame = cap.read()
+
+
+ # processes image data and converts to ros 2 message
+ msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
+ self.publisher_.publish(msg_image)
+
+ # shows local livestream
+
+ cv2.imshow("Video Frame", frame)
+
+ # for debugging stops when pressing q
+ if cv2.waitKey(25) & 0xFF == ord('q'):
+ break
+
+ cap.release()
+ cv2.destroyAllWindows()
+
+
+# ___Main Method:
+def main(args=None):
+ """
+ This is the Main Method.
+
+ """
+ # initializes node and start publishing
+ rclpy.init(args=args)
+ camera_publisher = CameraPublisher()
+ camera_publisher.start_livestream()
+ rclpy.spin(camera_publisher)
+
+ # shuts down nose and releases everything
+ camera_publisher.destroy_node()
+ rclpy.shutdown()
+
+ return None
+
+
+# ___Driver Program:
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/camera_livestream/camera_livestream/temp.py b/src/camera_livestream/camera_livestream/temp.py
new file mode 100644
index 0000000..35d0d2b
--- /dev/null
+++ b/src/camera_livestream/camera_livestream/temp.py
@@ -0,0 +1,80 @@
+import os
+import cv2
+import json
+import numpy as np
+
+
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from ament_index_python.packages import get_package_share_directory
+from std_msgs.msg import String
+from std_msgs.msg import String, UInt8MultiArray, MultiArrayDimension
+import random
+
+fp ={
+ "publish_topic": "/image",
+ "publish_frequency": 10,
+ "capture_width": 720,
+ "capture_height": 480,
+ "framerate": 30,
+ "flip_method": 0,
+ "display_width": 320,
+ "display_height": 240,
+ "trigger_topic": "/camera_trigger",
+ "camera_trigger_message": "pressed",
+ "image_location": "snapshot_files"
+}
+json_settings = fp
+
+
+# __Functions:
+def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
+ capture_height=str(json_settings["capture_height"]),
+ framerate=str(json_settings["framerate"])):
+ return (
+ "nvarguscamerasrc ! "
+ "video/x-raw(memory:NVMM), "
+ f"width=(int){capture_width}, height=(int){capture_height}, "
+ f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
+ "nvvidconv ! "
+ "video/x-raw, format=(string)BGRx ! "
+ "videoconvert ! "
+ "video/x-raw, format=(string)BGR ! "
+ "appsink"
+ )
+# temp_message = random.choices(range(256),k=10000)
+cap = cv2.VideoCapture(gstreamer_pipeline())
+os.environ['DISPLAY']=':0'
+while cap.isOpened():
+ # reads image data
+ ret, frame = cap.read()
+ msg_image = UInt8MultiArray()
+
+ # real_message = temp_message
+ # real_message = np.array(frame, dtype=np.uint8)
+ # print(frame)
+ # print(real_message)
+
+ # msg_image.layout.dim.append(MultiArrayDimension())
+ # msg_image.layout.dim.append(MultiArrayDimension())
+ # msg_image.layout.dim.append(MultiArrayDimension())
+ # msg_image.layout.dim[0].label = "height"
+ # msg_image.layout.dim[0].size = 1080
+ # msg_image.layout.dim[0].stride = 3*1920*1080
+ # msg_image.layout.dim[1].label = "width"
+ # msg_image.layout.dim[1].size = 1920
+ # msg_image.layout.dim[1].stride = 3*1920
+ # msg_image.layout.dim[2].label = "channel"
+ # msg_image.layout.dim[2].size = 3
+ # msg_image.layout.dim[2].stride = 3
+ # msg_image.layout.data_offset = 0
+ msg_image.data = frame.flatten().tolist()
+ # msg_image.data = real_message
+ # processes image data and converts to ros 2 message
+ cv2.imshow("Video Frame", frame)
+ if cv2.waitKey(25) & 0xFF == ord('q'):
+ break
+
+cap.release()
+cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/src/camera_livestream/config/camera_livestream_settings.json b/src/camera_livestream/config/camera_livestream_settings.json
new file mode 100644
index 0000000..1f82235
--- /dev/null
+++ b/src/camera_livestream/config/camera_livestream_settings.json
@@ -0,0 +1,8 @@
+{
+ "publish_topic": "/livestream",
+ "capture_width": 720,
+ "capture_height": 480,
+ "framerate": 30,
+ "flip_method": 0,
+ "trigger_topic": "/livestream_trigger"
+}
\ No newline at end of file
diff --git a/src/camera_livestream/launch/camera_livestream.launch.py b/src/camera_livestream/launch/camera_livestream.launch.py
new file mode 100644
index 0000000..dcca9da
--- /dev/null
+++ b/src/camera_livestream/launch/camera_livestream.launch.py
@@ -0,0 +1,39 @@
+import pathlib
+
+from ament_index_python.packages import get_package_share_directory
+from launch import LaunchDescription
+from launch.conditions import IfCondition
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration, TextSubstitution
+from launch_ros.actions import Node
+
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.actions import IncludeLaunchDescription
+from launch.actions import GroupAction
+from launch.launch_description_sources import PythonLaunchDescriptionSource
+from launch.substitutions import LaunchConfiguration
+from launch.substitutions import TextSubstitution
+from launch_ros.actions import Node
+from launch_ros.actions import PushRosNamespace
+
+DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('camera_livestream')}/config/camera_livestream.json"))
+
+
+def generate_launch_description() -> LaunchDescription:
+ # args that can be set from the command line or a default will be used
+ config_file_arg = DeclareLaunchArgument(
+ "config_file", default_value=TextSubstitution(text=DEFAULT_CONFIG_PATH)
+ )
+ # start a turtlesim_node in the turtlesim1 namespace
+ camera_livestream = Node(
+ package='camera_livestream',
+ # namespace='turtlesim2',
+ executable='camera_livestream',
+ name='sim',
+ )
+
+ return LaunchDescription([
+ # launch_include,
+ camera_livestream,
+ ])
diff --git a/src/camera_livestream/package.xml b/src/camera_livestream/package.xml
new file mode 100644
index 0000000..9486978
--- /dev/null
+++ b/src/camera_livestream/package.xml
@@ -0,0 +1,23 @@
+
+
+
+ camera_livestream
+ 1.0.0
+ camera_livestream
+ raymond houwing
+ MIT License
+
+ ament_index_python
+ rclpy
+ sensor_msgs
+ cv_bridge
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
diff --git a/src/camera_livestream/resource/camera_livestream b/src/camera_livestream/resource/camera_livestream
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_livestream/setup.cfg b/src/camera_livestream/setup.cfg
new file mode 100644
index 0000000..db9a262
--- /dev/null
+++ b/src/camera_livestream/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/camera_livestream
+[install]
+install_scripts=$base/lib/camera_livestream
diff --git a/src/camera_livestream/setup.py b/src/camera_livestream/setup.py
new file mode 100644
index 0000000..54b1395
--- /dev/null
+++ b/src/camera_livestream/setup.py
@@ -0,0 +1,50 @@
+from glob import glob
+from pathlib import Path
+from setuptools import setup
+
+
+def get_value_from_string(string: str, prefix: str, suffix: str):
+ value = ""
+ if string.startswith(prefix) and string.endswith(suffix):
+ value = string[len(prefix):][:-len(suffix)]
+ return value
+
+
+with open(Path(__file__).parent / 'package.xml', 'r') as xml_file:
+ for line in xml_file.readlines():
+ if line.startswith(' ') and line.endswith('\n'):
+ package_name = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ version = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ description = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' \n'):
+ line = get_value_from_string(line, ' ')
+ elif line.startswith(' ') and line.endswith('\n'):
+ project_license = get_value_from_string(line, ' ', '\n')
+
+
+setup(
+ name=package_name,
+ version=version,
+ packages=[package_name],
+ data_files=[
+ (str(Path('share/ament_index/resource_index/packages')), [str(Path(f'resource/{package_name}'))]),
+ (str(Path(f'share/{package_name}/config')), glob(str(Path('config/*')))),
+ (str(Path(f'share/{package_name}/launch')), glob(str(Path('launch/*.launch.py')))),
+ (str(Path(f'share/{package_name}')), ['package.xml']),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer=maintainer,
+ maintainer_email=maintainer_email,
+ description=description,
+ license=project_license,
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ 'camera_livestream = camera_livestream.camera_livestream:main'
+ ],
+ },
+)
From db06fbfdbcfb5475e7995965398d1aece50d4192 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Tue, 9 May 2023 17:22:27 +0200
Subject: [PATCH 08/16] first merging comit
---
src/camera_capture/camera_capture/__init__.py | 0
.../camera_capture/camera_capture.py | 168 ++++++++++++++++++
src/camera_capture/config/camera_capture.json | 15 ++
.../launch/camera_capture.launch.py | 39 ++++
src/camera_capture/package.xml | 20 +++
src/camera_capture/resource/camera_capture | 0
src/camera_capture/setup.cfg | 4 +
src/camera_capture/setup.py | 49 +++++
.../camera_snap_shot/take_snap_shot.py | 4 +-
9 files changed, 297 insertions(+), 2 deletions(-)
create mode 100644 src/camera_capture/camera_capture/__init__.py
create mode 100644 src/camera_capture/camera_capture/camera_capture.py
create mode 100644 src/camera_capture/config/camera_capture.json
create mode 100644 src/camera_capture/launch/camera_capture.launch.py
create mode 100644 src/camera_capture/package.xml
create mode 100644 src/camera_capture/resource/camera_capture
create mode 100644 src/camera_capture/setup.cfg
create mode 100644 src/camera_capture/setup.py
diff --git a/src/camera_capture/camera_capture/__init__.py b/src/camera_capture/camera_capture/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
new file mode 100644
index 0000000..85cb5c9
--- /dev/null
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -0,0 +1,168 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""ROS2 CSI Camera Image Publisher.
+This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image format.
+Example:
+ $ colcon build --symlink-install
+ $ ros2 launch camera_snap_shot camera_snap_shot.launch.py
+"""
+
+# ___Import Modules:
+import os
+import cv2
+import json
+import numpy as np
+
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from ament_index_python.packages import get_package_share_directory
+from std_msgs.msg import String, Bool
+from cv_bridge import CvBridge
+
+
+# ___Global Variables:
+SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
+with open(SETTINGS) as fp:
+ json_settings = json.load(fp)
+
+# __Functions:
+def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
+ capture_height=str(json_settings["capture_height"]),
+ framerate=str(json_settings["framerate"])):
+ return (
+ "nvarguscamerasrc ! "
+ "video/x-raw(memory:NVMM), "
+ f"width=(int){capture_width}, height=(int){capture_height}, "
+ f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
+ "nvvidconv ! "
+ "video/x-raw, format=(string)BGRx ! "
+ "videoconvert ! "
+ "video/x-raw, format=(string)BGR ! "
+ "appsink"
+ )
+
+
+# __Classes:
+class CameraPublisher(Node):
+ """Camera Publisher Class.
+ This class contains all methods to publish csi camera data as
+ sensor_msgs.msg/Image format.
+
+ """
+
+ def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
+ super().__init__('camera_publisher')
+
+ # initialize publisher & subscirbers
+ self.pub_cam_snapshot = self.create_publisher(Image, publish_topic, 1)
+ self.pub_cam_livestream = self.create_publisher(Image, publish_topic, 1)
+ self.sub_cam_snapshot_trigger = self.create_subscription(String, trigger_topic, self.capture_snapshot, 1)
+ self.sub_cam_livestream_state = self.create_subscription(String, trigger_topic, self.start_livestream, 1)
+
+ self.cap = cv2.VideoCapture(gstreamer_pipeline())
+ self.bridge = CvBridge()
+ self.image_location = f"{json_settings['image_location']}"
+
+ # set image counter
+ self.image_number = 0
+
+ def start_livestream(self):
+ """Timer Callback Function
+
+ This method starts a livestream
+
+ """
+ os.environ['DISPLAY']=':0' # for developing, this is needed to open up a window to show the local livestream
+ while self.cap.isOpened():
+ # reads image data
+ ret, frame = self.cap.read()
+ msg_image = define_img_file(frame)
+ # msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
+ self.pub_camera_livestream.publish(msg_image)
+
+
+ # for debugging shows local livestream
+ cv2.imshow("Video Frame", frame)
+
+ # for debugging stops when pressing q
+ if cv2.waitKey(25) & 0xFF == ord('q'):
+ break
+
+ self.cap.release()
+ cv2.destroyAllWindows() #for debugging
+
+ def capture_snapshot(self, topic_msg):
+ """Timer Callback Function
+
+ This method captures images, publishes required data in ros 2 topic and saves it to a folder.
+
+ """
+ if self.cap.isOpened() and topic_msg.data == True:
+ # reads image data
+ ret, frame = self.cap.read()
+ print(type(frame))
+ # processes image data and converts to ros 2 message
+
+ msg_image = define_img_file(frame=frame,
+ frame_id=str(self.image_number),
+ time_stamp=Node.get_clock(self).now().to_msg()
+ )
+ # save image local (is this needed?)
+ cv2.imwrite(f"{self.image_location}/image{self.image_number}.jpg", frame)
+ self.get_logger().info(f'image saved at image{self.image_number}.jpg')
+ #post camera snapshot on topic
+ self.pub_camera_snapshot.publish(msg_image)
+
+ self.cap.release()
+ self.image_number += 1
+ #remove keep max 5 files
+ prevent_overflood_image(self.image_number)
+ return None
+
+
+def prevent_overflood_image(img_number):
+ if img_number >4:
+ item_to_delete = f"{json_settings['image_location']}/image{img_number-5}.jpg"
+ if os.path.exists(item_to_delete):
+ os.remove(item_to_delete)
+
+
+def define_img_file(frame, frame_id=0 , time_stamp=0):
+ """
+ prepares the Image(), adds headers, heights etc.
+ """
+ msg_image = Image()
+ msg_image.header.stamp = time_stamp
+ msg_image.header.frame_id = frame_id
+ msg_image.height = np.shape(frame)[0]
+ msg_image.width = np.shape(frame)[1]
+ msg_image.encoding = "bgr8"
+ msg_image.is_bigendian = False
+ msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
+ msg_image.data = np.array(frame).tobytes()
+
+ return(msg_image)
+
+# ___Main Method:
+def main(args=None):
+ """
+ This is the Main Method.
+
+ """
+ # initializes node and start publishing
+ rclpy.init(args=args)
+ camera_publisher = CameraPublisher()
+ rclpy.spin(camera_publisher)
+
+ # shuts down nose and releases everything
+ camera_publisher.destroy_node()
+ rclpy.shutdown()
+
+ return None
+
+
+# ___Driver Program:
+if __name__ == '__main__':
+ main()
diff --git a/src/camera_capture/config/camera_capture.json b/src/camera_capture/config/camera_capture.json
new file mode 100644
index 0000000..7844488
--- /dev/null
+++ b/src/camera_capture/config/camera_capture.json
@@ -0,0 +1,15 @@
+{
+ "publish_topic_camera": "/camera",
+ "camera_id": "/0",
+ "publish_topic_livestream": "/livestream",
+ "publish_topic_snapshot": "/snapshot",
+ "trigger_topic_livestream": "/state",
+ "trigger_topic_snapshot": "/trigger",
+ "capture_width_livestream": 720,
+ "capture_height_livestream": 480,
+ "capture_width_snapshot": 1080,
+ "capture_height_snapshot": 1920,
+ "framerate": 30,
+ "image_location": "snapshot_files"
+
+}
\ No newline at end of file
diff --git a/src/camera_capture/launch/camera_capture.launch.py b/src/camera_capture/launch/camera_capture.launch.py
new file mode 100644
index 0000000..ac1563a
--- /dev/null
+++ b/src/camera_capture/launch/camera_capture.launch.py
@@ -0,0 +1,39 @@
+import pathlib
+
+from ament_index_python.packages import get_package_share_directory
+from launch import LaunchDescription
+from launch.conditions import IfCondition
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration, TextSubstitution
+from launch_ros.actions import Node
+
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.actions import IncludeLaunchDescription
+from launch.actions import GroupAction
+from launch.launch_description_sources import PythonLaunchDescriptionSource
+from launch.substitutions import LaunchConfiguration
+from launch.substitutions import TextSubstitution
+from launch_ros.actions import Node
+from launch_ros.actions import PushRosNamespace
+
+DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('camera_capture')}/config/camera_capture.json"))
+
+
+def generate_launch_description() -> LaunchDescription:
+ # args that can be set from the command line or a default will be used
+ config_file_arg = DeclareLaunchArgument(
+ "config_file", default_value=TextSubstitution(text=DEFAULT_CONFIG_PATH)
+ )
+ # start a turtlesim_node in the turtlesim1 namespace
+ camera_capture = Node(
+ package='camera_capture',
+ executable='camera_capture',
+ name='sim',
+ parameters=[]
+ )
+
+ return LaunchDescription([
+ # launch_include,
+ camera_capture,
+ ])
diff --git a/src/camera_capture/package.xml b/src/camera_capture/package.xml
new file mode 100644
index 0000000..f8f545f
--- /dev/null
+++ b/src/camera_capture/package.xml
@@ -0,0 +1,20 @@
+
+
+
+ camera_capture
+ 1.0.0
+ camera_capture to make snapshots & livestreams
+ raymond houwing
+ MIT License
+
+ ament_index_python
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
diff --git a/src/camera_capture/resource/camera_capture b/src/camera_capture/resource/camera_capture
new file mode 100644
index 0000000..e69de29
diff --git a/src/camera_capture/setup.cfg b/src/camera_capture/setup.cfg
new file mode 100644
index 0000000..8dbb209
--- /dev/null
+++ b/src/camera_capture/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/camera_capture
+[install]
+install_scripts=$base/lib/camera_capture
diff --git a/src/camera_capture/setup.py b/src/camera_capture/setup.py
new file mode 100644
index 0000000..5d9f0ca
--- /dev/null
+++ b/src/camera_capture/setup.py
@@ -0,0 +1,49 @@
+from glob import glob
+from pathlib import Path
+from setuptools import setup
+
+
+def get_value_from_string(string: str, prefix: str, suffix: str):
+ value = ""
+ if string.startswith(prefix) and string.endswith(suffix):
+ value = string[len(prefix):][:-len(suffix)]
+ return value
+
+
+with open(Path(__file__).parent / 'package.xml', 'r') as xml_file:
+ for line in xml_file.readlines():
+ if line.startswith(' ') and line.endswith('\n'):
+ package_name = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ version = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ description = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' \n'):
+ line = get_value_from_string(line, ' ')
+ elif line.startswith(' ') and line.endswith('\n'):
+ project_license = get_value_from_string(line, ' ', '\n')
+
+
+setup(
+ name=package_name,
+ version=version,
+ packages=[package_name],
+ data_files=[
+ (str(Path('share/ament_index/resource_index/packages')), [str(Path(f'resource/{package_name}'))]),
+ (str(Path(f'share/{package_name}/config')), glob(str(Path('config/*')))),
+ (str(Path(f'share/{package_name}/launch')), glob(str(Path('launch/*.launch.py')))),
+ (str(Path(f'share/{package_name}')), ['package.xml']),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer=maintainer,
+ maintainer_email=maintainer_email,
+ description=description,
+ license=project_license,
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ ],
+ },
+)
diff --git a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
index 8adb2a6..99b15a1 100644
--- a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
+++ b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
@@ -55,12 +55,12 @@ def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=j
# initialize publisher
self.publisher_ = self.create_publisher(Image, publish_topic, 1)
- self.subscription1 = self.create_subscription(String, trigger_topic, self.listener_callback1, 1)
+ self.subscription1 = self.create_subscription(String, trigger_topic, self.capture_image, 1)
# set image counter
self.image_number = 0
- def listener_callback1(self, msg):
+ def capture_image(self, msg):
"""Timer Callback Function
This method captures images and publishes required data in ros 2 topic.
From 9946fd7f568217ada5c2bb4cf04ab63dd944d0fc Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Wed, 10 May 2023 15:56:25 +0200
Subject: [PATCH 09/16] video foto alles
---
.../camera_capture/camera_capture.py | 134 ++++++++++--------
...ture.json => camera_capture_settings.json} | 6 +-
.../launch/camera_capture.launch.py | 1 -
src/camera_capture/package.xml | 5 +-
src/camera_capture/setup.py | 1 +
src/robot_app/launch/gamepad_launch.py | 68 ++++-----
.../playstation.py | 32 +++--
7 files changed, 141 insertions(+), 106 deletions(-)
rename src/camera_capture/config/{camera_capture.json => camera_capture_settings.json} (77%)
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index 85cb5c9..be53e8c 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -23,13 +23,13 @@
# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
+SETTINGS = os.path.join(get_package_share_directory('camera_capture'), "config/camera_capture_settings.json")
with open(SETTINGS) as fp:
json_settings = json.load(fp)
# __Functions:
-def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
- capture_height=str(json_settings["capture_height"]),
+def gstreamer_pipeline(capture_width=str(json_settings["capture_width_livestream"]),
+ capture_height=str(json_settings["capture_width_livestream"]),
framerate=str(json_settings["framerate"])):
return (
"nvarguscamerasrc ! "
@@ -52,14 +52,20 @@ class CameraPublisher(Node):
"""
- def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
+ def __init__(self,
+ publish_livestream_topic:str,
+ publish_snapshot_topic:str,
+ snapshot_trigger_topic:str,
+ livestream_state_topic:str
+ ):
super().__init__('camera_publisher')
# initialize publisher & subscirbers
- self.pub_cam_snapshot = self.create_publisher(Image, publish_topic, 1)
- self.pub_cam_livestream = self.create_publisher(Image, publish_topic, 1)
- self.sub_cam_snapshot_trigger = self.create_subscription(String, trigger_topic, self.capture_snapshot, 1)
- self.sub_cam_livestream_state = self.create_subscription(String, trigger_topic, self.start_livestream, 1)
+ self.pub_cam_snapshot = self.create_publisher(Image, publish_snapshot_topic, 1)
+ self.pub_cam_livestream = self.create_publisher(Image, publish_livestream_topic, 1)
+ self.sub_cam_livestream_state = self.create_subscription(Bool, livestream_state_topic, self.start_livestream_callback, 1)
+ self.sub_cam_snapshot_trigger = self.create_subscription(Bool, snapshot_trigger_topic, self.capture_snapshot_callback, 1)
+ self.sub_cam_livestream_convert = self.create_subscription(Image, publish_livestream_topic, self.convert_livestream, 10)
self.cap = cv2.VideoCapture(gstreamer_pipeline())
self.bridge = CvBridge()
@@ -68,82 +74,84 @@ def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=j
# set image counter
self.image_number = 0
- def start_livestream(self):
+ def convert_livestream(self, topic_msg):
+ """
+ get a Image() type message and converts it to a cv2 image with cv2.imshow()
+ """
+ # self._logger.info(f'message received on topic livestream \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
+ cv2.imshow("Video Frame", self.bridge.imgmsg_to_cv2(topic_msg, "bgr8"))
+ cv2.waitKey(1)
+
+
+ def start_livestream_callback(self, topic_msg):
"""Timer Callback Function
This method starts a livestream
"""
os.environ['DISPLAY']=':0' # for developing, this is needed to open up a window to show the local livestream
- while self.cap.isOpened():
- # reads image data
- ret, frame = self.cap.read()
- msg_image = define_img_file(frame)
- # msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
- self.pub_camera_livestream.publish(msg_image)
-
-
- # for debugging shows local livestream
- cv2.imshow("Video Frame", frame)
-
- # for debugging stops when pressing q
- if cv2.waitKey(25) & 0xFF == ord('q'):
- break
-
- self.cap.release()
- cv2.destroyAllWindows() #for debugging
-
- def capture_snapshot(self, topic_msg):
+ self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"])
+ self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"])
+ self._logger.info(f'message received on topic livestream \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
+ timer_period = 0.03 # seconds
+ if self.cap.isOpened():
+ self.get_logger().info('camera is available')
+ if topic_msg.data == True:
+ self._logger.info('starting livestream')
+ self.timer = self.create_timer(timer_period, self.timer_callback)
+ elif topic_msg.data == False:
+ self._logger.info('stopping livestream')
+ self.timer.cancel()
+ self.timer.destroy()
+ cv2.destroyAllWindows()
+ else:
+ self.get_logger().info('camera not available')
+
+ def timer_callback(self):
+ ret, frame = self.cap.read()
+ # cv2.imshow("Video Frame", frame)
+ msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
+ self.pub_cam_livestream.publish(msg_image)
+
+ def capture_snapshot_callback(self, topic_msg):
"""Timer Callback Function
This method captures images, publishes required data in ros 2 topic and saves it to a folder.
"""
- if self.cap.isOpened() and topic_msg.data == True:
+ self.get_logger().info(f'message received on topic snapshot \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
+ self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_snapshot"])
+ self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_snapshot"])
+ if self.cap.isOpened():
+
# reads image data
ret, frame = self.cap.read()
print(type(frame))
- # processes image data and converts to ros 2 message
-
- msg_image = define_img_file(frame=frame,
- frame_id=str(self.image_number),
- time_stamp=Node.get_clock(self).now().to_msg()
- )
- # save image local (is this needed?)
+ msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
+ msg_image.header.frame_id = str(self.image_number)
+ # saves image to folder
cv2.imwrite(f"{self.image_location}/image{self.image_number}.jpg", frame)
self.get_logger().info(f'image saved at image{self.image_number}.jpg')
#post camera snapshot on topic
- self.pub_camera_snapshot.publish(msg_image)
+ self.pub_cam_snapshot.publish(msg_image)
- self.cap.release()
+ # self.cap.release()
self.image_number += 1
- #remove keep max 5 files
+ # keep max 5 files
prevent_overflood_image(self.image_number)
- return None
+ else:
+ self.get_logger().info('camera not available')
+ self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"])
+ self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"])
def prevent_overflood_image(img_number):
if img_number >4:
item_to_delete = f"{json_settings['image_location']}/image{img_number-5}.jpg"
- if os.path.exists(item_to_delete):
- os.remove(item_to_delete)
+ if os.path.exists(item_to_delete):
+ os.remove(item_to_delete)
-def define_img_file(frame, frame_id=0 , time_stamp=0):
- """
- prepares the Image(), adds headers, heights etc.
- """
- msg_image = Image()
- msg_image.header.stamp = time_stamp
- msg_image.header.frame_id = frame_id
- msg_image.height = np.shape(frame)[0]
- msg_image.width = np.shape(frame)[1]
- msg_image.encoding = "bgr8"
- msg_image.is_bigendian = False
- msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
- msg_image.data = np.array(frame).tobytes()
-
- return(msg_image)
# ___Main Method:
def main(args=None):
@@ -152,8 +160,18 @@ def main(args=None):
"""
# initializes node and start publishing
+ cam_0_topic = json_settings['publish_topic_camera']+json_settings['camera_id']
+ livestream_state_topic = cam_0_topic + json_settings['publish_topic_livestream']+json_settings['trigger_topic_livestream']
+ snapshot_trigger_topic = cam_0_topic + json_settings['publish_topic_snapshot']+json_settings['trigger_topic_snapshot']
+ publish_livestream_topic = cam_0_topic + json_settings['publish_topic_livestream']
+ publish_snapshot_topic = cam_0_topic + json_settings['publish_topic_snapshot']
rclpy.init(args=args)
- camera_publisher = CameraPublisher()
+ camera_publisher = CameraPublisher(
+ livestream_state_topic=livestream_state_topic,
+ snapshot_trigger_topic=snapshot_trigger_topic,
+ publish_livestream_topic=publish_livestream_topic,
+ publish_snapshot_topic=publish_snapshot_topic,
+ )
rclpy.spin(camera_publisher)
# shuts down nose and releases everything
diff --git a/src/camera_capture/config/camera_capture.json b/src/camera_capture/config/camera_capture_settings.json
similarity index 77%
rename from src/camera_capture/config/camera_capture.json
rename to src/camera_capture/config/camera_capture_settings.json
index 7844488..0d9bf43 100644
--- a/src/camera_capture/config/camera_capture.json
+++ b/src/camera_capture/config/camera_capture_settings.json
@@ -1,14 +1,14 @@
{
"publish_topic_camera": "/camera",
- "camera_id": "/0",
+ "camera_id": "/cam_0",
"publish_topic_livestream": "/livestream",
"publish_topic_snapshot": "/snapshot",
"trigger_topic_livestream": "/state",
"trigger_topic_snapshot": "/trigger",
"capture_width_livestream": 720,
"capture_height_livestream": 480,
- "capture_width_snapshot": 1080,
- "capture_height_snapshot": 1920,
+ "capture_width_snapshot": 1920,
+ "capture_height_snapshot": 1080,
"framerate": 30,
"image_location": "snapshot_files"
diff --git a/src/camera_capture/launch/camera_capture.launch.py b/src/camera_capture/launch/camera_capture.launch.py
index ac1563a..94dee27 100644
--- a/src/camera_capture/launch/camera_capture.launch.py
+++ b/src/camera_capture/launch/camera_capture.launch.py
@@ -30,7 +30,6 @@ def generate_launch_description() -> LaunchDescription:
package='camera_capture',
executable='camera_capture',
name='sim',
- parameters=[]
)
return LaunchDescription([
diff --git a/src/camera_capture/package.xml b/src/camera_capture/package.xml
index f8f545f..6b98c65 100644
--- a/src/camera_capture/package.xml
+++ b/src/camera_capture/package.xml
@@ -3,11 +3,14 @@
camera_capture
1.0.0
- camera_capture to make snapshots & livestreams
+ camera_capture to make snapshots and livestreams
raymond houwing
MIT License
ament_index_python
+ rclpy
+ sensor_msgs
+ cv_bridge
ament_copyright
ament_flake8
diff --git a/src/camera_capture/setup.py b/src/camera_capture/setup.py
index 5d9f0ca..b43118a 100644
--- a/src/camera_capture/setup.py
+++ b/src/camera_capture/setup.py
@@ -44,6 +44,7 @@ def get_value_from_string(string: str, prefix: str, suffix: str):
tests_require=['pytest'],
entry_points={
'console_scripts': [
+ 'camera_capture = camera_capture.camera_capture:main'
],
},
)
diff --git a/src/robot_app/launch/gamepad_launch.py b/src/robot_app/launch/gamepad_launch.py
index eec502e..401d02e 100644
--- a/src/robot_app/launch/gamepad_launch.py
+++ b/src/robot_app/launch/gamepad_launch.py
@@ -18,7 +18,7 @@
#___Import Modules:
from launch import LaunchDescription
-from launch.conditions import IfCondition
+# from launch.conditions import IfCondition
from launch.conditions import LaunchConfigurationEquals
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
@@ -31,8 +31,8 @@ def generate_launch_description():
# Create launch configuration variables
gamepad_type = LaunchConfiguration('gamepad_type')
robot_type = LaunchConfiguration('robot_type')
- cam2image = LaunchConfiguration('cam2image')
- csijetson = LaunchConfiguration('csijetson')
+ # cam2image = LaunchConfiguration('cam2image')
+ # csijetson = LaunchConfiguration('csijetson')
# Declare the launch arguments
@@ -52,28 +52,28 @@ def generate_launch_description():
default_value='jetbot',
description='Type of Robot to drive.')
- declare_cam2image_cmd = DeclareLaunchArgument(
- 'cam2image',
- default_value='False',
- description='Execute cam2image or not.')
+ # declare_cam2image_cmd = DeclareLaunchArgument(
+ # 'cam2image',
+ # default_value='False',
+ # description='Execute cam2image or not.')
- declare_csijetson_cmd = DeclareLaunchArgument(
- 'csijetson',
- default_value='True',
- description='Using CSI camera on Jetson Nano or not.')
+ # declare_csijetson_cmd = DeclareLaunchArgument(
+ # 'csijetson',
+ # default_value='True',
+ # description='Using CSI camera on Jetson Nano or not.')
# Specify the actions
livestream_mode_cmd = Node(
condition = LaunchConfigurationEquals('robot_mode', 'livestream'),
- package = 'ros2_csi_camera_publish',
- executable = 'jetson',
- name = 'csi_camera_publish')
+ package = 'camera_capture',
+ executable = 'camera_capture',
+ name = 'camera_capture')
- snapshot_mode_cmd = Node(
- condition = LaunchConfigurationEquals('robot_mode', 'snapshot'),
- package = 'camera_snap_shot',
- executable = 'take_snap_shot',
- name = 'camera_snap_shot')
+ # snapshot_mode_cmd = Node(
+ # condition = LaunchConfigurationEquals('robot_mode', 'snapshot'),
+ # package = 'camera_snap_shot',
+ # executable = 'take_snap_shot',
+ # name = 'camera_snap_shot')
gamepad_to_twist_cmd = Node(
package = 'ros2_gamepad_to_twist_message',
@@ -85,17 +85,17 @@ def generate_launch_description():
executable = robot_type,
name='twist_to_robot_motion')
- cam2image_cmd = Node(
- condition=IfCondition(cam2image),
- package = 'image_tools',
- executable = 'cam2image',
- name='cam2image')
+ # cam2image_cmd = Node(
+ # condition=IfCondition(cam2image),
+ # package = 'image_tools',
+ # executable = 'cam2image',
+ # name='cam2image')
- csijetson_cmd = Node(
- condition=IfCondition(csijetson),
- package = 'ros2_csi_camera_publish',
- executable = 'jetson',
- name='csi_camera_publish')
+ # csijetson_cmd = Node(
+ # condition=IfCondition(csijetson),
+ # package = 'ros2_csi_camera_publish',
+ # executable = 'jetson',
+ # name='csi_camera_publish')
# Create the launch description and populate
@@ -105,16 +105,16 @@ def generate_launch_description():
ld.add_action(declare_gamepad_type_cmd)
ld.add_action(declare_robot_mode_cmd)
ld.add_action(declare_robot_type_cmd)
- ld.add_action(declare_cam2image_cmd)
- ld.add_action(declare_csijetson_cmd)
+ # ld.add_action(declare_cam2image_cmd)
+ # ld.add_action(declare_csijetson_cmd)
# Add all actions
ld.add_action(gamepad_to_twist_cmd)
ld.add_action(livestream_mode_cmd)
- ld.add_action(snapshot_mode_cmd)
+ # ld.add_action(snapshot_mode_cmd)
ld.add_action(twist_to_motion_cmd)
- ld.add_action(cam2image_cmd)
- ld.add_action(csijetson_cmd)
+ # ld.add_action(cam2image_cmd)
+ # ld.add_action(csijetson_cmd)
return ld
diff --git a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
index a672452..d9707f8 100644
--- a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
+++ b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
@@ -23,7 +23,7 @@
from ament_index_python.packages import get_package_share_directory
from geometry_msgs.msg import Twist
from rclpy.node import Node
-from std_msgs.msg import String
+from std_msgs.msg import String, Bool
# ___Trick to solve pygame video init error
os.environ["SDL_VIDEODRIVER"] = "dummy"
@@ -45,7 +45,9 @@ def __init__(self, publish_topic='/cmd_vel', publish_frequency=100):
# publisher initialization
self.pub_joystick = self.create_publisher(Twist, publish_topic, 1)
- self.pub_camera_trigger = self.create_publisher(String, '/camera_trigger', 2)
+ self.pub_camera_trigger = self.create_publisher(Bool, '/camera/cam_0/snapshot/trigger', 2)
+ self.pub_camera_livestream = self.create_publisher(Bool, '/camera/cam_0/livestream/state', 2)
+
self.timer = self.create_timer(1 / publish_frequency, self.timer_callback)
# variable initialization
@@ -91,15 +93,27 @@ def timer_callback(self):
if event.type == controller.JOYBUTTONDOWN:
if event.button == 0:
- msg = String()
- msg.data = 'pressed'
+ #make sure no camera livestream is running
+ # msg = Bool()
+ # msg.data = False
+ # self.pub_camera_livestream.publish(msg)
+ # self.get_logger().info(" [2 - O] Button pressed")
+ #make picutre
+ msg = Bool()
+ msg.data = True
self.pub_camera_trigger.publish(msg)
self.get_logger().info(" [0 - Square] Button pressed")
- if event.button == 9:
- self.get_logger().info(" [9 - Options] Button pressed")
- msg = String()
- msg.data = 'register'
- self.pub_camera_trigger.publish(msg)
+
+ if event.button == 1:
+ msg = Bool()
+ msg.data = True
+ self.pub_camera_livestream.publish(msg)
+ self.get_logger().info(" [1 - X] Button pressed")
+ if event.button == 2:
+ msg = Bool()
+ msg.data = False
+ self.pub_camera_livestream.publish(msg)
+ self.get_logger().info(" [2 - O] Button pressed")
# Creates Twist message
twist.angular.z = round(self.z, 1)
From a4cc59ebad218b0cf120e8184740200abe781524 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Wed, 10 May 2023 16:36:51 +0200
Subject: [PATCH 10/16] cleaned up gitignore,
---
.gitignore | 2025 +---------------------------------------------------
1 file changed, 2 insertions(+), 2023 deletions(-)
diff --git a/.gitignore b/.gitignore
index ab2ed74..7ab509b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,2026 +65,5 @@ About
/venv/
/.idea/
-src/camera_snap_shot/camera_snap_shot/temp.py
-log/COLCON_IGNORE
-log/latest
-log/latest_build
-log/build_2023-04-24_13-23-55/events.log
-log/build_2023-04-24_13-23-55/logger_all.log
-log/build_2023-04-24_13-23-55/robot_app/command.log
-log/build_2023-04-24_13-23-55/robot_app/stderr.log
-log/build_2023-04-24_13-23-55/robot_app/stdout_stderr.log
-log/build_2023-04-24_13-23-55/robot_app/stdout.log
-log/build_2023-04-24_13-23-55/robot_app/streams.log
-log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/command.log
-log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stderr.log
-log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/stdout.log
-log/build_2023-04-24_13-23-55/ros2_csi_camera_publish/streams.log
-log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-04-24_13-23-55/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/command.log
-log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-04-24_13-23-55/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-04-24_13-23-55/ros2_save_camera_image/command.log
-log/build_2023-04-24_13-23-55/ros2_save_camera_image/stderr.log
-log/build_2023-04-24_13-23-55/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-04-24_13-23-55/ros2_save_camera_image/stdout.log
-log/build_2023-04-24_13-23-55/ros2_save_camera_image/streams.log
-log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-04-24_13-23-55/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-04-24_13-38-40/events.log
-log/build_2023-04-24_13-38-40/logger_all.log
-log/build_2023-04-24_13-38-40/robot_app/command.log
-log/build_2023-04-24_13-38-40/robot_app/stderr.log
-log/build_2023-04-24_13-38-40/robot_app/stdout_stderr.log
-log/build_2023-04-24_13-38-40/robot_app/stdout.log
-log/build_2023-04-24_13-38-40/robot_app/streams.log
-log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/command.log
-log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stderr.log
-log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/stdout.log
-log/build_2023-04-24_13-38-40/ros2_csi_camera_publish/streams.log
-log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-04-24_13-38-40/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/command.log
-log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-04-24_13-38-40/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-04-24_13-38-40/ros2_save_camera_image/command.log
-log/build_2023-04-24_13-38-40/ros2_save_camera_image/stderr.log
-log/build_2023-04-24_13-38-40/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-04-24_13-38-40/ros2_save_camera_image/stdout.log
-log/build_2023-04-24_13-38-40/ros2_save_camera_image/streams.log
-log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-04-24_13-38-40/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-04-24_19-27-25/events.log
-log/build_2023-04-24_19-27-25/logger_all.log
-log/build_2023-04-24_19-27-25/robot_app/command.log
-log/build_2023-04-24_19-27-25/robot_app/stderr.log
-log/build_2023-04-24_19-27-25/robot_app/stdout_stderr.log
-log/build_2023-04-24_19-27-25/robot_app/stdout.log
-log/build_2023-04-24_19-27-25/robot_app/streams.log
-log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/command.log
-log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stderr.log
-log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/stdout.log
-log/build_2023-04-24_19-27-25/ros2_csi_camera_publish/streams.log
-log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-04-24_19-27-25/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/command.log
-log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-04-24_19-27-25/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-04-24_19-27-25/ros2_save_camera_image/command.log
-log/build_2023-04-24_19-27-25/ros2_save_camera_image/stderr.log
-log/build_2023-04-24_19-27-25/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-04-24_19-27-25/ros2_save_camera_image/stdout.log
-log/build_2023-04-24_19-27-25/ros2_save_camera_image/streams.log
-log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-04-24_19-27-25/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-03_14-51-50/events.log
-log/build_2023-05-03_14-51-50/logger_all.log
-log/build_2023-05-03_14-51-50/robot_app/command.log
-log/build_2023-05-03_14-51-50/robot_app/stderr.log
-log/build_2023-05-03_14-51-50/robot_app/stdout_stderr.log
-log/build_2023-05-03_14-51-50/robot_app/stdout.log
-log/build_2023-05-03_14-51-50/robot_app/streams.log
-log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/command.log
-log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-03_14-51-50/ros2_csi_camera_publish/streams.log
-log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-03_14-51-50/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-03_14-51-50/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-03_14-51-50/ros2_save_camera_image/command.log
-log/build_2023-05-03_14-51-50/ros2_save_camera_image/stderr.log
-log/build_2023-05-03_14-51-50/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-03_14-51-50/ros2_save_camera_image/stdout.log
-log/build_2023-05-03_14-51-50/ros2_save_camera_image/streams.log
-log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-03_14-51-50/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-03_15-33-52/events.log
-log/build_2023-05-03_15-33-52/logger_all.log
-log/build_2023-05-03_15-33-52/robot_app/command.log
-log/build_2023-05-03_15-33-52/robot_app/stderr.log
-log/build_2023-05-03_15-33-52/robot_app/stdout_stderr.log
-log/build_2023-05-03_15-33-52/robot_app/stdout.log
-log/build_2023-05-03_15-33-52/robot_app/streams.log
-log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/command.log
-log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-03_15-33-52/ros2_csi_camera_publish/streams.log
-log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-03_15-33-52/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-03_15-33-52/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-03_15-33-52/ros2_save_camera_image/command.log
-log/build_2023-05-03_15-33-52/ros2_save_camera_image/stderr.log
-log/build_2023-05-03_15-33-52/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-03_15-33-52/ros2_save_camera_image/stdout.log
-log/build_2023-05-03_15-33-52/ros2_save_camera_image/streams.log
-log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-03_15-33-52/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-03_15-40-04/events.log
-log/build_2023-05-03_15-40-04/logger_all.log
-log/build_2023-05-03_15-40-04/robot_app/command.log
-log/build_2023-05-03_15-40-04/robot_app/stderr.log
-log/build_2023-05-03_15-40-04/robot_app/stdout_stderr.log
-log/build_2023-05-03_15-40-04/robot_app/stdout.log
-log/build_2023-05-03_15-40-04/robot_app/streams.log
-log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/command.log
-log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-03_15-40-04/ros2_csi_camera_publish/streams.log
-log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-03_15-40-04/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-03_15-40-04/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-03_15-40-04/ros2_save_camera_image/command.log
-log/build_2023-05-03_15-40-04/ros2_save_camera_image/stderr.log
-log/build_2023-05-03_15-40-04/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-03_15-40-04/ros2_save_camera_image/stdout.log
-log/build_2023-05-03_15-40-04/ros2_save_camera_image/streams.log
-log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-03_15-40-04/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-03_16-14-18/events.log
-log/build_2023-05-03_16-14-18/logger_all.log
-log/build_2023-05-03_16-14-18/robot_app/command.log
-log/build_2023-05-03_16-14-18/robot_app/stderr.log
-log/build_2023-05-03_16-14-18/robot_app/stdout_stderr.log
-log/build_2023-05-03_16-14-18/robot_app/stdout.log
-log/build_2023-05-03_16-14-18/robot_app/streams.log
-log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/command.log
-log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-03_16-14-18/ros2_csi_camera_publish/streams.log
-log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-03_16-14-18/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-03_16-14-18/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-03_16-14-18/ros2_save_camera_image/command.log
-log/build_2023-05-03_16-14-18/ros2_save_camera_image/stderr.log
-log/build_2023-05-03_16-14-18/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-03_16-14-18/ros2_save_camera_image/stdout.log
-log/build_2023-05-03_16-14-18/ros2_save_camera_image/streams.log
-log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-03_16-14-18/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-03_16-26-04/events.log
-log/build_2023-05-03_16-26-04/logger_all.log
-log/build_2023-05-03_16-26-04/robot_app/command.log
-log/build_2023-05-03_16-26-04/robot_app/stderr.log
-log/build_2023-05-03_16-26-04/robot_app/stdout_stderr.log
-log/build_2023-05-03_16-26-04/robot_app/stdout.log
-log/build_2023-05-03_16-26-04/robot_app/streams.log
-log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/command.log
-log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-03_16-26-04/ros2_csi_camera_publish/streams.log
-log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-03_16-26-04/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-03_16-26-04/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-03_16-26-04/ros2_save_camera_image/command.log
-log/build_2023-05-03_16-26-04/ros2_save_camera_image/stderr.log
-log/build_2023-05-03_16-26-04/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-03_16-26-04/ros2_save_camera_image/stdout.log
-log/build_2023-05-03_16-26-04/ros2_save_camera_image/streams.log
-log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-03_16-26-04/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_11-09-08/events.log
-log/build_2023-05-04_11-09-08/logger_all.log
-log/build_2023-05-04_11-09-08/camera_snap_shot/command.log
-log/build_2023-05-04_11-09-08/camera_snap_shot/stderr.log
-log/build_2023-05-04_11-09-08/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_11-09-08/camera_snap_shot/stdout.log
-log/build_2023-05-04_11-09-08/camera_snap_shot/streams.log
-log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_11-09-08/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_11-09-08/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_11-09-08/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_11-09-08/ros2_save_camera_image/command.log
-log/build_2023-05-04_11-09-08/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_11-09-08/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_11-09-08/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_11-09-08/ros2_save_camera_image/streams.log
-log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_11-09-08/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_11-10-31/events.log
-log/build_2023-05-04_11-10-31/logger_all.log
-log/build_2023-05-04_11-10-31/camera_snap_shot/command.log
-log/build_2023-05-04_11-10-31/camera_snap_shot/stderr.log
-log/build_2023-05-04_11-10-31/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_11-10-31/camera_snap_shot/stdout.log
-log/build_2023-05-04_11-10-31/camera_snap_shot/streams.log
-log/build_2023-05-04_11-10-31/robot_app/command.log
-log/build_2023-05-04_11-10-31/robot_app/stderr.log
-log/build_2023-05-04_11-10-31/robot_app/stdout_stderr.log
-log/build_2023-05-04_11-10-31/robot_app/stdout.log
-log/build_2023-05-04_11-10-31/robot_app/streams.log
-log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_11-10-31/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_11-10-31/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_11-10-31/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_11-10-31/ros2_save_camera_image/command.log
-log/build_2023-05-04_11-10-31/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_11-10-31/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_11-10-31/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_11-10-31/ros2_save_camera_image/streams.log
-log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_11-10-31/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_12-45-34/events.log
-log/build_2023-05-04_12-45-34/logger_all.log
-log/build_2023-05-04_12-45-34/camera_snap_shot/command.log
-log/build_2023-05-04_12-45-34/camera_snap_shot/stderr.log
-log/build_2023-05-04_12-45-34/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_12-45-34/camera_snap_shot/stdout.log
-log/build_2023-05-04_12-45-34/camera_snap_shot/streams.log
-log/build_2023-05-04_12-45-34/robot_app/command.log
-log/build_2023-05-04_12-45-34/robot_app/stderr.log
-log/build_2023-05-04_12-45-34/robot_app/stdout_stderr.log
-log/build_2023-05-04_12-45-34/robot_app/stdout.log
-log/build_2023-05-04_12-45-34/robot_app/streams.log
-log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_12-45-34/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_12-45-34/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_12-45-34/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_12-45-34/ros2_save_camera_image/command.log
-log/build_2023-05-04_12-45-34/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_12-45-34/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_12-45-34/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_12-45-34/ros2_save_camera_image/streams.log
-log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_12-45-34/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_13-30-47/events.log
-log/build_2023-05-04_13-30-47/logger_all.log
-log/build_2023-05-04_13-30-47/camera_snap_shot/command.log
-log/build_2023-05-04_13-30-47/camera_snap_shot/stderr.log
-log/build_2023-05-04_13-30-47/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_13-30-47/camera_snap_shot/stdout.log
-log/build_2023-05-04_13-30-47/camera_snap_shot/streams.log
-log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_13-30-47/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_13-30-47/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_13-30-47/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_13-30-47/ros2_save_camera_image/command.log
-log/build_2023-05-04_13-30-47/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_13-30-47/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_13-30-47/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_13-30-47/ros2_save_camera_image/streams.log
-log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_13-30-47/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-35-50/events.log
-log/build_2023-05-04_14-35-50/logger_all.log
-log/build_2023-05-04_14-35-50/camera_snap_shot/command.log
-log/build_2023-05-04_14-35-50/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-35-50/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-35-50/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-35-50/camera_snap_shot/streams.log
-log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-35-50/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-35-50/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-35-50/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-35-50/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-35-50/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-35-50/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-35-50/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-35-50/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-35-50/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-40-29/events.log
-log/build_2023-05-04_14-40-29/logger_all.log
-log/build_2023-05-04_14-40-29/camera_snap_shot/command.log
-log/build_2023-05-04_14-40-29/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-40-29/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-40-29/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-40-29/camera_snap_shot/streams.log
-log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-40-29/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-40-29/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-40-29/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-40-29/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-40-29/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-40-29/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-40-29/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-40-29/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-40-29/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-41-57/events.log
-log/build_2023-05-04_14-41-57/logger_all.log
-log/build_2023-05-04_14-41-57/camera_snap_shot/command.log
-log/build_2023-05-04_14-41-57/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-41-57/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-41-57/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-41-57/camera_snap_shot/streams.log
-log/build_2023-05-04_14-41-57/robot_app/command.log
-log/build_2023-05-04_14-41-57/robot_app/stderr.log
-log/build_2023-05-04_14-41-57/robot_app/stdout_stderr.log
-log/build_2023-05-04_14-41-57/robot_app/stdout.log
-log/build_2023-05-04_14-41-57/robot_app/streams.log
-log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-41-57/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-41-57/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-41-57/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-41-57/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-41-57/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-41-57/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-41-57/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-41-57/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-41-57/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-45-35/events.log
-log/build_2023-05-04_14-45-35/logger_all.log
-log/build_2023-05-04_14-45-35/camera_snap_shot/command.log
-log/build_2023-05-04_14-45-35/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-45-35/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-45-35/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-45-35/camera_snap_shot/streams.log
-log/build_2023-05-04_14-45-35/robot_app/command.log
-log/build_2023-05-04_14-45-35/robot_app/stderr.log
-log/build_2023-05-04_14-45-35/robot_app/stdout_stderr.log
-log/build_2023-05-04_14-45-35/robot_app/stdout.log
-log/build_2023-05-04_14-45-35/robot_app/streams.log
-log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-45-35/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-45-35/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-45-35/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-45-35/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-45-35/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-45-35/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-45-35/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-45-35/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-45-35/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-49-00/events.log
-log/build_2023-05-04_14-49-00/logger_all.log
-log/build_2023-05-04_14-49-00/camera_snap_shot/command.log
-log/build_2023-05-04_14-49-00/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-49-00/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-49-00/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-49-00/camera_snap_shot/streams.log
-log/build_2023-05-04_14-49-00/robot_app/command.log
-log/build_2023-05-04_14-49-00/robot_app/stderr.log
-log/build_2023-05-04_14-49-00/robot_app/stdout_stderr.log
-log/build_2023-05-04_14-49-00/robot_app/stdout.log
-log/build_2023-05-04_14-49-00/robot_app/streams.log
-log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-49-00/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-49-00/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-49-00/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-49-00/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-49-00/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-49-00/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-49-00/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-49-00/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-49-00/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_14-54-26/events.log
-log/build_2023-05-04_14-54-26/logger_all.log
-log/build_2023-05-04_14-54-26/camera_snap_shot/command.log
-log/build_2023-05-04_14-54-26/camera_snap_shot/stderr.log
-log/build_2023-05-04_14-54-26/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_14-54-26/camera_snap_shot/stdout.log
-log/build_2023-05-04_14-54-26/camera_snap_shot/streams.log
-log/build_2023-05-04_14-54-26/robot_app/command.log
-log/build_2023-05-04_14-54-26/robot_app/stderr.log
-log/build_2023-05-04_14-54-26/robot_app/stdout_stderr.log
-log/build_2023-05-04_14-54-26/robot_app/stdout.log
-log/build_2023-05-04_14-54-26/robot_app/streams.log
-log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_14-54-26/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_14-54-26/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_14-54-26/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_14-54-26/ros2_save_camera_image/command.log
-log/build_2023-05-04_14-54-26/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_14-54-26/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_14-54-26/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_14-54-26/ros2_save_camera_image/streams.log
-log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_14-54-26/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_15-08-18/events.log
-log/build_2023-05-04_15-08-18/logger_all.log
-log/build_2023-05-04_15-08-18/camera_snap_shot/command.log
-log/build_2023-05-04_15-08-18/camera_snap_shot/stderr.log
-log/build_2023-05-04_15-08-18/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_15-08-18/camera_snap_shot/stdout.log
-log/build_2023-05-04_15-08-18/camera_snap_shot/streams.log
-log/build_2023-05-04_15-08-18/robot_app/command.log
-log/build_2023-05-04_15-08-18/robot_app/stderr.log
-log/build_2023-05-04_15-08-18/robot_app/stdout_stderr.log
-log/build_2023-05-04_15-08-18/robot_app/stdout.log
-log/build_2023-05-04_15-08-18/robot_app/streams.log
-log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_15-08-18/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_15-08-18/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_15-08-18/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_15-08-18/ros2_save_camera_image/command.log
-log/build_2023-05-04_15-08-18/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_15-08-18/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_15-08-18/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_15-08-18/ros2_save_camera_image/streams.log
-log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_15-08-18/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_15-15-15/events.log
-log/build_2023-05-04_15-15-15/logger_all.log
-log/build_2023-05-04_15-15-15/camera_snap_shot/command.log
-log/build_2023-05-04_15-15-15/camera_snap_shot/stderr.log
-log/build_2023-05-04_15-15-15/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_15-15-15/camera_snap_shot/stdout.log
-log/build_2023-05-04_15-15-15/camera_snap_shot/streams.log
-log/build_2023-05-04_15-15-15/robot_app/command.log
-log/build_2023-05-04_15-15-15/robot_app/stderr.log
-log/build_2023-05-04_15-15-15/robot_app/stdout_stderr.log
-log/build_2023-05-04_15-15-15/robot_app/stdout.log
-log/build_2023-05-04_15-15-15/robot_app/streams.log
-log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_15-15-15/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_15-15-15/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_15-15-15/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_15-15-15/ros2_save_camera_image/command.log
-log/build_2023-05-04_15-15-15/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_15-15-15/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_15-15-15/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_15-15-15/ros2_save_camera_image/streams.log
-log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_15-15-15/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_15-21-20/events.log
-log/build_2023-05-04_15-21-20/logger_all.log
-log/build_2023-05-04_15-21-20/camera_snap_shot/command.log
-log/build_2023-05-04_15-21-20/camera_snap_shot/stderr.log
-log/build_2023-05-04_15-21-20/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_15-21-20/camera_snap_shot/stdout.log
-log/build_2023-05-04_15-21-20/camera_snap_shot/streams.log
-log/build_2023-05-04_15-21-20/robot_app/command.log
-log/build_2023-05-04_15-21-20/robot_app/stderr.log
-log/build_2023-05-04_15-21-20/robot_app/stdout_stderr.log
-log/build_2023-05-04_15-21-20/robot_app/stdout.log
-log/build_2023-05-04_15-21-20/robot_app/streams.log
-log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_15-21-20/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_15-21-20/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_15-21-20/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_15-21-20/ros2_save_camera_image/command.log
-log/build_2023-05-04_15-21-20/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_15-21-20/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_15-21-20/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_15-21-20/ros2_save_camera_image/streams.log
-log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_15-21-20/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_16-56-46/events.log
-log/build_2023-05-04_16-56-46/logger_all.log
-log/build_2023-05-04_16-56-46/camera_snap_shot/command.log
-log/build_2023-05-04_16-56-46/camera_snap_shot/stderr.log
-log/build_2023-05-04_16-56-46/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_16-56-46/camera_snap_shot/stdout.log
-log/build_2023-05-04_16-56-46/camera_snap_shot/streams.log
-log/build_2023-05-04_16-56-46/robot_app/command.log
-log/build_2023-05-04_16-56-46/robot_app/stderr.log
-log/build_2023-05-04_16-56-46/robot_app/stdout_stderr.log
-log/build_2023-05-04_16-56-46/robot_app/stdout.log
-log/build_2023-05-04_16-56-46/robot_app/streams.log
-log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_16-56-46/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_16-56-46/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_16-56-46/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_16-56-46/ros2_save_camera_image/command.log
-log/build_2023-05-04_16-56-46/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_16-56-46/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_16-56-46/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_16-56-46/ros2_save_camera_image/streams.log
-log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_16-56-46/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_17-19-28/events.log
-log/build_2023-05-04_17-19-28/logger_all.log
-log/build_2023-05-04_17-19-28/camera_snap_shot/command.log
-log/build_2023-05-04_17-19-28/camera_snap_shot/stderr.log
-log/build_2023-05-04_17-19-28/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_17-19-28/camera_snap_shot/stdout.log
-log/build_2023-05-04_17-19-28/camera_snap_shot/streams.log
-log/build_2023-05-04_17-19-28/robot_app/command.log
-log/build_2023-05-04_17-19-28/robot_app/stderr.log
-log/build_2023-05-04_17-19-28/robot_app/stdout_stderr.log
-log/build_2023-05-04_17-19-28/robot_app/stdout.log
-log/build_2023-05-04_17-19-28/robot_app/streams.log
-log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_17-19-28/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_17-19-28/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_17-19-28/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_17-19-28/ros2_save_camera_image/command.log
-log/build_2023-05-04_17-19-28/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_17-19-28/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_17-19-28/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_17-19-28/ros2_save_camera_image/streams.log
-log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_17-19-28/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_17-22-12/events.log
-log/build_2023-05-04_17-22-12/logger_all.log
-log/build_2023-05-04_17-22-12/camera_snap_shot/command.log
-log/build_2023-05-04_17-22-12/camera_snap_shot/stderr.log
-log/build_2023-05-04_17-22-12/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_17-22-12/camera_snap_shot/stdout.log
-log/build_2023-05-04_17-22-12/camera_snap_shot/streams.log
-log/build_2023-05-04_17-22-12/robot_app/command.log
-log/build_2023-05-04_17-22-12/robot_app/stderr.log
-log/build_2023-05-04_17-22-12/robot_app/stdout_stderr.log
-log/build_2023-05-04_17-22-12/robot_app/stdout.log
-log/build_2023-05-04_17-22-12/robot_app/streams.log
-log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_17-22-12/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_17-22-12/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_17-22-12/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_17-22-12/ros2_save_camera_image/command.log
-log/build_2023-05-04_17-22-12/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_17-22-12/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_17-22-12/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_17-22-12/ros2_save_camera_image/streams.log
-log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_17-22-12/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-04_17-30-02/events.log
-log/build_2023-05-04_17-30-02/logger_all.log
-log/build_2023-05-04_17-30-02/camera_snap_shot/command.log
-log/build_2023-05-04_17-30-02/camera_snap_shot/stderr.log
-log/build_2023-05-04_17-30-02/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-04_17-30-02/camera_snap_shot/stdout.log
-log/build_2023-05-04_17-30-02/camera_snap_shot/streams.log
-log/build_2023-05-04_17-30-02/robot_app/command.log
-log/build_2023-05-04_17-30-02/robot_app/stderr.log
-log/build_2023-05-04_17-30-02/robot_app/stdout_stderr.log
-log/build_2023-05-04_17-30-02/robot_app/stdout.log
-log/build_2023-05-04_17-30-02/robot_app/streams.log
-log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/command.log
-log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-04_17-30-02/ros2_csi_camera_publish/streams.log
-log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-04_17-30-02/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-04_17-30-02/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-04_17-30-02/ros2_save_camera_image/command.log
-log/build_2023-05-04_17-30-02/ros2_save_camera_image/stderr.log
-log/build_2023-05-04_17-30-02/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-04_17-30-02/ros2_save_camera_image/stdout.log
-log/build_2023-05-04_17-30-02/ros2_save_camera_image/streams.log
-log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-04_17-30-02/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_09-27-08/events.log
-log/build_2023-05-05_09-27-08/logger_all.log
-log/build_2023-05-05_09-27-08/camera_snap_shot/command.log
-log/build_2023-05-05_09-27-08/camera_snap_shot/stderr.log
-log/build_2023-05-05_09-27-08/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_09-27-08/camera_snap_shot/stdout.log
-log/build_2023-05-05_09-27-08/camera_snap_shot/streams.log
-log/build_2023-05-05_09-27-08/robot_app/command.log
-log/build_2023-05-05_09-27-08/robot_app/stderr.log
-log/build_2023-05-05_09-27-08/robot_app/stdout_stderr.log
-log/build_2023-05-05_09-27-08/robot_app/stdout.log
-log/build_2023-05-05_09-27-08/robot_app/streams.log
-log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_09-27-08/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_09-27-08/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_09-27-08/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_09-27-08/ros2_save_camera_image/command.log
-log/build_2023-05-05_09-27-08/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_09-27-08/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_09-27-08/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_09-27-08/ros2_save_camera_image/streams.log
-log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_09-27-08/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_09-42-27/events.log
-log/build_2023-05-05_09-42-27/logger_all.log
-log/build_2023-05-05_09-42-27/camera_snap_shot/command.log
-log/build_2023-05-05_09-42-27/camera_snap_shot/stderr.log
-log/build_2023-05-05_09-42-27/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_09-42-27/camera_snap_shot/stdout.log
-log/build_2023-05-05_09-42-27/camera_snap_shot/streams.log
-log/build_2023-05-05_09-42-27/robot_app/command.log
-log/build_2023-05-05_09-42-27/robot_app/stderr.log
-log/build_2023-05-05_09-42-27/robot_app/stdout_stderr.log
-log/build_2023-05-05_09-42-27/robot_app/stdout.log
-log/build_2023-05-05_09-42-27/robot_app/streams.log
-log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_09-42-27/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_09-42-27/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_09-42-27/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_09-42-27/ros2_save_camera_image/command.log
-log/build_2023-05-05_09-42-27/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_09-42-27/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_09-42-27/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_09-42-27/ros2_save_camera_image/streams.log
-log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_09-42-27/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_09-50-50/events.log
-log/build_2023-05-05_09-50-50/logger_all.log
-log/build_2023-05-05_09-50-50/camera_snap_shot/command.log
-log/build_2023-05-05_09-50-50/camera_snap_shot/stderr.log
-log/build_2023-05-05_09-50-50/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_09-50-50/camera_snap_shot/stdout.log
-log/build_2023-05-05_09-50-50/camera_snap_shot/streams.log
-log/build_2023-05-05_09-50-50/robot_app/command.log
-log/build_2023-05-05_09-50-50/robot_app/stderr.log
-log/build_2023-05-05_09-50-50/robot_app/stdout_stderr.log
-log/build_2023-05-05_09-50-50/robot_app/stdout.log
-log/build_2023-05-05_09-50-50/robot_app/streams.log
-log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_09-50-50/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_09-50-50/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_09-50-50/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_09-50-50/ros2_save_camera_image/command.log
-log/build_2023-05-05_09-50-50/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_09-50-50/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_09-50-50/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_09-50-50/ros2_save_camera_image/streams.log
-log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_09-50-50/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_10-02-18/events.log
-log/build_2023-05-05_10-02-18/logger_all.log
-log/build_2023-05-05_10-02-18/camera_snap_shot/command.log
-log/build_2023-05-05_10-02-18/camera_snap_shot/stderr.log
-log/build_2023-05-05_10-02-18/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_10-02-18/camera_snap_shot/stdout.log
-log/build_2023-05-05_10-02-18/camera_snap_shot/streams.log
-log/build_2023-05-05_10-02-18/robot_app/command.log
-log/build_2023-05-05_10-02-18/robot_app/stderr.log
-log/build_2023-05-05_10-02-18/robot_app/stdout_stderr.log
-log/build_2023-05-05_10-02-18/robot_app/stdout.log
-log/build_2023-05-05_10-02-18/robot_app/streams.log
-log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_10-02-18/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_10-02-18/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_10-02-18/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_10-02-18/ros2_save_camera_image/command.log
-log/build_2023-05-05_10-02-18/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_10-02-18/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_10-02-18/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_10-02-18/ros2_save_camera_image/streams.log
-log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_10-02-18/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_10-07-26/events.log
-log/build_2023-05-05_10-07-26/logger_all.log
-log/build_2023-05-05_10-07-26/camera_snap_shot/command.log
-log/build_2023-05-05_10-07-26/camera_snap_shot/stderr.log
-log/build_2023-05-05_10-07-26/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_10-07-26/camera_snap_shot/stdout.log
-log/build_2023-05-05_10-07-26/camera_snap_shot/streams.log
-log/build_2023-05-05_10-07-26/robot_app/command.log
-log/build_2023-05-05_10-07-26/robot_app/stderr.log
-log/build_2023-05-05_10-07-26/robot_app/stdout_stderr.log
-log/build_2023-05-05_10-07-26/robot_app/stdout.log
-log/build_2023-05-05_10-07-26/robot_app/streams.log
-log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_10-07-26/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_10-07-26/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_10-07-26/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_10-07-26/ros2_save_camera_image/command.log
-log/build_2023-05-05_10-07-26/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_10-07-26/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_10-07-26/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_10-07-26/ros2_save_camera_image/streams.log
-log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_10-07-26/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_12-45-57/events.log
-log/build_2023-05-05_12-45-57/logger_all.log
-log/build_2023-05-05_12-45-57/camera_snap_shot/command.log
-log/build_2023-05-05_12-45-57/camera_snap_shot/stderr.log
-log/build_2023-05-05_12-45-57/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_12-45-57/camera_snap_shot/stdout.log
-log/build_2023-05-05_12-45-57/camera_snap_shot/streams.log
-log/build_2023-05-05_12-45-57/robot_app/command.log
-log/build_2023-05-05_12-45-57/robot_app/stderr.log
-log/build_2023-05-05_12-45-57/robot_app/stdout_stderr.log
-log/build_2023-05-05_12-45-57/robot_app/stdout.log
-log/build_2023-05-05_12-45-57/robot_app/streams.log
-log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_12-45-57/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_12-45-57/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_12-45-57/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_12-45-57/ros2_save_camera_image/command.log
-log/build_2023-05-05_12-45-57/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_12-45-57/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_12-45-57/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_12-45-57/ros2_save_camera_image/streams.log
-log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_12-45-57/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_12-47-24/events.log
-log/build_2023-05-05_12-47-24/logger_all.log
-log/build_2023-05-05_12-47-24/camera_snap_shot/command.log
-log/build_2023-05-05_12-47-24/camera_snap_shot/stderr.log
-log/build_2023-05-05_12-47-24/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_12-47-24/camera_snap_shot/stdout.log
-log/build_2023-05-05_12-47-24/camera_snap_shot/streams.log
-log/build_2023-05-05_12-47-24/robot_app/command.log
-log/build_2023-05-05_12-47-24/robot_app/stderr.log
-log/build_2023-05-05_12-47-24/robot_app/stdout_stderr.log
-log/build_2023-05-05_12-47-24/robot_app/stdout.log
-log/build_2023-05-05_12-47-24/robot_app/streams.log
-log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_12-47-24/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_12-47-24/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_12-47-24/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_12-47-24/ros2_save_camera_image/command.log
-log/build_2023-05-05_12-47-24/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_12-47-24/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_12-47-24/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_12-47-24/ros2_save_camera_image/streams.log
-log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_12-47-24/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_12-53-01/events.log
-log/build_2023-05-05_12-53-01/logger_all.log
-log/build_2023-05-05_12-53-01/camera_snap_shot/command.log
-log/build_2023-05-05_12-53-01/camera_snap_shot/stderr.log
-log/build_2023-05-05_12-53-01/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_12-53-01/camera_snap_shot/stdout.log
-log/build_2023-05-05_12-53-01/camera_snap_shot/streams.log
-log/build_2023-05-05_12-53-01/robot_app/command.log
-log/build_2023-05-05_12-53-01/robot_app/stderr.log
-log/build_2023-05-05_12-53-01/robot_app/stdout_stderr.log
-log/build_2023-05-05_12-53-01/robot_app/stdout.log
-log/build_2023-05-05_12-53-01/robot_app/streams.log
-log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_12-53-01/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_12-53-01/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_12-53-01/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_12-53-01/ros2_save_camera_image/command.log
-log/build_2023-05-05_12-53-01/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_12-53-01/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_12-53-01/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_12-53-01/ros2_save_camera_image/streams.log
-log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_12-53-01/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-17-36/events.log
-log/build_2023-05-05_13-17-36/logger_all.log
-log/build_2023-05-05_13-17-36/camera_snap_shot/command.log
-log/build_2023-05-05_13-17-36/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-17-36/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-17-36/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-17-36/camera_snap_shot/streams.log
-log/build_2023-05-05_13-17-36/robot_app/command.log
-log/build_2023-05-05_13-17-36/robot_app/stderr.log
-log/build_2023-05-05_13-17-36/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-17-36/robot_app/stdout.log
-log/build_2023-05-05_13-17-36/robot_app/streams.log
-log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-17-36/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-17-36/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-17-36/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-17-36/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-17-36/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-17-36/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-17-36/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-17-36/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-17-36/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-22-00/events.log
-log/build_2023-05-05_13-22-00/logger_all.log
-log/build_2023-05-05_13-22-00/camera_snap_shot/command.log
-log/build_2023-05-05_13-22-00/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-22-00/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-22-00/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-22-00/camera_snap_shot/streams.log
-log/build_2023-05-05_13-22-00/robot_app/command.log
-log/build_2023-05-05_13-22-00/robot_app/stderr.log
-log/build_2023-05-05_13-22-00/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-22-00/robot_app/stdout.log
-log/build_2023-05-05_13-22-00/robot_app/streams.log
-log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-22-00/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-22-00/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-22-00/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-22-00/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-22-00/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-22-00/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-22-00/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-22-00/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-22-00/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-23-40/events.log
-log/build_2023-05-05_13-23-40/logger_all.log
-log/build_2023-05-05_13-23-40/camera_snap_shot/command.log
-log/build_2023-05-05_13-23-40/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-23-40/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-23-40/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-23-40/camera_snap_shot/streams.log
-log/build_2023-05-05_13-23-40/robot_app/command.log
-log/build_2023-05-05_13-23-40/robot_app/stderr.log
-log/build_2023-05-05_13-23-40/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-23-40/robot_app/stdout.log
-log/build_2023-05-05_13-23-40/robot_app/streams.log
-log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-23-40/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-23-40/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-23-40/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-23-40/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-23-40/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-23-40/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-23-40/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-23-40/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-23-40/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-30-09/events.log
-log/build_2023-05-05_13-30-09/logger_all.log
-log/build_2023-05-05_13-30-09/camera_snap_shot/command.log
-log/build_2023-05-05_13-30-09/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-30-09/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-30-09/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-30-09/camera_snap_shot/streams.log
-log/build_2023-05-05_13-30-09/robot_app/command.log
-log/build_2023-05-05_13-30-09/robot_app/stderr.log
-log/build_2023-05-05_13-30-09/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-30-09/robot_app/stdout.log
-log/build_2023-05-05_13-30-09/robot_app/streams.log
-log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-30-09/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-30-09/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-30-09/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-30-09/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-30-09/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-30-09/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-30-09/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-30-09/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-30-09/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-35-36/events.log
-log/build_2023-05-05_13-35-36/logger_all.log
-log/build_2023-05-05_13-35-36/camera_snap_shot/command.log
-log/build_2023-05-05_13-35-36/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-35-36/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-35-36/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-35-36/camera_snap_shot/streams.log
-log/build_2023-05-05_13-35-36/robot_app/command.log
-log/build_2023-05-05_13-35-36/robot_app/stderr.log
-log/build_2023-05-05_13-35-36/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-35-36/robot_app/stdout.log
-log/build_2023-05-05_13-35-36/robot_app/streams.log
-log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-35-36/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-35-36/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-35-36/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-35-36/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-35-36/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-35-36/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-35-36/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-35-36/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-35-36/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-46-19/events.log
-log/build_2023-05-05_13-46-19/logger_all.log
-log/build_2023-05-05_13-46-19/camera_snap_shot/command.log
-log/build_2023-05-05_13-46-19/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-46-19/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-46-19/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-46-19/camera_snap_shot/streams.log
-log/build_2023-05-05_13-46-19/robot_app/command.log
-log/build_2023-05-05_13-46-19/robot_app/stderr.log
-log/build_2023-05-05_13-46-19/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-46-19/robot_app/stdout.log
-log/build_2023-05-05_13-46-19/robot_app/streams.log
-log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-46-19/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-46-19/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-46-19/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-46-19/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-46-19/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-46-19/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-46-19/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-46-19/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-46-19/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-49-35/events.log
-log/build_2023-05-05_13-49-35/logger_all.log
-log/build_2023-05-05_13-49-35/camera_snap_shot/command.log
-log/build_2023-05-05_13-49-35/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-49-35/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-49-35/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-49-35/camera_snap_shot/streams.log
-log/build_2023-05-05_13-49-35/robot_app/command.log
-log/build_2023-05-05_13-49-35/robot_app/stderr.log
-log/build_2023-05-05_13-49-35/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-49-35/robot_app/stdout.log
-log/build_2023-05-05_13-49-35/robot_app/streams.log
-log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-49-35/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-49-35/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-49-35/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-49-35/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-49-35/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-49-35/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-49-35/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-49-35/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-49-35/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_13-53-35/events.log
-log/build_2023-05-05_13-53-35/logger_all.log
-log/build_2023-05-05_13-53-35/camera_snap_shot/command.log
-log/build_2023-05-05_13-53-35/camera_snap_shot/stderr.log
-log/build_2023-05-05_13-53-35/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_13-53-35/camera_snap_shot/stdout.log
-log/build_2023-05-05_13-53-35/camera_snap_shot/streams.log
-log/build_2023-05-05_13-53-35/robot_app/command.log
-log/build_2023-05-05_13-53-35/robot_app/stderr.log
-log/build_2023-05-05_13-53-35/robot_app/stdout_stderr.log
-log/build_2023-05-05_13-53-35/robot_app/stdout.log
-log/build_2023-05-05_13-53-35/robot_app/streams.log
-log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_13-53-35/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_13-53-35/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_13-53-35/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_13-53-35/ros2_save_camera_image/command.log
-log/build_2023-05-05_13-53-35/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_13-53-35/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_13-53-35/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_13-53-35/ros2_save_camera_image/streams.log
-log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_13-53-35/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_14-32-19/events.log
-log/build_2023-05-05_14-32-19/logger_all.log
-log/build_2023-05-05_14-32-19/camera_snap_shot/command.log
-log/build_2023-05-05_14-32-19/camera_snap_shot/stderr.log
-log/build_2023-05-05_14-32-19/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_14-32-19/camera_snap_shot/stdout.log
-log/build_2023-05-05_14-32-19/camera_snap_shot/streams.log
-log/build_2023-05-05_14-32-19/robot_app/command.log
-log/build_2023-05-05_14-32-19/robot_app/stderr.log
-log/build_2023-05-05_14-32-19/robot_app/stdout_stderr.log
-log/build_2023-05-05_14-32-19/robot_app/stdout.log
-log/build_2023-05-05_14-32-19/robot_app/streams.log
-log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_14-32-19/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_14-32-19/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_14-32-19/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_14-32-19/ros2_save_camera_image/command.log
-log/build_2023-05-05_14-32-19/ros2_save_camera_image/stderr.log
-log/build_2023-05-05_14-32-19/ros2_save_camera_image/stdout_stderr.log
-log/build_2023-05-05_14-32-19/ros2_save_camera_image/stdout.log
-log/build_2023-05-05_14-32-19/ros2_save_camera_image/streams.log
-log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_14-32-19/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_14-46-59/events.log
-log/build_2023-05-05_14-46-59/logger_all.log
-log/build_2023-05-05_14-46-59/camera_snap_shot/command.log
-log/build_2023-05-05_14-46-59/camera_snap_shot/stderr.log
-log/build_2023-05-05_14-46-59/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_14-46-59/camera_snap_shot/stdout.log
-log/build_2023-05-05_14-46-59/camera_snap_shot/streams.log
-log/build_2023-05-05_14-46-59/robot_app/command.log
-log/build_2023-05-05_14-46-59/robot_app/stderr.log
-log/build_2023-05-05_14-46-59/robot_app/stdout_stderr.log
-log/build_2023-05-05_14-46-59/robot_app/stdout.log
-log/build_2023-05-05_14-46-59/robot_app/streams.log
-log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_14-46-59/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_14-46-59/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_14-46-59/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_14-46-59/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_14-55-23/events.log
-log/build_2023-05-05_14-55-23/logger_all.log
-log/build_2023-05-05_14-55-23/camera_snap_shot/command.log
-log/build_2023-05-05_14-55-23/camera_snap_shot/stderr.log
-log/build_2023-05-05_14-55-23/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_14-55-23/camera_snap_shot/stdout.log
-log/build_2023-05-05_14-55-23/camera_snap_shot/streams.log
-log/build_2023-05-05_14-55-23/robot_app/command.log
-log/build_2023-05-05_14-55-23/robot_app/stderr.log
-log/build_2023-05-05_14-55-23/robot_app/stdout_stderr.log
-log/build_2023-05-05_14-55-23/robot_app/stdout.log
-log/build_2023-05-05_14-55-23/robot_app/streams.log
-log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_14-55-23/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_14-55-23/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_14-55-23/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_14-55-23/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-07-23/events.log
-log/build_2023-05-05_15-07-23/logger_all.log
-log/build_2023-05-05_15-07-23/camera_snap_shot/command.log
-log/build_2023-05-05_15-07-23/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-07-23/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-07-23/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-07-23/camera_snap_shot/streams.log
-log/build_2023-05-05_15-07-23/robot_app/command.log
-log/build_2023-05-05_15-07-23/robot_app/stderr.log
-log/build_2023-05-05_15-07-23/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-07-23/robot_app/stdout.log
-log/build_2023-05-05_15-07-23/robot_app/streams.log
-log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-07-23/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-07-23/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-07-23/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-07-23/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-10-48/events.log
-log/build_2023-05-05_15-10-48/logger_all.log
-log/build_2023-05-05_15-10-48/camera_snap_shot/command.log
-log/build_2023-05-05_15-10-48/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-10-48/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-10-48/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-10-48/camera_snap_shot/streams.log
-log/build_2023-05-05_15-10-48/robot_app/command.log
-log/build_2023-05-05_15-10-48/robot_app/stderr.log
-log/build_2023-05-05_15-10-48/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-10-48/robot_app/stdout.log
-log/build_2023-05-05_15-10-48/robot_app/streams.log
-log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-10-48/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-10-48/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-10-48/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-10-48/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-12-46/events.log
-log/build_2023-05-05_15-12-46/logger_all.log
-log/build_2023-05-05_15-12-46/camera_snap_shot/command.log
-log/build_2023-05-05_15-12-46/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-12-46/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-12-46/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-12-46/camera_snap_shot/streams.log
-log/build_2023-05-05_15-12-46/robot_app/command.log
-log/build_2023-05-05_15-12-46/robot_app/stderr.log
-log/build_2023-05-05_15-12-46/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-12-46/robot_app/stdout.log
-log/build_2023-05-05_15-12-46/robot_app/streams.log
-log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-12-46/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-12-46/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-12-46/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-12-46/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-16-19/events.log
-log/build_2023-05-05_15-16-19/logger_all.log
-log/build_2023-05-05_15-16-19/camera_snap_shot/command.log
-log/build_2023-05-05_15-16-19/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-16-19/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-16-19/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-16-19/camera_snap_shot/streams.log
-log/build_2023-05-05_15-16-19/robot_app/command.log
-log/build_2023-05-05_15-16-19/robot_app/stderr.log
-log/build_2023-05-05_15-16-19/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-16-19/robot_app/stdout.log
-log/build_2023-05-05_15-16-19/robot_app/streams.log
-log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-16-19/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-16-19/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-16-19/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-16-19/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-20-15/events.log
-log/build_2023-05-05_15-20-15/logger_all.log
-log/build_2023-05-05_15-20-15/camera_snap_shot/command.log
-log/build_2023-05-05_15-20-15/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-20-15/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-20-15/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-20-15/camera_snap_shot/streams.log
-log/build_2023-05-05_15-20-15/robot_app/command.log
-log/build_2023-05-05_15-20-15/robot_app/stderr.log
-log/build_2023-05-05_15-20-15/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-20-15/robot_app/stdout.log
-log/build_2023-05-05_15-20-15/robot_app/streams.log
-log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-20-15/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-20-15/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-20-15/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-20-15/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-25-55/events.log
-log/build_2023-05-05_15-25-55/logger_all.log
-log/build_2023-05-05_15-25-55/camera_snap_shot/command.log
-log/build_2023-05-05_15-25-55/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-25-55/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-25-55/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-25-55/camera_snap_shot/streams.log
-log/build_2023-05-05_15-25-55/robot_app/command.log
-log/build_2023-05-05_15-25-55/robot_app/stderr.log
-log/build_2023-05-05_15-25-55/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-25-55/robot_app/stdout.log
-log/build_2023-05-05_15-25-55/robot_app/streams.log
-log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-25-55/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-25-55/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-25-55/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-25-55/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-33-05/events.log
-log/build_2023-05-05_15-33-05/logger_all.log
-log/build_2023-05-05_15-33-05/camera_snap_shot/command.log
-log/build_2023-05-05_15-33-05/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-33-05/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-33-05/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-33-05/camera_snap_shot/streams.log
-log/build_2023-05-05_15-33-05/robot_app/command.log
-log/build_2023-05-05_15-33-05/robot_app/stderr.log
-log/build_2023-05-05_15-33-05/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-33-05/robot_app/stdout.log
-log/build_2023-05-05_15-33-05/robot_app/streams.log
-log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-33-05/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-33-05/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-33-05/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-33-05/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-35-37/events.log
-log/build_2023-05-05_15-35-37/logger_all.log
-log/build_2023-05-05_15-35-37/camera_snap_shot/command.log
-log/build_2023-05-05_15-35-37/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-35-37/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-35-37/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-35-37/camera_snap_shot/streams.log
-log/build_2023-05-05_15-35-37/robot_app/command.log
-log/build_2023-05-05_15-35-37/robot_app/stderr.log
-log/build_2023-05-05_15-35-37/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-35-37/robot_app/stdout.log
-log/build_2023-05-05_15-35-37/robot_app/streams.log
-log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-35-37/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-35-37/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-35-37/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-35-37/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-41-21/events.log
-log/build_2023-05-05_15-41-21/logger_all.log
-log/build_2023-05-05_15-41-21/camera_snap_shot/command.log
-log/build_2023-05-05_15-41-21/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-41-21/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-41-21/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-41-21/camera_snap_shot/streams.log
-log/build_2023-05-05_15-41-21/robot_app/command.log
-log/build_2023-05-05_15-41-21/robot_app/stderr.log
-log/build_2023-05-05_15-41-21/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-41-21/robot_app/stdout.log
-log/build_2023-05-05_15-41-21/robot_app/streams.log
-log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-41-21/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-41-21/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-41-21/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-41-21/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-46-37/events.log
-log/build_2023-05-05_15-46-37/logger_all.log
-log/build_2023-05-05_15-46-37/camera_snap_shot/command.log
-log/build_2023-05-05_15-46-37/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-46-37/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-46-37/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-46-37/camera_snap_shot/streams.log
-log/build_2023-05-05_15-46-37/robot_app/command.log
-log/build_2023-05-05_15-46-37/robot_app/stderr.log
-log/build_2023-05-05_15-46-37/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-46-37/robot_app/stdout.log
-log/build_2023-05-05_15-46-37/robot_app/streams.log
-log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-46-37/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-46-37/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-46-37/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-46-37/ros2_twist_message_to_robot_motion/streams.log
-log/build_2023-05-05_15-51-54/events.log
-log/build_2023-05-05_15-51-54/logger_all.log
-log/build_2023-05-05_15-51-54/camera_snap_shot/command.log
-log/build_2023-05-05_15-51-54/camera_snap_shot/stderr.log
-log/build_2023-05-05_15-51-54/camera_snap_shot/stdout_stderr.log
-log/build_2023-05-05_15-51-54/camera_snap_shot/stdout.log
-log/build_2023-05-05_15-51-54/camera_snap_shot/streams.log
-log/build_2023-05-05_15-51-54/robot_app/command.log
-log/build_2023-05-05_15-51-54/robot_app/stderr.log
-log/build_2023-05-05_15-51-54/robot_app/stdout_stderr.log
-log/build_2023-05-05_15-51-54/robot_app/stdout.log
-log/build_2023-05-05_15-51-54/robot_app/streams.log
-log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/command.log
-log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stderr.log
-log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stdout_stderr.log
-log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/stdout.log
-log/build_2023-05-05_15-51-54/ros2_csi_camera_publish/streams.log
-log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/command.log
-log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stderr.log
-log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/stdout.log
-log/build_2023-05-05_15-51-54/ros2_deep_learning_to_twist_message/streams.log
-log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/command.log
-log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stderr.log
-log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stdout_stderr.log
-log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/stdout.log
-log/build_2023-05-05_15-51-54/ros2_gamepad_to_twist_message/streams.log
-log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/command.log
-log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stderr.log
-log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stdout_stderr.log
-log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/stdout.log
-log/build_2023-05-05_15-51-54/ros2_twist_message_to_robot_motion/streams.log
-install/_local_setup_util_ps1.py
-install/_local_setup_util_sh.py
-install/.colcon_install_layout
-install/COLCON_IGNORE
-install/local_setup.bash
-install/local_setup.ps1
-install/local_setup.sh
-install/local_setup.zsh
-install/setup.bash
-install/setup.ps1
-install/setup.sh
-install/setup.zsh
-install/camera_snap_shot/share/ament_index/resource_index/packages/camera_snap_shot
-install/camera_snap_shot/share/camera_snap_shot/package.bash
-install/camera_snap_shot/share/camera_snap_shot/package.dsv
-install/camera_snap_shot/share/camera_snap_shot/package.ps1
-install/camera_snap_shot/share/camera_snap_shot/package.sh
-install/camera_snap_shot/share/camera_snap_shot/package.xml
-install/camera_snap_shot/share/camera_snap_shot/package.zsh
-install/camera_snap_shot/share/camera_snap_shot/config/camera_snap_shot_settings.json
-install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.dsv
-install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.ps1
-install/camera_snap_shot/share/camera_snap_shot/hook/ament_prefix_path.sh
-install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.dsv
-install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.ps1
-install/camera_snap_shot/share/camera_snap_shot/hook/pythonpath.sh
-install/camera_snap_shot/share/camera_snap_shot/launch/camera_snap_shot.launch.py
-install/camera_snap_shot/share/colcon-core/packages/camera_snap_shot
-install/robot_app/share/ament_index/resource_index/packages/robot_app
-install/robot_app/share/colcon-core/packages/robot_app
-install/robot_app/share/robot_app/package.bash
-install/robot_app/share/robot_app/package.dsv
-install/robot_app/share/robot_app/package.ps1
-install/robot_app/share/robot_app/package.sh
-install/robot_app/share/robot_app/package.xml
-install/robot_app/share/robot_app/package.zsh
-install/robot_app/share/robot_app/hook/ament_prefix_path.dsv
-install/robot_app/share/robot_app/hook/ament_prefix_path.ps1
-install/robot_app/share/robot_app/hook/ament_prefix_path.sh
-install/robot_app/share/robot_app/hook/pythonpath.dsv
-install/robot_app/share/robot_app/hook/pythonpath.ps1
-install/robot_app/share/robot_app/hook/pythonpath.sh
-install/robot_app/share/robot_app/launch/autonomous_launch.py
-install/robot_app/share/robot_app/launch/gamepad_launch.py
-install/ros2_csi_camera_publish/share/ament_index/resource_index/packages/ros2_csi_camera_publish
-install/ros2_csi_camera_publish/share/colcon-core/packages/ros2_csi_camera_publish
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.bash
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.dsv
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.ps1
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.sh
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.xml
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/package.zsh
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/settings.json
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.dsv
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.ps1
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/ament_prefix_path.sh
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.dsv
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.ps1
-install/ros2_csi_camera_publish/share/ros2_csi_camera_publish/hook/pythonpath.sh
-install/ros2_deep_learning_to_twist_message/share/ament_index/resource_index/packages/ros2_deep_learning_to_twist_message
-install/ros2_deep_learning_to_twist_message/share/colcon-core/packages/ros2_deep_learning_to_twist_message
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.bash
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.dsv
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.ps1
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.sh
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.xml
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/package.zsh
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/settings.json
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.dsv
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.ps1
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/ament_prefix_path.sh
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.dsv
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.ps1
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/hook/pythonpath.sh
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/launch/launch.py
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/models/x.onnx
-install/ros2_deep_learning_to_twist_message/share/ros2_deep_learning_to_twist_message/models/z.onnx
-install/ros2_gamepad_to_twist_message/share/ament_index/resource_index/packages/ros2_gamepad_to_twist_message
-install/ros2_gamepad_to_twist_message/share/colcon-core/packages/ros2_gamepad_to_twist_message
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.bash
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.dsv
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.ps1
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.sh
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.xml
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/package.zsh
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/settings.json
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.dsv
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.ps1
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/ament_prefix_path.sh
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.dsv
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.ps1
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/hook/pythonpath.sh
-install/ros2_gamepad_to_twist_message/share/ros2_gamepad_to_twist_message/launch/launch.py
-install/ros2_twist_message_to_robot_motion/share/ament_index/resource_index/packages/ros2_twist_message_to_robot_motion
-install/ros2_twist_message_to_robot_motion/share/colcon-core/packages/ros2_twist_message_to_robot_motion
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.bash
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.dsv
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.ps1
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.sh
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.xml
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/package.zsh
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/settings.json
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.dsv
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.ps1
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/ament_prefix_path.sh
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.dsv
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.ps1
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/hook/pythonpath.sh
-install/ros2_twist_message_to_robot_motion/share/ros2_twist_message_to_robot_motion/launch/launch.py
+log/
+install/
\ No newline at end of file
From 0ee508e3f5474b32235fdf53511bbec6dbfcc67e Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Wed, 10 May 2023 17:41:57 +0200
Subject: [PATCH 11/16] beginning of HSL stream
---
.../camera_capture/camera_capture.py | 29 +++++++++++++++----
.../playstation.py | 6 ----
2 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index be53e8c..3750518 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -18,8 +18,10 @@
from rclpy.node import Node
from sensor_msgs.msg import Image
from ament_index_python.packages import get_package_share_directory
-from std_msgs.msg import String, Bool
+from std_msgs.msg import Bool
from cv_bridge import CvBridge
+import ffmpeg_streaming
+import subprocess
# ___Global Variables:
@@ -74,13 +76,29 @@ def __init__(self,
# set image counter
self.image_number = 0
+ def hsl_livestream(self,video_width,video_height):
+ ffmpeg_command = [
+ 'ffmpeg',
+ '-y', # Overschrijf uitvoerbestanden zonder bevestiging
+ '-f', 'rawvideo',
+ '-vcodec', 'rawvideo',
+ '-s', f'{video_width}x{video_height}',
+ '-pix_fmt', 'bgr24',
+ '-r', str(30),
+ '-i', '-',
+ '-f', 'mpegts',
+ 'udp://localhost:1234' # Doel-URL voor de FFmpeg-stream
+ ]
+ self.ffmpeg_process = subprocess.Popen(ffmpeg_command, stdin=subprocess.PIPE)
+
def convert_livestream(self, topic_msg):
"""
- get a Image() type message and converts it to a cv2 image with cv2.imshow()
+ host livestream on localhost:1935/live/test with cv2 and ffmpeg
"""
- # self._logger.info(f'message received on topic livestream \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
- cv2.imshow("Video Frame", self.bridge.imgmsg_to_cv2(topic_msg, "bgr8"))
- cv2.waitKey(1)
+ frame = self.bridge.imgmsg_to_cv2(topic_msg, "bgr8")
+ self.ffmpeg_process.stdin.write(frame.tobytes())
+ # stream =cv2.imencode('.jpg', self.bridge.imgmsg_to_cv2(topic_msg, "bgr8"))[1].tobytes()
+ # ffmpeg_streaming.input(stream,input=".jpg").output('rtmp://localhost:1935/live/test').run()
def start_livestream_callback(self, topic_msg):
@@ -98,6 +116,7 @@ def start_livestream_callback(self, topic_msg):
self.get_logger().info('camera is available')
if topic_msg.data == True:
self._logger.info('starting livestream')
+ self.hsl_livestream(json_settings["capture_width_livestream"], json_settings["capture_height_livestream"])
self.timer = self.create_timer(timer_period, self.timer_callback)
elif topic_msg.data == False:
self._logger.info('stopping livestream')
diff --git a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
index d9707f8..5c3dbe9 100644
--- a/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
+++ b/src/ros2_gamepad_to_twist_message/ros2_gamepad_to_twist_message/playstation.py
@@ -93,12 +93,6 @@ def timer_callback(self):
if event.type == controller.JOYBUTTONDOWN:
if event.button == 0:
- #make sure no camera livestream is running
- # msg = Bool()
- # msg.data = False
- # self.pub_camera_livestream.publish(msg)
- # self.get_logger().info(" [2 - O] Button pressed")
- #make picutre
msg = Bool()
msg.data = True
self.pub_camera_trigger.publish(msg)
From dd834a14f6f9ae96df891235db3a89690efe57b2 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Thu, 11 May 2023 16:51:08 +0200
Subject: [PATCH 12/16] add node streaming, remove old nodes
---
FastAPI/hosting_server.py | 12 ++
README.md | 3 +-
host_rtsp_server | Bin 14488 -> 0 bytes
host_rtsp_server.c | 87 ------------
.../camera_capture/camera_capture.py | 31 +----
.../camera_livestream/camera_livestream.py | 115 ----------------
.../camera_livestream/temp.py | 80 -----------
.../config/camera_livestream_settings.json | 8 --
.../launch/camera_livestream.launch.py | 39 ------
src/camera_livestream/setup.cfg | 4 -
.../camera_snap_shot/take_snap_shot.py | 124 ------------------
.../config/camera_snap_shot_settings.json | 13 --
.../launch/camera_snap_shot.launch.py | 38 ------
.../resource/camera_snap_shot | 0
src/camera_snap_shot/setup.cfg | 4 -
src/robot_app/launch/gamepad_launch.py | 13 +-
src/ros2_csi_camera_publish/README.md | 48 -------
src/ros2_csi_camera_publish/package.xml | 22 ----
.../resource/ros2_csi_camera_publish | 0
.../ros2_csi_camera_publish/jetson.py | 81 ------------
src/ros2_csi_camera_publish/settings.json | 10 --
src/ros2_csi_camera_publish/setup.cfg | 4 -
src/ros2_csi_camera_publish/setup.py | 28 ----
.../test/test_copyright.py | 23 ----
.../test/test_flake8.py | 23 ----
.../test/test_pep257.py | 23 ----
src/ros_to_livestream/config/settings.json | 10 ++
src/ros_to_livestream/config/settings.yaml | 14 ++
src/ros_to_livestream/launch/HSL.launch.py | 34 +++++
.../package.xml | 46 +++----
.../requirements.in} | 0
.../resource/ros_to_livestream} | 0
.../ros_to_livestream/HSL.py | 91 +++++++++++++
.../ros_to_livestream/__init__.py | 1 +
src/ros_to_livestream/setup.cfg | 4 +
.../setup.py | 3 +-
.../package.xml | 9 +-
.../__init__.py => support/requirements.in} | 0
.../__init__.py => support/resource/support} | 0
src/support/setup.cfg | 4 +
src/{camera_snap_shot => support}/setup.py | 99 +++++++-------
src/support/support/__init__.py | 1 +
src/support/support/extended_node.py | 32 +++++
src/support/support/rclpy_mixin.py | 11 ++
.../test}/__init__.py | 0
src/support/test/test_extended_node.py | 28 ++++
46 files changed, 334 insertions(+), 886 deletions(-)
create mode 100644 FastAPI/hosting_server.py
delete mode 100644 host_rtsp_server
delete mode 100644 host_rtsp_server.c
delete mode 100644 src/camera_livestream/camera_livestream/camera_livestream.py
delete mode 100644 src/camera_livestream/camera_livestream/temp.py
delete mode 100644 src/camera_livestream/config/camera_livestream_settings.json
delete mode 100644 src/camera_livestream/launch/camera_livestream.launch.py
delete mode 100644 src/camera_livestream/setup.cfg
delete mode 100644 src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
delete mode 100644 src/camera_snap_shot/config/camera_snap_shot_settings.json
delete mode 100644 src/camera_snap_shot/launch/camera_snap_shot.launch.py
delete mode 100644 src/camera_snap_shot/resource/camera_snap_shot
delete mode 100644 src/camera_snap_shot/setup.cfg
delete mode 100644 src/ros2_csi_camera_publish/README.md
delete mode 100644 src/ros2_csi_camera_publish/package.xml
delete mode 100644 src/ros2_csi_camera_publish/resource/ros2_csi_camera_publish
delete mode 100644 src/ros2_csi_camera_publish/ros2_csi_camera_publish/jetson.py
delete mode 100644 src/ros2_csi_camera_publish/settings.json
delete mode 100644 src/ros2_csi_camera_publish/setup.cfg
delete mode 100644 src/ros2_csi_camera_publish/setup.py
delete mode 100644 src/ros2_csi_camera_publish/test/test_copyright.py
delete mode 100644 src/ros2_csi_camera_publish/test/test_flake8.py
delete mode 100644 src/ros2_csi_camera_publish/test/test_pep257.py
create mode 100644 src/ros_to_livestream/config/settings.json
create mode 100644 src/ros_to_livestream/config/settings.yaml
create mode 100644 src/ros_to_livestream/launch/HSL.launch.py
rename src/{camera_snap_shot => ros_to_livestream}/package.xml (70%)
rename src/{camera_livestream/camera_livestream/__init__.py => ros_to_livestream/requirements.in} (100%)
rename src/{camera_livestream/resource/camera_livestream => ros_to_livestream/resource/ros_to_livestream} (100%)
create mode 100644 src/ros_to_livestream/ros_to_livestream/HSL.py
create mode 100644 src/ros_to_livestream/ros_to_livestream/__init__.py
create mode 100644 src/ros_to_livestream/setup.cfg
rename src/{camera_livestream => ros_to_livestream}/setup.py (95%)
rename src/{camera_livestream => support}/package.xml (72%)
rename src/{camera_snap_shot/__init__.py => support/requirements.in} (100%)
rename src/{camera_snap_shot/camera_snap_shot/__init__.py => support/resource/support} (100%)
create mode 100644 src/support/setup.cfg
rename src/{camera_snap_shot => support}/setup.py (90%)
create mode 100644 src/support/support/__init__.py
create mode 100644 src/support/support/extended_node.py
create mode 100644 src/support/support/rclpy_mixin.py
rename src/{ros2_csi_camera_publish/ros2_csi_camera_publish => support/test}/__init__.py (100%)
create mode 100644 src/support/test/test_extended_node.py
diff --git a/FastAPI/hosting_server.py b/FastAPI/hosting_server.py
new file mode 100644
index 0000000..a8b8177
--- /dev/null
+++ b/FastAPI/hosting_server.py
@@ -0,0 +1,12 @@
+from fastapi import FastAPI
+from fastapi.responses import StreamingResponse
+
+app = FastAPI()
+
+@app.get('/')
+async def main():
+ def iter_file():
+ with open("livestream/output.mp4", mode="rb") as stream_file:
+ yield from stream_file
+ # return StreamingResponse(iter_file(), media_type='text/event-stream')
+ return StreamingResponse(iter_file(), media_type='video/mp4')
\ No newline at end of file
diff --git a/README.md b/README.md
index 90c1216..2b98098 100644
--- a/README.md
+++ b/README.md
@@ -54,8 +54,7 @@ git clone https://github.com/OrdinaNederland/robotics-workshop
#### Build, Source & Launch Package (Gamepad)
```
cd ~/robotics-workshop
-chmod +x host_rtsp_server
-colcon build --symlink-install && source install/local_setup.bash
+colcon build && source install/local_setup.bash
ROS_DOMAIN_ID= ros2 launch robot_app gamepad_launch.py gamepad_type:=playstation
```
diff --git a/host_rtsp_server b/host_rtsp_server
deleted file mode 100644
index 9573fd3f938999660296aa3ed2e9c299753dacf9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 14488
zcmeHOeQ;dWb-%kSz+fAHU~Cc->&d2xv7?nR#)z-vNwSbgjZtJlY02d2Y4=ImvfACe
zeH&yu(+Zc#xGhPgT40y2Ixv&i&J5#e^Fe7RaXe|J6EYnSAuhuNvQ|k-2RdU04Bp1_
z_IK{PXLaA(eI2)%{?UmqJe_-f_ndRjyZ65P?w)u2$35HbjK^YvOG12C5Z8aDkC>|A
zzzwPbVu}uNIsRTNR*Or)H%ZKIH+_OuznoR3nJ!Rx0+jSR;yw_jtCbv6_K@f$s;v>3
zxynbG3VApFU-EV8TEBhjTHhkmx5y!s(~7blxkq{jmEJ+6$JA8*Gv)iEd!uVmwTJ0e
zv{7M7vQ+wi>7}VYwp_Axl;xSS-e;jleqLxK+5+1
z7b5&$9^wD<5%^bNztOx5McDtx2s^)yuybRCd^rMtBEpWq^E6uYT(4LtI_?)8xAlf(
zJ3UYB!m>uk^Es>N*{)|*if><8~%zW%K!hm2(~v
z)?I^lTWQC2Ml(gvaR=}2&gOH@pgo**{I-TIwJwT|7cl9Taspmjk
zyVHWGm9!f+q9eZ3Kaom5w%V5k?`JCrWc-DyPI2ee6i;gkSsD=azwp%2L5KPXDy7^L}
zzKKU8lgoG(-J4SN#c4J8)7-j=*8yR;=7EOY$@zD3o||!sbbBdUL|d?kuzpexTB)%I
zF+7>9u!r-m2RJo>In3njY-Sghghd)^sgWhoc#GGqjh1XTEqb@z)zxinO5SiY7Pu^U
zz_e0(t!iy7!IYX}`0oG!dN&xj_D?^K*IGgxQ$o~!pK3?5YLD02`F);HFUI~QBqhWF
z_1)Ls`T1ee^92S4S=>e|C*O4srAwm~$mh
zxSAR%zd*xvKbLB_ey+Jj!}+X0h71koGZ^9PHT-e{RB6}ng$#mrXt;iaFg1L!Cf}#w
z>c}ix`!!rG5sBZg;d}<8h9M2t$A3)2=}g6?py5|D2s)wRIPKKRq=v7mp+fA{@M|=D
zO2a>*;RiJQqZ)ot!}-ik&4)Bx9igSxQ4Rl?W@m2q_Ycn{#PpYhn3>!CgG0v>)=8~d
zoJRYU5J#8o>a8q2e%rJWZ$8;q_&)>RrSV?{
zKdkY834V{pKMwv`jei3CagBcl{H(@53qF3weE(kuzgFXqfbY`y=fMwa{NI4zqw(JX
z|E$Kp2>!Une-Heu#vcbC|I~c{KLWp2<9`gkOXL3;{IJHq41SNsp9KG`#=i#sxX*t~
zOuoDZ*Dn*|$f<-`nO!HQe}(y+#GHw9y_G)!O`YwnJOcVixwkS?t?qvbmu!Etw_*zM
zt^L*NDw=niQ{X2=IX3+;Xbb44g?RfQepZ1$+H$(L(g}G(G@p!;ZxQ09mUG?vTF!O;
zIj((QgZv)ocD>(Q=|bI9x^ug~C)eG33q@rg`Wl+;yv2-(o1|aw^j1K>C4Ff!D^J4T
z*KiqPa$smScFTJU&C1;F<8rN*;rra~7p1Lov-rDHuqSQ2)mw=PvvR6UfKI+#T_q|4
ze&83+^fzIvyjoP^z^RYekeDv7HY?-63%E{UEQx;%_1Wjd^r>#N7sd3yCgMkC6ETdl
z-~KS#n}zto*J5I@yvnQy_)2ZEpJNNAKZ|yZjDa(OF$t`U9{c=$E|?B&ms
zOtYvA5?!b6!4%U1_mDvQtZ#QJW?nvBUT0QDq?}p#9MMmR%4djf6qPc@Mi{=H^mC(G
z*@(6l^ixK?9ramI_&60Cf~`-Om6Wt$Rz3nsV@3A=fUst>k_Lr;0}n&K1!FqfW>#9@
zQ>Tdi7;EEQ6KkUvGIP6sBfi3#G(8i)`lSyN
zV#9~2#NiJymS-`hzc^prUtKcu_7KK#=6v_QtKh?PyNYLL6W1ImUW)NgtU6LotlTgp
zK7I19<5#`iQmqcYx1;m$nFqQKf0*h%Jh%IYvTs_yv@Us1)AzHOz##^ust_IeUR>Az=Skm&9HnH%ys=TkPTqrP(M=gG#>A#Ao1GlhT(2+&reNaT}>W*Btb&E!T6|IAvv)%cyFI!w@EJ(F@oo0}ibd-y?v
zqc!QpRwr)T3QF(nj&s%O=Rn6m3!n!F|NI;!m+Ivls_Dkdr9#eo8s7v9_t~y
z9AhhU+>JmKQ|Z%rmI}wpIQG-8I%52Ua+v*|R0G8^Gwy$lZ?1NKI9|*9gSb@1QC;#=
z%1~AD${lf9@q?JDCD
zntTGkvH82Z2IHAYh>3>sO||DVD1V9I=QD_3D)>1L;+F|t-$8tV;O8QUUoQCh3*uJ@
zeoljU)c5U0g4c6UesL|IBZyxqc%KX6OT>iQ|AP3^T0TM$UnY*~9|u%p0$*Nv-weuM
zRr?+j#8)8Cf>+vnOF~>Ncz>HmY42MpgwaTTm6&LV^DZ`Tg|wT*yVZHbuk}b$zfSrj
zUO%3`eEqonF60~8XFGdk)WPqQ{(co#Tr3uh^ZxD2*U!6;*U#gVuoKkSG7c_}dCU5t8@EZKdG-2V%0E$6vC;=Kuu@iUY;O{QUCl
z`*!Nr)jBC(kADU@+2`{H+xP9%uiN{ioqF7tUnYJSTK_&i?T>s9)Vv*c)Wi9`HKkoCxC~x80i(gUmM-mYZ3Ul2z;d+H|<7M
zbwdQ+6M^3gd~LlML3waS1N>3o%f$Tt&-3_Xg#5RGFKw_MjstHr4zEPuXQZ9_eTMQG
z8rk_M@MZCpb??WID?Gdp-xy)X1ilpe@T7qStd%|~zgY18AYVwq
z{NF11@Oytc!p_g(b|e44A7TGg1pa}vUq7C65%P;Kp?R6#hvl~f8o#zu(UnP+qp4Jz
z%BNJ>m7}>*TSr?mss68T+>vs<8@f%r!p$rVA>}=M0$gz1HX<;Wfq
z#=O$VNHQhnlhG`19Jy;qM=K)lD4n-Pv-x2=Yo(D+R!ve0(QVG|rN#R=Vg|o^#p!95c8lzr#7%kya8;=6Arv
zodcbB_gFpKw<7t@vXHE5_4FyQZ|i`tdbi!v)w#{O=gvEK^bA^qon6~{NHEY_Ita*I
zK4ESB{q3E1-_?yanRb;bmgMa)?`Ql`8kT8l`BimkUot!Gf0QN2w;i3rH=pZPm+KXD
zCfbxrv8!{JlHvkcYLoydN2@LkE}R<3NplVI4`ow0`!SH+7V!JOPmH_=DR61zQI?9x
z5tO10^CYosZO``8<@|)YKp$c6>oOQEYq(fc*>*CqGnjSgCly*2vNmhWFI~)AV|Ff$
z{7nq3p9o4>nif`nS}xGqQlcRR9?bg-I>7ujsqx+YH}_O3>82*D@`&49#FJ
zX1Fh!Fw3C<#GT0XAhT8}#Z+bG~7O5K|){O=tUH*$Vap
z#0I(l1FFK5NhW;%yMWP{vOdR`m`*B(
zxqsH@`+r2~cY#vjI22P;876&-Nr&|*jzL{;e4FFzOgXLr5n00X|EEB8eU57}Js28r
z%B7&fbOv=@pMOU&T|tws751MY%G1~NIZnou`(gR8{|A*mk3YxLnEnSVDjM$pP)MJD
z-!k1A(hv9losd4q=a{}3(hv844DA%E;bG$6#r*Gt!t%^B{Rwm_@0IoW`^W+H;IbS<
zWMQ7^t3dhLBmw^Y&HoOI*B`Gh*5i3O1s$3{?w{j_
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include
-
-#include
-
-#define DEFAULT_RTSP_PORT "8554"
-
-static char *port = (char *) DEFAULT_RTSP_PORT;
-
-static GOptionEntry entries[] = {
- {"port", 'p', 0, G_OPTION_ARG_STRING, &port,
- "Port to listen on (default: " DEFAULT_RTSP_PORT ")", "PORT"},
- {NULL}
-};
-
-int
-main (int argc, char *argv[])
-{
- GMainLoop *loop;
- GstRTSPServer *server;
- GstRTSPMountPoints *mounts;
- GstRTSPMediaFactory *factory;
- GOptionContext *optctx;
- GError *error = NULL;
-
- optctx = g_option_context_new (" - Test RTSP Server, Launch\n\n"
- "Example: \"( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )\"");
- g_option_context_add_main_entries (optctx, entries, NULL);
- g_option_context_add_group (optctx, gst_init_get_option_group ());
- if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
- g_printerr ("Error parsing options: %s\n", error->message);
- g_option_context_free (optctx);
- g_clear_error (&error);
- return -1;
- }
- g_option_context_free (optctx);
-
- loop = g_main_loop_new (NULL, FALSE);
-
- /* create a server instance */
- server = gst_rtsp_server_new ();
- g_object_set (server, "service", port, NULL);
-
- /* get the mount points for this server, every server has a default object
- * that be used to map uri mount points to media factories */
- mounts = gst_rtsp_server_get_mount_points (server);
-
- /* make a media factory for a test stream. The default media factory can use
- * gst-launch syntax to create pipelines.
- * any launch line works as long as it contains elements named pay%d. Each
- * element with pay%d names will be a stream */
- factory = gst_rtsp_media_factory_new ();
- gst_rtsp_media_factory_set_launch (factory, argv[1]);
- gst_rtsp_media_factory_set_shared (factory, TRUE);
-
- /* attach the test factory to the /test url */
- gst_rtsp_mount_points_add_factory (mounts, "/robotstream", factory);
-
- /* don't need the ref to the mapper anymore */
- g_object_unref (mounts);
-
- /* attach the server to the default maincontext */
- gst_rtsp_server_attach (server, NULL);
-
- /* start serving */
- g_main_loop_run (loop);
-
- return 0;
-}
\ No newline at end of file
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index 3750518..68d821f 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -67,7 +67,6 @@ def __init__(self,
self.pub_cam_livestream = self.create_publisher(Image, publish_livestream_topic, 1)
self.sub_cam_livestream_state = self.create_subscription(Bool, livestream_state_topic, self.start_livestream_callback, 1)
self.sub_cam_snapshot_trigger = self.create_subscription(Bool, snapshot_trigger_topic, self.capture_snapshot_callback, 1)
- self.sub_cam_livestream_convert = self.create_subscription(Image, publish_livestream_topic, self.convert_livestream, 10)
self.cap = cv2.VideoCapture(gstreamer_pipeline())
self.bridge = CvBridge()
@@ -76,53 +75,25 @@ def __init__(self,
# set image counter
self.image_number = 0
- def hsl_livestream(self,video_width,video_height):
- ffmpeg_command = [
- 'ffmpeg',
- '-y', # Overschrijf uitvoerbestanden zonder bevestiging
- '-f', 'rawvideo',
- '-vcodec', 'rawvideo',
- '-s', f'{video_width}x{video_height}',
- '-pix_fmt', 'bgr24',
- '-r', str(30),
- '-i', '-',
- '-f', 'mpegts',
- 'udp://localhost:1234' # Doel-URL voor de FFmpeg-stream
- ]
- self.ffmpeg_process = subprocess.Popen(ffmpeg_command, stdin=subprocess.PIPE)
-
- def convert_livestream(self, topic_msg):
- """
- host livestream on localhost:1935/live/test with cv2 and ffmpeg
- """
- frame = self.bridge.imgmsg_to_cv2(topic_msg, "bgr8")
- self.ffmpeg_process.stdin.write(frame.tobytes())
- # stream =cv2.imencode('.jpg', self.bridge.imgmsg_to_cv2(topic_msg, "bgr8"))[1].tobytes()
- # ffmpeg_streaming.input(stream,input=".jpg").output('rtmp://localhost:1935/live/test').run()
-
-
def start_livestream_callback(self, topic_msg):
"""Timer Callback Function
This method starts a livestream
"""
- os.environ['DISPLAY']=':0' # for developing, this is needed to open up a window to show the local livestream
self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"])
self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"])
self._logger.info(f'message received on topic livestream \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
- timer_period = 0.03 # seconds
+ timer_period = 0.03 # seconds TODO: make into settings 30hz
if self.cap.isOpened():
self.get_logger().info('camera is available')
if topic_msg.data == True:
self._logger.info('starting livestream')
- self.hsl_livestream(json_settings["capture_width_livestream"], json_settings["capture_height_livestream"])
self.timer = self.create_timer(timer_period, self.timer_callback)
elif topic_msg.data == False:
self._logger.info('stopping livestream')
self.timer.cancel()
self.timer.destroy()
- cv2.destroyAllWindows()
else:
self.get_logger().info('camera not available')
diff --git a/src/camera_livestream/camera_livestream/camera_livestream.py b/src/camera_livestream/camera_livestream/camera_livestream.py
deleted file mode 100644
index 2699467..0000000
--- a/src/camera_livestream/camera_livestream/camera_livestream.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 CSI Camera Image Publisher.
-This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image format.
-Example:
- $ colcon build --symlink-install
- $ ros2 launch camera_snap_shot camera_snap_shot.launch.py
-"""
-
-# ___Import Modules:
-import os
-import cv2
-import json
-import numpy as np
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from ament_index_python.packages import get_package_share_directory
-from std_msgs.msg import String
-from cv_bridge import CvBridge
-
-# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('camera_livestream'), "config/camera_livestream_settings.json")
-with open(SETTINGS) as fp:
- json_settings = json.load(fp)
-
-# __Functions:
-def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
- capture_height=str(json_settings["capture_height"]),
- framerate=str(json_settings["framerate"])):
- return (
- "nvarguscamerasrc ! "
- "video/x-raw(memory:NVMM), "
- f"width=(int){capture_width}, height=(int){capture_height}, "
- f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
- "nvvidconv ! "
- "video/x-raw, format=(string)BGRx ! "
- "videoconvert ! "
- "video/x-raw, format=(string)BGR ! "
- "appsink"
- )
-
-
-# __Classes:
-class CameraPublisher(Node):
- """Camera Publisher Class.
- This class contains all methods to publish csi camera data as
- sensor_msgs.msg/Image format.
-
- """
-
- def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
- super().__init__('camera_publisher')
-
- # initialize publisher
- self.publisher_ = self.create_publisher(Image, publish_topic, 1)
- self.subscription1 = self.create_subscription(String, trigger_topic, self.start_livestream, 1)
-
- # set image counter
- self.image_number = 0
- self.bridge = CvBridge()
-
- def start_livestream(self):
- """Timer Callback Function
-
- This method captures images and publishes required data in ros 2 topic.
-
- """
- cap = cv2.VideoCapture(gstreamer_pipeline())
- os.environ['DISPLAY']=':0'
- while cap.isOpened():
- # reads image data
- ret, frame = cap.read()
-
-
- # processes image data and converts to ros 2 message
- msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
- self.publisher_.publish(msg_image)
-
- # shows local livestream
-
- cv2.imshow("Video Frame", frame)
-
- # for debugging stops when pressing q
- if cv2.waitKey(25) & 0xFF == ord('q'):
- break
-
- cap.release()
- cv2.destroyAllWindows()
-
-
-# ___Main Method:
-def main(args=None):
- """
- This is the Main Method.
-
- """
- # initializes node and start publishing
- rclpy.init(args=args)
- camera_publisher = CameraPublisher()
- camera_publisher.start_livestream()
- rclpy.spin(camera_publisher)
-
- # shuts down nose and releases everything
- camera_publisher.destroy_node()
- rclpy.shutdown()
-
- return None
-
-
-# ___Driver Program:
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/src/camera_livestream/camera_livestream/temp.py b/src/camera_livestream/camera_livestream/temp.py
deleted file mode 100644
index 35d0d2b..0000000
--- a/src/camera_livestream/camera_livestream/temp.py
+++ /dev/null
@@ -1,80 +0,0 @@
-import os
-import cv2
-import json
-import numpy as np
-
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from ament_index_python.packages import get_package_share_directory
-from std_msgs.msg import String
-from std_msgs.msg import String, UInt8MultiArray, MultiArrayDimension
-import random
-
-fp ={
- "publish_topic": "/image",
- "publish_frequency": 10,
- "capture_width": 720,
- "capture_height": 480,
- "framerate": 30,
- "flip_method": 0,
- "display_width": 320,
- "display_height": 240,
- "trigger_topic": "/camera_trigger",
- "camera_trigger_message": "pressed",
- "image_location": "snapshot_files"
-}
-json_settings = fp
-
-
-# __Functions:
-def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
- capture_height=str(json_settings["capture_height"]),
- framerate=str(json_settings["framerate"])):
- return (
- "nvarguscamerasrc ! "
- "video/x-raw(memory:NVMM), "
- f"width=(int){capture_width}, height=(int){capture_height}, "
- f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
- "nvvidconv ! "
- "video/x-raw, format=(string)BGRx ! "
- "videoconvert ! "
- "video/x-raw, format=(string)BGR ! "
- "appsink"
- )
-# temp_message = random.choices(range(256),k=10000)
-cap = cv2.VideoCapture(gstreamer_pipeline())
-os.environ['DISPLAY']=':0'
-while cap.isOpened():
- # reads image data
- ret, frame = cap.read()
- msg_image = UInt8MultiArray()
-
- # real_message = temp_message
- # real_message = np.array(frame, dtype=np.uint8)
- # print(frame)
- # print(real_message)
-
- # msg_image.layout.dim.append(MultiArrayDimension())
- # msg_image.layout.dim.append(MultiArrayDimension())
- # msg_image.layout.dim.append(MultiArrayDimension())
- # msg_image.layout.dim[0].label = "height"
- # msg_image.layout.dim[0].size = 1080
- # msg_image.layout.dim[0].stride = 3*1920*1080
- # msg_image.layout.dim[1].label = "width"
- # msg_image.layout.dim[1].size = 1920
- # msg_image.layout.dim[1].stride = 3*1920
- # msg_image.layout.dim[2].label = "channel"
- # msg_image.layout.dim[2].size = 3
- # msg_image.layout.dim[2].stride = 3
- # msg_image.layout.data_offset = 0
- msg_image.data = frame.flatten().tolist()
- # msg_image.data = real_message
- # processes image data and converts to ros 2 message
- cv2.imshow("Video Frame", frame)
- if cv2.waitKey(25) & 0xFF == ord('q'):
- break
-
-cap.release()
-cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/src/camera_livestream/config/camera_livestream_settings.json b/src/camera_livestream/config/camera_livestream_settings.json
deleted file mode 100644
index 1f82235..0000000
--- a/src/camera_livestream/config/camera_livestream_settings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "publish_topic": "/livestream",
- "capture_width": 720,
- "capture_height": 480,
- "framerate": 30,
- "flip_method": 0,
- "trigger_topic": "/livestream_trigger"
-}
\ No newline at end of file
diff --git a/src/camera_livestream/launch/camera_livestream.launch.py b/src/camera_livestream/launch/camera_livestream.launch.py
deleted file mode 100644
index dcca9da..0000000
--- a/src/camera_livestream/launch/camera_livestream.launch.py
+++ /dev/null
@@ -1,39 +0,0 @@
-import pathlib
-
-from ament_index_python.packages import get_package_share_directory
-from launch import LaunchDescription
-from launch.conditions import IfCondition
-from launch.actions import DeclareLaunchArgument
-from launch.substitutions import LaunchConfiguration, TextSubstitution
-from launch_ros.actions import Node
-
-from launch import LaunchDescription
-from launch.actions import DeclareLaunchArgument
-from launch.actions import IncludeLaunchDescription
-from launch.actions import GroupAction
-from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import LaunchConfiguration
-from launch.substitutions import TextSubstitution
-from launch_ros.actions import Node
-from launch_ros.actions import PushRosNamespace
-
-DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('camera_livestream')}/config/camera_livestream.json"))
-
-
-def generate_launch_description() -> LaunchDescription:
- # args that can be set from the command line or a default will be used
- config_file_arg = DeclareLaunchArgument(
- "config_file", default_value=TextSubstitution(text=DEFAULT_CONFIG_PATH)
- )
- # start a turtlesim_node in the turtlesim1 namespace
- camera_livestream = Node(
- package='camera_livestream',
- # namespace='turtlesim2',
- executable='camera_livestream',
- name='sim',
- )
-
- return LaunchDescription([
- # launch_include,
- camera_livestream,
- ])
diff --git a/src/camera_livestream/setup.cfg b/src/camera_livestream/setup.cfg
deleted file mode 100644
index db9a262..0000000
--- a/src/camera_livestream/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/camera_livestream
-[install]
-install_scripts=$base/lib/camera_livestream
diff --git a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py b/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
deleted file mode 100644
index 99b15a1..0000000
--- a/src/camera_snap_shot/camera_snap_shot/take_snap_shot.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 CSI Camera Image Publisher.
-This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image format.
-Example:
- $ colcon build --symlink-install
- $ ros2 launch camera_snap_shot camera_snap_shot.launch.py
-"""
-
-# ___Import Modules:
-import os
-import cv2
-import json
-import numpy as np
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from ament_index_python.packages import get_package_share_directory
-from std_msgs.msg import String
-
-# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('camera_snap_shot'), "config/camera_snap_shot_settings.json")
-with open(SETTINGS) as fp:
- json_settings = json.load(fp)
-
-# __Functions:
-def gstreamer_pipeline(capture_width=str(json_settings["capture_width"]),
- capture_height=str(json_settings["capture_height"]),
- framerate=str(json_settings["framerate"])):
- return (
- "nvarguscamerasrc ! "
- "video/x-raw(memory:NVMM), "
- f"width=(int){capture_width}, height=(int){capture_height}, "
- f"format=(string)NV12, framerate=(fraction){framerate}/1 ! "
- "nvvidconv ! "
- "video/x-raw, format=(string)BGRx ! "
- "videoconvert ! "
- "video/x-raw, format=(string)BGR ! "
- "appsink"
- )
-
-
-# __Classes:
-class CameraPublisher(Node):
- """Camera Publisher Class.
- This class contains all methods to publish csi camera data as
- sensor_msgs.msg/Image format.
-
- """
-
- def __init__(self, publish_topic=json_settings["publish_topic"], trigger_topic=json_settings["trigger_topic"]):
- super().__init__('camera_publisher')
-
- # initialize publisher
- self.publisher_ = self.create_publisher(Image, publish_topic, 1)
- self.subscription1 = self.create_subscription(String, trigger_topic, self.capture_image, 1)
-
- # set image counter
- self.image_number = 0
-
- def capture_image(self, msg):
- """Timer Callback Function
-
- This method captures images and publishes required data in ros 2 topic.
-
- """
- cap = cv2.VideoCapture(gstreamer_pipeline())
-
- if cap.isOpened():
- # reads image data
- ret, frame = cap.read()
-
- # processes image data and converts to ros 2 message
- msg_image = Image()
- msg_image.header.stamp = Node.get_clock(self).now().to_msg()
- msg_image.header.frame_id = str(self.image_number)
- msg_image.height = np.shape(frame)[0]
- msg_image.width = np.shape(frame)[1]
- msg_image.encoding = "bgr8"
- msg_image.is_bigendian = False
- msg_image.step = np.shape(frame)[2] * np.shape(frame)[1]
- msg_image.data = np.array(frame).tobytes()
-
- # if message is correct, publish & save image
- if msg.data == json_settings["camera_trigger_message"]:
- image_location = f"{json_settings['image_location']}/image{self.image_number}.jpg"
- cv2.imwrite(image_location, frame)
- self.publisher_.publish(msg_image)
- self.get_logger().info(f'image saved at image{self.image_number}.jpg')
- cap.release()
- # image counter increment
- self.image_number += 1
- if self.image_number >4:
- item_to_delete = f"{json_settings['image_location']}/image{self.image_number-5}.jpg"
- if os.path.exists(item_to_delete):
- os.remove(item_to_delete)
-
-
- return None
-
-
-# ___Main Method:
-def main(args=None):
- """
- This is the Main Method.
-
- """
- # initializes node and start publishing
- rclpy.init(args=args)
- camera_publisher = CameraPublisher()
- rclpy.spin(camera_publisher)
-
- # shuts down nose and releases everything
- camera_publisher.destroy_node()
- rclpy.shutdown()
-
- return None
-
-
-# ___Driver Program:
-if __name__ == '__main__':
- main()
diff --git a/src/camera_snap_shot/config/camera_snap_shot_settings.json b/src/camera_snap_shot/config/camera_snap_shot_settings.json
deleted file mode 100644
index 4104922..0000000
--- a/src/camera_snap_shot/config/camera_snap_shot_settings.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "publish_topic": "/image",
- "publish_frequency": 10,
- "capture_width": 1920,
- "capture_height": 1080,
- "framerate": 30,
- "flip_method": 0,
- "display_width": 320,
- "display_height": 240,
- "trigger_topic": "/camera_trigger",
- "camera_trigger_message": "pressed",
- "image_location": "snapshot_files"
-}
\ No newline at end of file
diff --git a/src/camera_snap_shot/launch/camera_snap_shot.launch.py b/src/camera_snap_shot/launch/camera_snap_shot.launch.py
deleted file mode 100644
index 56b1a6d..0000000
--- a/src/camera_snap_shot/launch/camera_snap_shot.launch.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import pathlib
-
-from ament_index_python.packages import get_package_share_directory
-from launch import LaunchDescription
-from launch.conditions import IfCondition
-from launch.actions import DeclareLaunchArgument
-from launch.substitutions import LaunchConfiguration, TextSubstitution
-from launch_ros.actions import Node
-
-from launch import LaunchDescription
-from launch.actions import DeclareLaunchArgument
-from launch.actions import IncludeLaunchDescription
-from launch.actions import GroupAction
-from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import LaunchConfiguration
-from launch.substitutions import TextSubstitution
-from launch_ros.actions import Node
-from launch_ros.actions import PushRosNamespace
-
-DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('camera_snap_shot')}/config/camera_snap_shot_settings.json"))
-
-
-def generate_launch_description() -> LaunchDescription:
- # args that can be set from the command line or a default will be used
- config_file_arg = DeclareLaunchArgument(
- "config_file", default_value=TextSubstitution(text=DEFAULT_CONFIG_PATH)
- )
- # start a turtlesim_node in the turtlesim1 namespace
- camera_snap_shot = Node(
- package='camera_snap_shot',
- executable='take_snap_shot',
- name='sim',
- )
-
- return LaunchDescription([
- # launch_include,
- camera_snap_shot,
- ])
diff --git a/src/camera_snap_shot/resource/camera_snap_shot b/src/camera_snap_shot/resource/camera_snap_shot
deleted file mode 100644
index e69de29..0000000
diff --git a/src/camera_snap_shot/setup.cfg b/src/camera_snap_shot/setup.cfg
deleted file mode 100644
index 27efca9..0000000
--- a/src/camera_snap_shot/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/camera_snap_shot
-[install]
-install_scripts=$base/lib/camera_snap_shot
diff --git a/src/robot_app/launch/gamepad_launch.py b/src/robot_app/launch/gamepad_launch.py
index 401d02e..c7235b0 100644
--- a/src/robot_app/launch/gamepad_launch.py
+++ b/src/robot_app/launch/gamepad_launch.py
@@ -18,11 +18,14 @@
#___Import Modules:
from launch import LaunchDescription
+import pathlib
# from launch.conditions import IfCondition
+from ament_index_python.packages import get_package_share_directory
from launch.conditions import LaunchConfigurationEquals
-from launch.actions import DeclareLaunchArgument
+from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
+from launch.launch_description_sources import PythonLaunchDescriptionSource
#___Function:
@@ -69,6 +72,13 @@ def generate_launch_description():
executable = 'camera_capture',
name = 'camera_capture')
+ # Include other launch files
+ HSL_launch = IncludeLaunchDescription(
+ PythonLaunchDescriptionSource(
+ str(pathlib.Path(f"{get_package_share_directory('ros_to_livestream')}/launch/HSL.launch.py"))
+ ),
+ )
+
# snapshot_mode_cmd = Node(
# condition = LaunchConfigurationEquals('robot_mode', 'snapshot'),
# package = 'camera_snap_shot',
@@ -111,6 +121,7 @@ def generate_launch_description():
# Add all actions
ld.add_action(gamepad_to_twist_cmd)
ld.add_action(livestream_mode_cmd)
+ ld.add_action(HSL_launch)
# ld.add_action(snapshot_mode_cmd)
ld.add_action(twist_to_motion_cmd)
# ld.add_action(cam2image_cmd)
diff --git a/src/ros2_csi_camera_publish/README.md b/src/ros2_csi_camera_publish/README.md
deleted file mode 100644
index 9f49b06..0000000
--- a/src/ros2_csi_camera_publish/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
ROS 2 CSI Camera Image Publish Package for Jetson Nano
-
-
-
-ROS 2 Package to Publish CSI Camera Image as sensor_msgs/Image message on Jetson Nano.
-
-
-
-## Colaborators
-[Animesh Bala Ani](https://www.linkedin.com/in/ani717/)
-
-## Table of Contents
-* [Install Dependency](#install)
-* [Build, Source & Run Package](#run)
-* [Settings](#set)
-
-
-## Install Dependency
-Install ROS2 dependency.
-```
-sudo apt-get update
-rosdep update
-rosdep install --from-paths src --ignore-src -r -y
-```
-
-
-## Build, Source & Run Package
-```
-colcon build --symlink-install --packages-select ros2_csi_camera_publish
-source install/local_setup.bash
-ros2 run ros2_csi_camera_publish jetson
-```
-```
-colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
-```
-
-
-## Settings
-Edit `settings.json` file to assign `publish_topic`, `publish frequency`, `capture_width`, `capture_height`, `framerate`, `flip_method`, `display_width` and `display_height`.
-Default `publish_topic`:`\image`
-Default `publish frequency`:`100`
-Default `capture_width`:`320`
-Default `capture_height`:`240`
-Default `framerate`:`30`
-Default `flip_method`:`0`
-Default `display_width`:`320`
-Default `display_height`:`240`
diff --git a/src/ros2_csi_camera_publish/package.xml b/src/ros2_csi_camera_publish/package.xml
deleted file mode 100644
index 70d3071..0000000
--- a/src/ros2_csi_camera_publish/package.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- ros2_csi_camera_publish
- 1.0.0
- Package to Publish CSI Camera Data in ROS 2 Topic
- ANI717 (Animesh Bala Ani)
- MIT License
-
- rclpy
- sensor_msgs
- ament_index_python
-
- ament_copyright
- ament_flake8
- ament_pep257
- python3-pytest
-
-
- ament_python
-
-
diff --git a/src/ros2_csi_camera_publish/resource/ros2_csi_camera_publish b/src/ros2_csi_camera_publish/resource/ros2_csi_camera_publish
deleted file mode 100644
index e69de29..0000000
diff --git a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/jetson.py b/src/ros2_csi_camera_publish/ros2_csi_camera_publish/jetson.py
deleted file mode 100644
index 4a85fcd..0000000
--- a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/jetson.py
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""ROS2 CSI Camera Image Publisher.
-
-This script publishes csi camera image to a ROS2 topic in sensor_msgs.msg/Image
-format. And starts rtmp stream to rtmp://localhost;1935/live/stream
-
-Example:
- $ colcon build --symlink-install && source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
- $ source install/local_setup.bash && ros2 run ros2_csi_camera_publish jetson
- $ ros2 run ros2_csi_camera_publish jetson
-
-"""
-
-# ___Import Modules:
-import os
-import nanocamera as nano
-import json
-import numpy as np
-import subprocess
-import socket
-
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from ament_index_python.packages import get_package_share_directory
-
-# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('ros2_csi_camera_publish'), "settings.json")
-
-
-# __Classes:
-class CameraPublisher(Node):
-
- def __init__(self):
- super().__init__('camera_publisher')
- self.create_livestream()
-
-
- def create_livestream(self):
- try:
- subprocess.Popen(["./host_rtsp_server", "nvarguscamerasrc ! nvvidconv ! nvv4l2h264enc ! h264parse ! rtph264pay name=pay0 pt=96",str(self.get_ip_address())], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- except Exception as e:
- print("failed to set up rtsp server error :\n {e}")
-
-
- def get_ip_address(self):
- cmd = "ifconfig %s | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'" % 'wlan0'
- return subprocess.check_output(cmd, shell=True).decode('ascii')[:-1]
-
-
-# ___Main Method:
-def main(args=None):
-
- with open(SETTINGS) as fp:
- content = json.load(fp)
- publish_topic = content["publish_topic"]
- publish_frequency = content["publish_frequency"]
- capture_width = content["capture_width"]
- capture_height = content["capture_height"]
- framerate = content["framerate"]
- flip_method = content["flip_method"]
- display_width = content["display_width"]
- display_height = content["display_height"]
-
- rclpy.init(args=args)
- livestream = CameraPublisher()
- rclpy.spin(livestream)
-
- livestream.destroy_node()
- rclpy.shutdown()
-
-
-# ___Driver Program:
-if __name__ == '__main__':
- main()
-
-#
-# end of file
-"""ORDINA"""
diff --git a/src/ros2_csi_camera_publish/settings.json b/src/ros2_csi_camera_publish/settings.json
deleted file mode 100644
index 2e3bc9b..0000000
--- a/src/ros2_csi_camera_publish/settings.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "publish_topic": "/image",
- "publish_frequency": 100,
- "capture_width": 1920,
- "capture_height": 1080,
- "framerate": 30,
- "flip_method": 0,
- "display_width": 320,
- "display_height": 240
-}
\ No newline at end of file
diff --git a/src/ros2_csi_camera_publish/setup.cfg b/src/ros2_csi_camera_publish/setup.cfg
deleted file mode 100644
index b347af7..0000000
--- a/src/ros2_csi_camera_publish/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/ros2_csi_camera_publish
-[install]
-install_scripts=$base/lib/ros2_csi_camera_publish
diff --git a/src/ros2_csi_camera_publish/setup.py b/src/ros2_csi_camera_publish/setup.py
deleted file mode 100644
index d0d12ea..0000000
--- a/src/ros2_csi_camera_publish/setup.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from setuptools import setup
-from glob import glob
-
-package_name = 'ros2_csi_camera_publish'
-
-setup(
- name=package_name,
- version='1.0.0',
- packages=[package_name],
- data_files=[
- ('share/ament_index/resource_index/packages',
- ['resource/' + package_name]),
- ('share/' + package_name, ['package.xml']),
- ('share/' + package_name, ['settings.json']),
- ],
- install_requires=['setuptools'],
- zip_safe=True,
- maintainer='ANI717 (Animesh Bala Ani)',
- maintainer_email='animesh.ani@live.com',
- description='Package to Publish CSI Camera Data in ROS 2 Topic',
- license='MIT License',
- tests_require=['pytest'],
- entry_points={
- 'console_scripts': [
- 'jetson = ros2_csi_camera_publish.jetson:main',
- ],
- },
-)
diff --git a/src/ros2_csi_camera_publish/test/test_copyright.py b/src/ros2_csi_camera_publish/test/test_copyright.py
deleted file mode 100644
index cc8ff03..0000000
--- a/src/ros2_csi_camera_publish/test/test_copyright.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2015 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_copyright.main import main
-import pytest
-
-
-@pytest.mark.copyright
-@pytest.mark.linter
-def test_copyright():
- rc = main(argv=['.', 'test'])
- assert rc == 0, 'Found errors'
diff --git a/src/ros2_csi_camera_publish/test/test_flake8.py b/src/ros2_csi_camera_publish/test/test_flake8.py
deleted file mode 100644
index eff8299..0000000
--- a/src/ros2_csi_camera_publish/test/test_flake8.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2017 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_flake8.main import main
-import pytest
-
-
-@pytest.mark.flake8
-@pytest.mark.linter
-def test_flake8():
- rc = main(argv=[])
- assert rc == 0, 'Found errors'
diff --git a/src/ros2_csi_camera_publish/test/test_pep257.py b/src/ros2_csi_camera_publish/test/test_pep257.py
deleted file mode 100644
index b234a38..0000000
--- a/src/ros2_csi_camera_publish/test/test_pep257.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2015 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from ament_pep257.main import main
-import pytest
-
-
-@pytest.mark.linter
-@pytest.mark.pep257
-def test_pep257():
- rc = main(argv=['.', 'test'])
- assert rc == 0, 'Found code style errors / warnings'
diff --git a/src/ros_to_livestream/config/settings.json b/src/ros_to_livestream/config/settings.json
new file mode 100644
index 0000000..8ec8208
--- /dev/null
+++ b/src/ros_to_livestream/config/settings.json
@@ -0,0 +1,10 @@
+{
+ "topic_camera": "/camera",
+ "camera_id": "/cam_0",
+ "topic_livestream": "/livestream",
+ "image_width": 720,
+ "image_height": 480,
+ "framerate": 33,
+ "queue_size": 10
+
+}
\ No newline at end of file
diff --git a/src/ros_to_livestream/config/settings.yaml b/src/ros_to_livestream/config/settings.yaml
new file mode 100644
index 0000000..a26df91
--- /dev/null
+++ b/src/ros_to_livestream/config/settings.yaml
@@ -0,0 +1,14 @@
+
+livestream_topic:
+ base: "/camera"
+ camera_id:
+ - "id_0"
+ type: "/livestream"
+ state: "/state"
+temp_topic: /temp
+image_width: 720
+image_height: 480
+queue_size: 10
+framerate: 30
+
+
diff --git a/src/ros_to_livestream/launch/HSL.launch.py b/src/ros_to_livestream/launch/HSL.launch.py
new file mode 100644
index 0000000..655f70f
--- /dev/null
+++ b/src/ros_to_livestream/launch/HSL.launch.py
@@ -0,0 +1,34 @@
+import json
+import pathlib
+
+
+from ament_index_python.packages import get_package_share_directory
+from launch import LaunchDescription
+from launch.actions import IncludeLaunchDescription, LogInfo
+from launch.launch_description_sources import PythonLaunchDescriptionSource
+from launch.substitutions import LaunchConfiguration
+from launch_ros.actions import Node
+
+DEFAULT_CONFIG_PATH = str(pathlib.Path(f"{get_package_share_directory('ros_to_livestream')}/config/settings.json"))
+
+
+def generate_launch_description() -> LaunchDescription:
+ with open(DEFAULT_CONFIG_PATH, "r") as config_file:
+ configuration = json.load(config_file)
+
+
+ # Define launch arguments that can be set from the command line using
+ # ":=". If no value is give, the default is used.
+ # configuration["message"] = LaunchConfiguration("message", default=configuration["message"])
+
+ # Create nodes
+ HSL_node = Node(
+ package="ros_to_livestream",
+ executable="HSL",
+ name="ros_to_livestream",
+ parameters=[configuration],
+ )
+
+ return LaunchDescription([
+ HSL_node,
+ ])
diff --git a/src/camera_snap_shot/package.xml b/src/ros_to_livestream/package.xml
similarity index 70%
rename from src/camera_snap_shot/package.xml
rename to src/ros_to_livestream/package.xml
index d315861..6860689 100644
--- a/src/camera_snap_shot/package.xml
+++ b/src/ros_to_livestream/package.xml
@@ -1,23 +1,23 @@
-
-
-
- camera_snap_shot
- 1.0.0
- ros_skeleton
- raymond houwing
- MIT License
-
- ament_index_python
- rclpy
- sensor_msgs
- cv_bridge
-
- ament_copyright
- ament_flake8
- ament_pep257
- python3-pytest
-
-
- ament_python
-
-
+
+
+
+ ros_to_livestream
+ 1.0.0
+ converts a livestream Ros topic to a HSL livestream
+ Raymond Houwing
+ MIT License
+
+ ament_index_python
+ rclpy
+ std_msgs
+ support
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
diff --git a/src/camera_livestream/camera_livestream/__init__.py b/src/ros_to_livestream/requirements.in
similarity index 100%
rename from src/camera_livestream/camera_livestream/__init__.py
rename to src/ros_to_livestream/requirements.in
diff --git a/src/camera_livestream/resource/camera_livestream b/src/ros_to_livestream/resource/ros_to_livestream
similarity index 100%
rename from src/camera_livestream/resource/camera_livestream
rename to src/ros_to_livestream/resource/ros_to_livestream
diff --git a/src/ros_to_livestream/ros_to_livestream/HSL.py b/src/ros_to_livestream/ros_to_livestream/HSL.py
new file mode 100644
index 0000000..11e90e0
--- /dev/null
+++ b/src/ros_to_livestream/ros_to_livestream/HSL.py
@@ -0,0 +1,91 @@
+"""Create an example subscriber.
+
+Create a node named "example_subscriber" and initialise a subscriber. The topic and
+queue_size of the subscriber are taken from their respective parameters. These
+parameters are passed in the launch file.
+
+A callback function is defined, which handles the incoming message.
+
+"""
+from __future__ import annotations
+from typing import Optional
+import subprocess
+import cv2
+import os
+import sys
+
+
+import rclpy
+from sensor_msgs.msg import Image
+from support.extended_node import ExtendedNode
+from cv_bridge import CvBridge
+import ffmpeg_streaming
+from ffmpeg_streaming import Formats, Bitrate, Representation, Size
+
+from . import PACKAGE_NAME
+
+
+class ExampleSubscriber(ExtendedNode):
+ def __init__(self):
+ super().__init__(PACKAGE_NAME)
+ base = self._get_parameter_value("topic_camera")
+ cam_id = self._get_parameter_value("camera_id")
+ livestream = self._get_parameter_value("topic_livestream")
+ topic: str = base + cam_id + livestream
+ self.framerate: int = self._get_parameter_value("framerate")
+ self.image_width: int = self._get_parameter_value("image_width")
+ self.image_height: int = self._get_parameter_value("image_height")
+
+ self.fourcc = cv2.VideoWriter_fourcc(*'mp4v')
+
+ self.first_time = True
+
+ self.get_logger().info(f"topic: {topic}")
+ queue_size: int = self._get_parameter_value("queue_size")
+ self.subscription = self.create_subscription(Image, topic, self.listener_callback, queue_size)
+ # self.create_ffmpeg_process(self.image_width,self.image_height)
+ self.bridge = CvBridge()
+ os.environ['DISPLAY']=':0' # for developing, this is needed to open up a window to show the local livestream
+ # self.setup_HSL_stream()
+
+
+
+ def listener_callback(self, msg: Image) -> None:
+ """Handle incoming message from subscription."""
+ # self.get_logger().info(f"I heard: {msg.data}")
+ frame = self.bridge.imgmsg_to_cv2(msg, "bgr8")
+ self.out = cv2.VideoWriter('livestream/output.mp4', self.fourcc, self.framerate, (self.image_width, self.image_height))
+ self.out.write(frame)
+ self.out.release()
+ cv2.imshow("frame", frame)
+ cv2.waitKey(1)
+ if self.first_time:
+ self.setup_HSL_stream()
+ self.first_time = False
+
+
+
+
+
+
+ def setup_HSL_stream(self):
+ video_file = "livestream/output.mp4"
+ video= ffmpeg_streaming.input(video_file, capture = True, framerate=self.framerate, vcodec="h264", acodec="aac")
+ hsl = video.hls(Formats.h264())
+ _720p = Representation(Size(720, 480), Bitrate(overall=497664))
+ hsl.representations(_720p)
+ hsl.output('livestream/hsl.m3u8')
+
+
+
+def main(args: Optional[list[str]] = None) -> None:
+ rclpy.init(args=args)
+ node = ExampleSubscriber()
+ rclpy.spin(node)
+
+ node.destroy_node()
+ rclpy.shutdown()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/ros_to_livestream/ros_to_livestream/__init__.py b/src/ros_to_livestream/ros_to_livestream/__init__.py
new file mode 100644
index 0000000..e2556c3
--- /dev/null
+++ b/src/ros_to_livestream/ros_to_livestream/__init__.py
@@ -0,0 +1 @@
+PACKAGE_NAME: str = "ros_skeleton"
diff --git a/src/ros_to_livestream/setup.cfg b/src/ros_to_livestream/setup.cfg
new file mode 100644
index 0000000..c1dc81b
--- /dev/null
+++ b/src/ros_to_livestream/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/ros_to_livestream
+[install]
+install_scripts=$base/lib/ros_to_livestream
diff --git a/src/camera_livestream/setup.py b/src/ros_to_livestream/setup.py
similarity index 95%
rename from src/camera_livestream/setup.py
rename to src/ros_to_livestream/setup.py
index 54b1395..78f55cd 100644
--- a/src/camera_livestream/setup.py
+++ b/src/ros_to_livestream/setup.py
@@ -4,6 +4,7 @@
def get_value_from_string(string: str, prefix: str, suffix: str):
+ """Get value from line of package.xml."""
value = ""
if string.startswith(prefix) and string.endswith(suffix):
value = string[len(prefix):][:-len(suffix)]
@@ -44,7 +45,7 @@ def get_value_from_string(string: str, prefix: str, suffix: str):
tests_require=['pytest'],
entry_points={
'console_scripts': [
- 'camera_livestream = camera_livestream.camera_livestream:main'
+ 'HSL = ros_to_livestream.HSL:main',
],
},
)
diff --git a/src/camera_livestream/package.xml b/src/support/package.xml
similarity index 72%
rename from src/camera_livestream/package.xml
rename to src/support/package.xml
index 9486978..01f687c 100644
--- a/src/camera_livestream/package.xml
+++ b/src/support/package.xml
@@ -1,16 +1,15 @@
- camera_livestream
+ support
1.0.0
- camera_livestream
- raymond houwing
+ Package containing supporting code for use in other ROS packages.
+ Wim-Peter Dirks
MIT License
ament_index_python
rclpy
- sensor_msgs
- cv_bridge
+ std_msgs
ament_copyright
ament_flake8
diff --git a/src/camera_snap_shot/__init__.py b/src/support/requirements.in
similarity index 100%
rename from src/camera_snap_shot/__init__.py
rename to src/support/requirements.in
diff --git a/src/camera_snap_shot/camera_snap_shot/__init__.py b/src/support/resource/support
similarity index 100%
rename from src/camera_snap_shot/camera_snap_shot/__init__.py
rename to src/support/resource/support
diff --git a/src/support/setup.cfg b/src/support/setup.cfg
new file mode 100644
index 0000000..ffbdd06
--- /dev/null
+++ b/src/support/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/support
+[install]
+install_scripts=$base/lib/support
diff --git a/src/camera_snap_shot/setup.py b/src/support/setup.py
similarity index 90%
rename from src/camera_snap_shot/setup.py
rename to src/support/setup.py
index c1d0a34..da60fed 100644
--- a/src/camera_snap_shot/setup.py
+++ b/src/support/setup.py
@@ -1,50 +1,49 @@
-from glob import glob
-from pathlib import Path
-from setuptools import setup
-
-
-def get_value_from_string(string: str, prefix: str, suffix: str):
- value = ""
- if string.startswith(prefix) and string.endswith(suffix):
- value = string[len(prefix):][:-len(suffix)]
- return value
-
-
-with open(Path(__file__).parent / 'package.xml', 'r') as xml_file:
- for line in xml_file.readlines():
- if line.startswith(' ') and line.endswith('\n'):
- package_name = get_value_from_string(line, ' ', '\n')
- elif line.startswith(' ') and line.endswith('\n'):
- version = get_value_from_string(line, ' ', '\n')
- elif line.startswith(' ') and line.endswith('\n'):
- description = get_value_from_string(line, ' ', '\n')
- elif line.startswith(' \n'):
- line = get_value_from_string(line, ' ')
- elif line.startswith(' ') and line.endswith('\n'):
- project_license = get_value_from_string(line, ' ', '\n')
-
-
-setup(
- name=package_name,
- version=version,
- packages=[package_name],
- data_files=[
- (str(Path('share/ament_index/resource_index/packages')), [str(Path(f'resource/{package_name}'))]),
- (str(Path(f'share/{package_name}/config')), glob(str(Path('config/*')))),
- (str(Path(f'share/{package_name}/launch')), glob(str(Path('launch/*.launch.py')))),
- (str(Path(f'share/{package_name}')), ['package.xml']),
- ],
- install_requires=['setuptools'],
- zip_safe=True,
- maintainer=maintainer,
- maintainer_email=maintainer_email,
- description=description,
- license=project_license,
- tests_require=['pytest'],
- entry_points={
- 'console_scripts': [
- 'take_snap_shot = camera_snap_shot.take_snap_shot:main'
- ],
- },
-)
+from glob import glob
+from pathlib import Path
+from setuptools import setup
+
+
+def get_value_from_string(string: str, prefix: str, suffix: str):
+ """Get value from line of package.xml."""
+ value = ""
+ if string.startswith(prefix) and string.endswith(suffix):
+ value = string[len(prefix):][:-len(suffix)]
+ return value
+
+
+with open(Path(__file__).parent / 'package.xml', 'r') as xml_file:
+ for line in xml_file.readlines():
+ if line.startswith(' ') and line.endswith('\n'):
+ package_name = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ version = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' ') and line.endswith('\n'):
+ description = get_value_from_string(line, ' ', '\n')
+ elif line.startswith(' \n'):
+ line = get_value_from_string(line, ' ')
+ elif line.startswith(' ') and line.endswith('\n'):
+ project_license = get_value_from_string(line, ' ', '\n')
+
+
+setup(
+ name=package_name,
+ version=version,
+ packages=[package_name],
+ data_files=[
+ (str(Path('share/ament_index/resource_index/packages')), [str(Path(f'resource/{package_name}'))]),
+ (str(Path(f'share/{package_name}/launch')), glob(str(Path('launch/*.launch.py')))),
+ (str(Path(f'share/{package_name}')), ['package.xml']),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer=maintainer,
+ maintainer_email=maintainer_email,
+ description=description,
+ license=project_license,
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ ],
+ },
+)
diff --git a/src/support/support/__init__.py b/src/support/support/__init__.py
new file mode 100644
index 0000000..e2556c3
--- /dev/null
+++ b/src/support/support/__init__.py
@@ -0,0 +1 @@
+PACKAGE_NAME: str = "ros_skeleton"
diff --git a/src/support/support/extended_node.py b/src/support/support/extended_node.py
new file mode 100644
index 0000000..b87dc85
--- /dev/null
+++ b/src/support/support/extended_node.py
@@ -0,0 +1,32 @@
+"""Extend the standard ROS2 Node to improve ease-of-use.
+
+The ExtendedNode-class adds a _extract_parameter_value()-method, which can be
+used to easily extract the value of a parameter.
+
+"""
+from typing import Any
+
+from rclpy.node import Node
+from rclpy.parameter import Parameter
+
+
+class ExtendedNode(Node):
+ def __init__(self, package_name: str):
+ super().__init__(package_name)
+
+ def _get_parameter_value(self, parameter_name: str) -> Any:
+ """Return the value of a parameter.
+
+ Raises a ValueError if a parameter cannot be found.
+
+ """
+ if not self.has_parameter(parameter_name):
+ self.declare_parameter(parameter_name)
+
+ parameter = self.get_parameter(parameter_name)
+ parameter_value = parameter.value
+
+ if parameter.type_ == Parameter.Type.NOT_SET:
+ raise ValueError(f"parameter '{parameter_name}' is not set")
+
+ return parameter_value
diff --git a/src/support/support/rclpy_mixin.py b/src/support/support/rclpy_mixin.py
new file mode 100644
index 0000000..5c2910e
--- /dev/null
+++ b/src/support/support/rclpy_mixin.py
@@ -0,0 +1,11 @@
+import rclpy
+
+
+class RclpyMixin:
+ @staticmethod
+ def setup_method():
+ rclpy.init()
+
+ @staticmethod
+ def teardown_method():
+ rclpy.shutdown()
diff --git a/src/ros2_csi_camera_publish/ros2_csi_camera_publish/__init__.py b/src/support/test/__init__.py
similarity index 100%
rename from src/ros2_csi_camera_publish/ros2_csi_camera_publish/__init__.py
rename to src/support/test/__init__.py
diff --git a/src/support/test/test_extended_node.py b/src/support/test/test_extended_node.py
new file mode 100644
index 0000000..1fe9291
--- /dev/null
+++ b/src/support/test/test_extended_node.py
@@ -0,0 +1,28 @@
+import pytest
+from rclpy.node import Node
+
+from support.extended_node import ExtendedNode
+from support.rclpy_mixin import RclpyMixin
+
+
+def test_extended_node_extends_rclpy_node():
+ assert issubclass(ExtendedNode, Node)
+
+
+class TestGetParameterValue(RclpyMixin):
+ def test_extracts_value_if_parameter_exists(self):
+ parameter_name = "name"
+ parameter_value = "value"
+ node = ExtendedNode("package_name")
+ node.declare_parameter(parameter_name, parameter_value)
+
+ actual_value = node._get_parameter_value(parameter_name)
+
+ assert actual_value == parameter_value
+
+ def test_raises_value_error_if_parameter_not_found(self):
+ parameter_name = "name"
+ node = ExtendedNode("package_name")
+
+ with pytest.raises(ValueError):
+ node._get_parameter_value(parameter_name)
From 42551c5fa85c96f40837c03199147a1ff818e054 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Fri, 12 May 2023 11:38:26 +0200
Subject: [PATCH 13/16] black & docstrings
---
.gitignore | 5 +-
FastAPI/hosting_server.py | 4 +-
src/camera_capture/camera_capture/__init__.py | 1 +
.../camera_capture/camera_capture.py | 186 +++++++++++-------
src/ros_to_livestream/config/settings.yaml | 1 -
.../ros_to_livestream/HSL.py | 44 +++--
.../ros_to_livestream/__init__.py | 2 +-
7 files changed, 141 insertions(+), 102 deletions(-)
diff --git a/.gitignore b/.gitignore
index 7ab509b..09b75ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,5 +65,8 @@ About
/venv/
/.idea/
+.vscode/
log/
-install/
\ No newline at end of file
+install/
+livestream/
+snapshot_files/
diff --git a/FastAPI/hosting_server.py b/FastAPI/hosting_server.py
index a8b8177..1a9575f 100644
--- a/FastAPI/hosting_server.py
+++ b/FastAPI/hosting_server.py
@@ -8,5 +8,5 @@ async def main():
def iter_file():
with open("livestream/output.mp4", mode="rb") as stream_file:
yield from stream_file
- # return StreamingResponse(iter_file(), media_type='text/event-stream')
- return StreamingResponse(iter_file(), media_type='video/mp4')
\ No newline at end of file
+ return StreamingResponse(iter_file(), media_type='text/event-stream')
+ # return StreamingResponse(iter_file(), media_type='video/mp4')
\ No newline at end of file
diff --git a/src/camera_capture/camera_capture/__init__.py b/src/camera_capture/camera_capture/__init__.py
index e69de29..90a49ce 100644
--- a/src/camera_capture/camera_capture/__init__.py
+++ b/src/camera_capture/camera_capture/__init__.py
@@ -0,0 +1 @@
+PACKAGE_NAME: str = "camera_capture"
\ No newline at end of file
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index 68d821f..70cca9d 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -22,17 +22,23 @@
from cv_bridge import CvBridge
import ffmpeg_streaming
import subprocess
+from . import PACKAGE_NAME
# ___Global Variables:
-SETTINGS = os.path.join(get_package_share_directory('camera_capture'), "config/camera_capture_settings.json")
+SETTINGS = os.path.join(
+ get_package_share_directory("camera_capture"), "config/camera_capture_settings.json"
+)
with open(SETTINGS) as fp:
json_settings = json.load(fp)
+
# __Functions:
-def gstreamer_pipeline(capture_width=str(json_settings["capture_width_livestream"]),
- capture_height=str(json_settings["capture_width_livestream"]),
- framerate=str(json_settings["framerate"])):
+def gstreamer_pipeline(
+ capture_width: str = str(json_settings["capture_width_livestream"]),
+ capture_height: str = str(json_settings["capture_width_livestream"]),
+ framerate: str = str(json_settings["framerate"]),
+):
return (
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), "
@@ -48,129 +54,157 @@ def gstreamer_pipeline(capture_width=str(json_settings["capture_width_livestream
# __Classes:
class CameraPublisher(Node):
- """Camera Publisher Class.
- This class contains all methods to publish csi camera data as
- sensor_msgs.msg/Image format.
-
- """
+ """this class captures immages from a CSI camera and publishes it as a livestream or snapshots to a topic"""
- def __init__(self,
- publish_livestream_topic:str,
- publish_snapshot_topic:str,
- snapshot_trigger_topic:str,
- livestream_state_topic:str
- ):
- super().__init__('camera_publisher')
+ def __init__(
+ self,
+ publish_livestream_topic: str,
+ publish_snapshot_topic: str,
+ snapshot_trigger_topic: str,
+ livestream_state_topic: str,
+ ):
+ super().__init__(PACKAGE_NAME)
# initialize publisher & subscirbers
self.pub_cam_snapshot = self.create_publisher(Image, publish_snapshot_topic, 1)
- self.pub_cam_livestream = self.create_publisher(Image, publish_livestream_topic, 1)
- self.sub_cam_livestream_state = self.create_subscription(Bool, livestream_state_topic, self.start_livestream_callback, 1)
- self.sub_cam_snapshot_trigger = self.create_subscription(Bool, snapshot_trigger_topic, self.capture_snapshot_callback, 1)
+ self.pub_cam_livestream = self.create_publisher(
+ Image, publish_livestream_topic, 1
+ )
+ self.sub_cam_livestream_state = self.create_subscription(
+ Bool, livestream_state_topic, self.start_livestream_callback, 1
+ )
+ self.sub_cam_snapshot_trigger = self.create_subscription(
+ Bool, snapshot_trigger_topic, self.capture_snapshot_callback, 1
+ )
self.cap = cv2.VideoCapture(gstreamer_pipeline())
self.bridge = CvBridge()
self.image_location = f"{json_settings['image_location']}"
+ self.image_counter = 0
- # set image counter
- self.image_number = 0
+ def start_livestream_callback(self, topic_msg: Bool):
+ """This method starts a livestream when a message is received on the topic livestream/state
- def start_livestream_callback(self, topic_msg):
- """Timer Callback Function
-
- This method starts a livestream
-
+ Args:
+ topic_msg (Bool): True for starting livestream, False for stopping livestream
"""
- self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"])
- self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"])
- self._logger.info(f'message received on topic livestream \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
+ self.cap.set(
+ cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"]
+ )
+ self.cap.set(
+ cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"]
+ )
+ self.get_logger().info(f"message received on topic livestream")
+ self.get_logger().debug(
+ f"Incomming message on topic livestream \nwith message: {topic_msg}"
+ )
timer_period = 0.03 # seconds TODO: make into settings 30hz
if self.cap.isOpened():
- self.get_logger().info('camera is available')
- if topic_msg.data == True:
- self._logger.info('starting livestream')
- self.timer = self.create_timer(timer_period, self.timer_callback)
- elif topic_msg.data == False:
- self._logger.info('stopping livestream')
- self.timer.cancel()
- self.timer.destroy()
- else:
- self.get_logger().info('camera not available')
+ self.get_logger().info("camera is available")
+ if topic_msg.data:
+ self.get_logger().info("starting livestream")
+ timer = self.create_timer(timer_period, self.timer_callback)
+ elif not topic_msg.data and timer.is_active():
+ self.get_logger().info("stopping livestream")
+ timer.cancel()
+ timer.destroy()
+ else:
+ self.get_logger().debug(
+ "can't stop livestream because livestream is already stopped"
+ )
+ elif not self.cap.isOpened():
+ self.get_logger().info("camera not available")
def timer_callback(self):
+ """callback function to read image data from camera and publish it to the topic of the livestream"""
ret, frame = self.cap.read()
- # cv2.imshow("Video Frame", frame)
msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
self.pub_cam_livestream.publish(msg_image)
- def capture_snapshot_callback(self, topic_msg):
- """Timer Callback Function
-
- This method captures images, publishes required data in ros 2 topic and saves it to a folder.
-
+ def capture_snapshot_callback(self, topic_msg: Bool):
+ """Captures images when a True is received on the snapshot topic and publishes the immage on a topic.
+
+ Args:
+ topic_msg (Bool): True for capturing snapshot, False is not used.
"""
- self.get_logger().info(f'message received on topic snapshot \nwith message: {topic_msg}\nwith data :{topic_msg.data}')
- self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_snapshot"])
+ self.get_logger().info(
+ f"message received on topic snapshot \nwith message: {topic_msg}\nwith data :{topic_msg.data}"
+ )
+ self.cap.set(
+ cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_snapshot"]
+ )
self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_snapshot"])
if self.cap.isOpened():
-
# reads image data
ret, frame = self.cap.read()
print(type(frame))
msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
- msg_image.header.frame_id = str(self.image_number)
+ msg_image.header.frame_id = str(self.image_counter)
# saves image to folder
- cv2.imwrite(f"{self.image_location}/image{self.image_number}.jpg", frame)
- self.get_logger().info(f'image saved at image{self.image_number}.jpg')
- #post camera snapshot on topic
+ cv2.imwrite(f"{self.image_location}/image{self.image_counter}.jpg", frame)
+ self.get_logger().info(f"image saved at image{self.image_counter}.jpg")
+ # post camera snapshot on topic
self.pub_cam_snapshot.publish(msg_image)
# self.cap.release()
- self.image_number += 1
+ self.image_counter += 1
# keep max 5 files
- prevent_overflood_image(self.image_number)
+ prevent_overflood_image(self.image_counter)
else:
- self.get_logger().info('camera not available')
- self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"])
- self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"])
+ self.get_logger().info("camera not available")
+ self.cap.set(
+ cv2.CAP_PROP_FRAME_HEIGHT, json_settings["capture_height_livestream"]
+ )
+ self.cap.set(
+ cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_livestream"]
+ )
-def prevent_overflood_image(img_number):
- if img_number >4:
+def prevent_overflood_image(img_number: int):
+ """makes sure that there are only 5 images in the image folder
+
+ Args:
+ img_number (int): current number of latest image published
+ """
+ if img_number > 4:
item_to_delete = f"{json_settings['image_location']}/image{img_number-5}.jpg"
if os.path.exists(item_to_delete):
os.remove(item_to_delete)
-
# ___Main Method:
def main(args=None):
"""
- This is the Main Method.
-
+ This is the Main Method that spins the node and starts the camera publisher.
"""
# initializes node and start publishing
- cam_0_topic = json_settings['publish_topic_camera']+json_settings['camera_id']
- livestream_state_topic = cam_0_topic + json_settings['publish_topic_livestream']+json_settings['trigger_topic_livestream']
- snapshot_trigger_topic = cam_0_topic + json_settings['publish_topic_snapshot']+json_settings['trigger_topic_snapshot']
- publish_livestream_topic = cam_0_topic + json_settings['publish_topic_livestream']
- publish_snapshot_topic = cam_0_topic + json_settings['publish_topic_snapshot']
+ cam_0_base = json_settings["publish_topic_camera"] + json_settings["camera_id"]
+ livestream_state_topic = (
+ json_settings["publish_topic_livestream"]
+ + json_settings["trigger_topic_livestream"]
+ )
+ snapshot_trigger_topic = (
+ json_settings["publish_topic_snapshot"]
+ + json_settings["trigger_topic_snapshot"]
+ )
+ publish_livestream_topic = json_settings["publish_topic_livestream"]
+ publish_snapshot_topic = json_settings["publish_topic_snapshot"]
rclpy.init(args=args)
- camera_publisher = CameraPublisher(
- livestream_state_topic=livestream_state_topic,
- snapshot_trigger_topic=snapshot_trigger_topic,
- publish_livestream_topic=publish_livestream_topic,
- publish_snapshot_topic=publish_snapshot_topic,
- )
- rclpy.spin(camera_publisher)
+ camera_0 = CameraPublisher(
+ livestream_state_topic=cam_0_base + livestream_state_topic,
+ snapshot_trigger_topic=cam_0_base + snapshot_trigger_topic,
+ publish_livestream_topic=cam_0_base + publish_livestream_topic,
+ publish_snapshot_topic=cam_0_base + publish_snapshot_topic,
+ )
+ rclpy.spin(camera_0)
# shuts down nose and releases everything
- camera_publisher.destroy_node()
+ camera_0.destroy_node()
rclpy.shutdown()
return None
# ___Driver Program:
-if __name__ == '__main__':
+if __name__ == "__main__":
main()
diff --git a/src/ros_to_livestream/config/settings.yaml b/src/ros_to_livestream/config/settings.yaml
index a26df91..38d0912 100644
--- a/src/ros_to_livestream/config/settings.yaml
+++ b/src/ros_to_livestream/config/settings.yaml
@@ -1,4 +1,3 @@
-
livestream_topic:
base: "/camera"
camera_id:
diff --git a/src/ros_to_livestream/ros_to_livestream/HSL.py b/src/ros_to_livestream/ros_to_livestream/HSL.py
index 11e90e0..4c0e9d2 100644
--- a/src/ros_to_livestream/ros_to_livestream/HSL.py
+++ b/src/ros_to_livestream/ros_to_livestream/HSL.py
@@ -36,46 +36,48 @@ def __init__(self):
self.image_width: int = self._get_parameter_value("image_width")
self.image_height: int = self._get_parameter_value("image_height")
- self.fourcc = cv2.VideoWriter_fourcc(*'mp4v')
-
+ self.fourcc = cv2.VideoWriter_fourcc(*"mp4v")
+
self.first_time = True
self.get_logger().info(f"topic: {topic}")
queue_size: int = self._get_parameter_value("queue_size")
- self.subscription = self.create_subscription(Image, topic, self.listener_callback, queue_size)
- # self.create_ffmpeg_process(self.image_width,self.image_height)
+ self.subscription = self.create_subscription(
+ Image, topic, self.listener_callback, queue_size
+ )
self.bridge = CvBridge()
- os.environ['DISPLAY']=':0' # for developing, this is needed to open up a window to show the local livestream
- # self.setup_HSL_stream()
-
-
+ # os.environ['DISPLAY']=':0'
def listener_callback(self, msg: Image) -> None:
"""Handle incoming message from subscription."""
- # self.get_logger().info(f"I heard: {msg.data}")
frame = self.bridge.imgmsg_to_cv2(msg, "bgr8")
- self.out = cv2.VideoWriter('livestream/output.mp4', self.fourcc, self.framerate, (self.image_width, self.image_height))
+ self.out = cv2.VideoWriter(
+ "livestream/output.mp4",
+ self.fourcc,
+ self.framerate,
+ (self.image_width, self.image_height),
+ )
self.out.write(frame)
self.out.release()
- cv2.imshow("frame", frame)
- cv2.waitKey(1)
+ # cv2.imshow("frame", frame)
+ # cv2.waitKey(1)
if self.first_time:
self.setup_HSL_stream()
self.first_time = False
-
-
-
-
-
def setup_HSL_stream(self):
video_file = "livestream/output.mp4"
- video= ffmpeg_streaming.input(video_file, capture = True, framerate=self.framerate, vcodec="h264", acodec="aac")
+ video = ffmpeg_streaming.input(
+ video_file,
+ capture=True,
+ framerate=self.framerate,
+ vcodec="h264",
+ acodec="aac",
+ )
hsl = video.hls(Formats.h264())
- _720p = Representation(Size(720, 480), Bitrate(overall=497664))
+ _720p = Representation(Size(720, 480), Bitrate(overall=497664))
hsl.representations(_720p)
- hsl.output('livestream/hsl.m3u8')
-
+ hsl.output("livestream/hsl.m3u8")
def main(args: Optional[list[str]] = None) -> None:
diff --git a/src/ros_to_livestream/ros_to_livestream/__init__.py b/src/ros_to_livestream/ros_to_livestream/__init__.py
index e2556c3..469404c 100644
--- a/src/ros_to_livestream/ros_to_livestream/__init__.py
+++ b/src/ros_to_livestream/ros_to_livestream/__init__.py
@@ -1 +1 @@
-PACKAGE_NAME: str = "ros_skeleton"
+PACKAGE_NAME: str = "ros_to_livestream"
From 8fa7674ea60d247f7e560e1e5cb3719479afd7d3 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Fri, 12 May 2023 15:09:24 +0200
Subject: [PATCH 14/16] removed old nodes, plus timer error in camera_capture
---
.gitignore | 9 ++--
.../camera_capture/camera_capture.py | 15 +++---
src/robot_app/launch/gamepad_launch.py | 52 ++++---------------
3 files changed, 22 insertions(+), 54 deletions(-)
diff --git a/.gitignore b/.gitignore
index 09b75ae..96dcb8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,10 @@ logs/
build/
bin/
lib/
+log/
+install/
+livestream/
+snapshot_files/
msg_gen/
srv_gen/
msg/*Action.msg
@@ -66,7 +70,4 @@ About
/venv/
/.idea/
.vscode/
-log/
-install/
-livestream/
-snapshot_files/
+
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index 70cca9d..9d2e06c 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -104,10 +104,13 @@ def start_livestream_callback(self, topic_msg: Bool):
if topic_msg.data:
self.get_logger().info("starting livestream")
timer = self.create_timer(timer_period, self.timer_callback)
- elif not topic_msg.data and timer.is_active():
+ elif not topic_msg.data:
self.get_logger().info("stopping livestream")
- timer.cancel()
- timer.destroy()
+ try:
+ timer.cancel()
+ timer.destroy()
+ except UnboundLocalError:
+ self.get_logger().error("timer was is not defined)")
else:
self.get_logger().debug(
"can't stop livestream because livestream is already stopped"
@@ -135,20 +138,14 @@ def capture_snapshot_callback(self, topic_msg: Bool):
)
self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, json_settings["capture_width_snapshot"])
if self.cap.isOpened():
- # reads image data
ret, frame = self.cap.read()
print(type(frame))
msg_image = self.bridge.cv2_to_imgmsg(np.array(frame), "bgr8")
msg_image.header.frame_id = str(self.image_counter)
- # saves image to folder
cv2.imwrite(f"{self.image_location}/image{self.image_counter}.jpg", frame)
self.get_logger().info(f"image saved at image{self.image_counter}.jpg")
- # post camera snapshot on topic
self.pub_cam_snapshot.publish(msg_image)
-
- # self.cap.release()
self.image_counter += 1
- # keep max 5 files
prevent_overflood_image(self.image_counter)
else:
self.get_logger().info("camera not available")
diff --git a/src/robot_app/launch/gamepad_launch.py b/src/robot_app/launch/gamepad_launch.py
index c7235b0..cfbec10 100644
--- a/src/robot_app/launch/gamepad_launch.py
+++ b/src/robot_app/launch/gamepad_launch.py
@@ -34,8 +34,6 @@ def generate_launch_description():
# Create launch configuration variables
gamepad_type = LaunchConfiguration('gamepad_type')
robot_type = LaunchConfiguration('robot_type')
- # cam2image = LaunchConfiguration('cam2image')
- # csijetson = LaunchConfiguration('csijetson')
# Declare the launch arguments
@@ -54,23 +52,13 @@ def generate_launch_description():
'robot_type',
default_value='jetbot',
description='Type of Robot to drive.')
-
- # declare_cam2image_cmd = DeclareLaunchArgument(
- # 'cam2image',
- # default_value='False',
- # description='Execute cam2image or not.')
-
- # declare_csijetson_cmd = DeclareLaunchArgument(
- # 'csijetson',
- # default_value='True',
- # description='Using CSI camera on Jetson Nano or not.')
# Specify the actions
- livestream_mode_cmd = Node(
- condition = LaunchConfigurationEquals('robot_mode', 'livestream'),
- package = 'camera_capture',
- executable = 'camera_capture',
- name = 'camera_capture')
+ # livestream_mode_cmd = Node(
+ # condition = LaunchConfigurationEquals('robot_mode', 'livestream'),
+ # package = 'camera_capture',
+ # executable = 'camera_capture',
+ # name = 'camera_capture')
# Include other launch files
HSL_launch = IncludeLaunchDescription(
@@ -78,12 +66,11 @@ def generate_launch_description():
str(pathlib.Path(f"{get_package_share_directory('ros_to_livestream')}/launch/HSL.launch.py"))
),
)
-
- # snapshot_mode_cmd = Node(
- # condition = LaunchConfigurationEquals('robot_mode', 'snapshot'),
- # package = 'camera_snap_shot',
- # executable = 'take_snap_shot',
- # name = 'camera_snap_shot')
+ camera_capture = IncludeLaunchDescription(
+ PythonLaunchDescriptionSource(
+ str(pathlib.Path(f"{get_package_share_directory('camera_capture')}/launch/camera_capture.launch.py"))
+ ),
+ )
gamepad_to_twist_cmd = Node(
package = 'ros2_gamepad_to_twist_message',
@@ -94,18 +81,6 @@ def generate_launch_description():
package = 'ros2_twist_message_to_robot_motion',
executable = robot_type,
name='twist_to_robot_motion')
-
- # cam2image_cmd = Node(
- # condition=IfCondition(cam2image),
- # package = 'image_tools',
- # executable = 'cam2image',
- # name='cam2image')
-
- # csijetson_cmd = Node(
- # condition=IfCondition(csijetson),
- # package = 'ros2_csi_camera_publish',
- # executable = 'jetson',
- # name='csi_camera_publish')
# Create the launch description and populate
@@ -115,17 +90,12 @@ def generate_launch_description():
ld.add_action(declare_gamepad_type_cmd)
ld.add_action(declare_robot_mode_cmd)
ld.add_action(declare_robot_type_cmd)
- # ld.add_action(declare_cam2image_cmd)
- # ld.add_action(declare_csijetson_cmd)
# Add all actions
ld.add_action(gamepad_to_twist_cmd)
- ld.add_action(livestream_mode_cmd)
+ ld.add_action(camera_capture)
ld.add_action(HSL_launch)
- # ld.add_action(snapshot_mode_cmd)
ld.add_action(twist_to_motion_cmd)
- # ld.add_action(cam2image_cmd)
- # ld.add_action(csijetson_cmd)
return ld
From 2676a466ed3274207484820a6ca9491a6088de56 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Fri, 12 May 2023 15:10:19 +0200
Subject: [PATCH 15/16] removed comments (forgot to it do )
---
src/robot_app/launch/gamepad_launch.py | 7 -------
1 file changed, 7 deletions(-)
diff --git a/src/robot_app/launch/gamepad_launch.py b/src/robot_app/launch/gamepad_launch.py
index cfbec10..dfa00ad 100644
--- a/src/robot_app/launch/gamepad_launch.py
+++ b/src/robot_app/launch/gamepad_launch.py
@@ -53,13 +53,6 @@ def generate_launch_description():
default_value='jetbot',
description='Type of Robot to drive.')
- # Specify the actions
- # livestream_mode_cmd = Node(
- # condition = LaunchConfigurationEquals('robot_mode', 'livestream'),
- # package = 'camera_capture',
- # executable = 'camera_capture',
- # name = 'camera_capture')
-
# Include other launch files
HSL_launch = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
From f44af8ecb42a29efa22904990c5219e0b5cf88b5 Mon Sep 17 00:00:00 2001
From: Raytesnel
Date: Mon, 15 May 2023 10:49:03 +0200
Subject: [PATCH 16/16] two times witdth instead of witdth +height
---
src/camera_capture/camera_capture/camera_capture.py | 5 ++---
src/camera_capture/requiremenst.in | 1 +
src/ros_to_livestream/requirements.in | 1 +
3 files changed, 4 insertions(+), 3 deletions(-)
create mode 100644 src/camera_capture/requiremenst.in
diff --git a/src/camera_capture/camera_capture/camera_capture.py b/src/camera_capture/camera_capture/camera_capture.py
index 9d2e06c..34f2e0b 100644
--- a/src/camera_capture/camera_capture/camera_capture.py
+++ b/src/camera_capture/camera_capture/camera_capture.py
@@ -20,8 +20,7 @@
from ament_index_python.packages import get_package_share_directory
from std_msgs.msg import Bool
from cv_bridge import CvBridge
-import ffmpeg_streaming
-import subprocess
+
from . import PACKAGE_NAME
@@ -36,7 +35,7 @@
# __Functions:
def gstreamer_pipeline(
capture_width: str = str(json_settings["capture_width_livestream"]),
- capture_height: str = str(json_settings["capture_width_livestream"]),
+ capture_height: str = str(json_settings["capture_height_livestream"]),
framerate: str = str(json_settings["framerate"]),
):
return (
diff --git a/src/camera_capture/requiremenst.in b/src/camera_capture/requiremenst.in
new file mode 100644
index 0000000..56ebbf2
--- /dev/null
+++ b/src/camera_capture/requiremenst.in
@@ -0,0 +1 @@
+pip install ffmpeg-python
diff --git a/src/ros_to_livestream/requirements.in b/src/ros_to_livestream/requirements.in
index e69de29..861bacc 100644
--- a/src/ros_to_livestream/requirements.in
+++ b/src/ros_to_livestream/requirements.in
@@ -0,0 +1 @@
+pip install python-ffmpeg-video-streaming