diff --git a/build/camera_module/build/lib/camera_module/camera_module.py b/build/camera_module/build/lib/camera_module/camera_module.py index bb81bb6..a4a1bfa 100644 --- a/build/camera_module/build/lib/camera_module/camera_module.py +++ b/build/camera_module/build/lib/camera_module/camera_module.py @@ -2,22 +2,35 @@ from ament_index_python.packages import get_package_share_directory import os import cv2 +import numpy as np +from math import ceil +from itertools import product +from rknnlite.api import RKNNLite from sensor_msgs.msg import CompressedImage from cv_bridge import CvBridge - +import time from camera_module.threaded_node import ThreadedNode +from sensor_msgs.msg import CompressedImage from std_msgs.msg import String import rclpy +from ament_index_python.packages import get_package_share_directory +import os + +package_name = 'camera_module' +model_path = os.path.join(get_package_share_directory(package_name), 'resource', 'model', 'RetinaFace.rknn') class CamPublisher(ThreadedNode): def __init__(self, rknn, cap): super().__init__('camera_module', default_rate=5.0) - self.string_pub = self.create_publisher(String, 'camera_module/cam_topic', 10) - self.image_pub = self.create_publisher(CompressedImage, 'camera_module/compressed', 10) + #self.string_pub = self.create_publisher(String, 'camera_module/cam_topic', 10) + #self.image_pub = self.create_publisher(CompressedImage, 'camera_module/compressed', 10) + self.face_detect_pub = self.create_publisher(String, 'camera_module/face_data', 10) + self.face_image_pub = self.create_publisher(CompressedImage, 'camera_module/face_images', 10) + self.face_detect_frame_pub = self.create_publisher(CompressedImage, 'camera_module/face_detect_frame', 10) self.rknn = rknn self.cap = cap self.latest_frame = None @@ -40,10 +53,10 @@ class CamPublisher(ThreadedNode): def on_tick(self): # Publish string message - msg = String() - msg.data = 'Cam from ROS 2!' - self.string_pub.publish(msg) - self.get_logger().info(f'Published: {msg.data}') + # msg = String() + # msg.data = 'Cam from ROS 2!' + # self.string_pub.publish(msg) + # self.get_logger().info(f'Published: {msg.data}') # Capture and publish image if self.cap is None: @@ -53,8 +66,10 @@ class CamPublisher(ThreadedNode): ret, frame = cap.read() if not ret: return + raw_frame = frame.copy() + img_height, img_width, _ = frame.shape - letterbox_img, aspect_ratio, offset_x, offset_y = letterbox_resize(frame, model_size, 114) + letterbox_img, aspect_ratio, offset_x, offset_y = letterbox_resize(frame, self.model_size, 114) infer_img = np.expand_dims(letterbox_img.astype(np.uint8), axis=0) outputs = rknn.inference(inputs=[infer_img]) @@ -62,14 +77,14 @@ class CamPublisher(ThreadedNode): return loc, conf, landms = outputs - boxes = box_decode(loc.squeeze(0), priors) - boxes *= np.array([model_size[1], model_size[0], model_size[1], model_size[0]]) + boxes = box_decode(loc.squeeze(0), self.priors) + boxes *= np.array([self.model_size[1], self.model_size[0], self.model_size[1], self.model_size[0]]) boxes[:, 0::2] = np.clip((boxes[:, 0::2] - offset_x) / aspect_ratio, 0, img_width) boxes[:, 1::2] = np.clip((boxes[:, 1::2] - offset_y) / aspect_ratio, 0, img_height) scores = conf.squeeze(0)[:, 1] - landms = decode_landm(landms.squeeze(0), priors) - landms *= np.tile(np.array([model_size[1], model_size[0]]), 5) + landms = decode_landm(landms.squeeze(0), self.priors) + landms *= np.tile(np.array([self.model_size[1], self.model_size[0]]), 5) landms[:, 0::2] = np.clip((landms[:, 0::2] - offset_x) / aspect_ratio, 0, img_width) landms[:, 1::2] = np.clip((landms[:, 1::2] - offset_y) / aspect_ratio, 0, img_height) @@ -85,6 +100,10 @@ class CamPublisher(ThreadedNode): face_data = [] frame_center = np.array([img_width / 2, img_height / 2]) + face_data = [] + valid_dets = [] + valid_landms = [] + for data, landmark in zip(dets, landms): if data[4] < 0.6: continue @@ -100,20 +119,59 @@ class CamPublisher(ThreadedNode): "y": float(offset[1]) } }) + valid_dets.append(data) + valid_landms.append(landmark) + + + for data, landmark in zip(valid_dets, valid_landms): + x1, y1, x2, y2 = map(int, data[:4]) + conf = data[4] cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), 2) cv2.putText(frame, f'{conf:.4f}', (x1, y1 + 12), cv2.FONT_HERSHEY_DUPLEX, 0.5, (255, 255, 255)) for j in range(5): lx, ly = map(int, landmark[j*2:j*2+2]) cv2.circle(frame, (lx, ly), 1, (0, 255, 255), 2) - cv2.putText(frame, f'FPS: {fps:.2f}', (10, 30), - cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) + # cv2.putText(frame, f'FPS: {fps:.2f}', (10, 30), + # cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) if len(face_data) > 0: print(face_data) + self.face_detect_pub.publish(String(data=str(face_data))) + + # CROP FACES AND PUBLISH STITCHED IMAGE + face_crops = [] + for data in dets: + if data[4] < 0.6: + continue + x1, y1, x2, y2 = map(int, data[:4]) + face_crop = raw_frame[y1:y2, x1:x2] + face_crops.append(face_crop) + target_height = 100 + resized_faces = [ + cv2.resize(face, (int(face.shape[1] * target_height / face.shape[0]), target_height)) + for face in face_crops + ] + if resized_faces: + stitched = cv2.hconcat(resized_faces) + ret, stitched_buffer = cv2.imencode('.jpg', stitched) + if ret: + msg = CompressedImage() + msg.header.stamp = self.get_clock().now().to_msg() + msg.format = 'jpeg' + msg.data = stitched_buffer.tobytes() + self.face_image_pub.publish(msg) + + + ret, buffer = cv2.imencode('.jpg', frame) if ret: latest_frame = buffer.tobytes() latest_faces = face_data + msg = CompressedImage() + msg.header.stamp = self.get_clock().now().to_msg() + msg.format = 'jpeg' + msg.data = buffer.tobytes() + self.face_detect_frame_pub.publish(msg) def destroy_node(self): if self.cap: @@ -194,7 +252,7 @@ def nms(dets, thresh): # --- RKNN Initialization --- rknn = RKNNLite() -rknn.load_rknn('./RetinaFace.rknn') +rknn.load_rknn(model_path) rknn.init_runtime() # --- Shared State --- diff --git a/build/camera_module/prefix_override/__pycache__/sitecustomize.cpython-312.pyc b/build/camera_module/prefix_override/__pycache__/sitecustomize.cpython-312.pyc index 32cecdc..bc8744f 100644 Binary files a/build/camera_module/prefix_override/__pycache__/sitecustomize.cpython-312.pyc and b/build/camera_module/prefix_override/__pycache__/sitecustomize.cpython-312.pyc differ diff --git a/log/build_2025-11-09_19-38-47/camera_module/stderr.log b/build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py similarity index 100% rename from log/build_2025-11-09_19-38-47/camera_module/stderr.log rename to build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py diff --git a/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py b/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py new file mode 100644 index 0000000..d3abe01 --- /dev/null +++ b/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py @@ -0,0 +1,115 @@ +# threaded_node.py +import rclpy +from rclpy.node import Node +from rclpy.parameter import Parameter +from rcl_interfaces.msg import SetParametersResult, ParameterEvent +from std_msgs.msg import Bool, Float32 + +import time +import threading +import queue +from collections import deque + +class ThreadedNode(Node): + def __init__(self, name: str, default_rate: float = 1.0): + super().__init__(name) + + # Declare and initialize publish_rate + self.declare_parameter('publish_rate', default_rate) + self.publish_rate = self.get_parameter('publish_rate').get_parameter_value().double_value + + # Heartbeat publisher + self.heartbeat_pub = self.create_publisher(Bool, f'{name}/heartbeat', 1) + self.heartbeat_timer = self.create_timer(1.0, self.send_heartbeat) + + # Actual FPS publisher + self.fps_pub = self.create_publisher(Float32, f'{name}/fps', 1) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + # Work timer + self.timer = self.create_timer(1.0 / self.publish_rate, self.timer_callback) + + # Parameter update hooks + self.add_on_set_parameters_callback(self.param_callback) + self.create_subscription(ParameterEvent, '/parameter_events', self.parameter_event_listener, 10) + + self.setup_parameters() + self.setup_topics() + + # Worker thread setup + self.task_queue = queue.Queue() + self.worker_thread = threading.Thread(target=self.worker_loop, daemon=True) + self.worker_thread.start() + + def setup_parameters(self): + pass + + def setup_topics(self): + pass + + def send_heartbeat(self): + self.heartbeat_pub.publish(Bool(data=True)) + + def timer_callback(self): + if self.task_queue.empty(): + self.task_queue.put_nowait('tick') + + + def worker_loop(self): + while rclpy.ok(): + try: + task = self.task_queue.get(timeout=1.0) + if task == 'tick': + now = time.time() + self._tick_times.append(now) + + # Call the subclass's tick logic + try: + self.on_tick() + except Exception as e: + self.get_logger().error(f'on_tick failed: {e}') + + # Compute smoothed FPS + if len(self._tick_times) >= 2: + intervals = [t2 - t1 for t1, t2 in zip(self._tick_times, list(self._tick_times)[1:])] + avg_interval = sum(intervals) / len(intervals) + smoothed_fps = 1.0 / avg_interval if avg_interval > 0 else 0.0 + else: + smoothed_fps = 0.0 + + fps_msg = Float32() + fps_msg.data = smoothed_fps + self.fps_pub.publish(fps_msg) + + + except queue.Empty: + continue + + def on_tick(self): + # Override this in your subclass + pass + + def update_publish_rate(self, new_rate): + self.get_logger().info(f'Updating publish rate to {new_rate} Hz') + self.timer.cancel() + self.timer = self.create_timer(1.0 / new_rate, self.timer_callback) + self.publish_rate = new_rate + self.set_parameters([Parameter('publish_rate', Parameter.Type.DOUBLE, new_rate)]) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + def param_callback(self, params): + for param in params: + if param.name == 'publish_rate' and param.type_ == Parameter.Type.DOUBLE: + new_rate = param.value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) + return SetParametersResult(successful=True) + + def parameter_event_listener(self, event: ParameterEvent): + for changed in event.changed_parameters: + if changed.name == 'publish_rate': + new_rate = changed.value.double_value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) diff --git a/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py b/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py new file mode 100644 index 0000000..01c2aa2 --- /dev/null +++ b/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py @@ -0,0 +1,82 @@ +from ament_index_python.packages import get_package_share_directory +import os + +import time +from voice_to_text_node.threaded_node import ThreadedNode + +from std_msgs.msg import String +import rclpy + +from ament_index_python.packages import get_package_share_directory +import threading + + +import sounddevice as sd +import queue +from vosk import Model, KaldiRecognizer + +package_name = 'voice_to_text_node' +model_path = os.path.join( + get_package_share_directory('voice_to_text_node'), + 'resource', 'model', 'vosk-model-small-en-us-0.15' +) +print("MODEL PATH: " + model_path) +latest_partial = {"partial": ""} +latest_result = {"text": ""} + + +class VoicePublisher(ThreadedNode): + def __init__(self): + super().__init__(package_name, default_rate=5.0) + self.string_pub = self.create_publisher(String, package_name + '/test_topic', 10) + + self.latest_partial = {"partial": ""} + self.latest_result = {"text": ""} + + self.speech_thread = threading.Thread(target=self.speech_loop, daemon=True) + self.speech_thread.start() + + def on_tick(self): + msg = String() + msg.data = self.latest_partial.get("partial", "") or self.latest_result.get("text", "") + self.string_pub.publish(msg) + self.get_logger().info(f'Published: {msg.data}') + + def speech_loop(self): + model = Model(model_path) + rec = KaldiRecognizer(model, 16000) + q = queue.Queue() + + def callback(indata, frames, time, status): + if status: + print(status) + q.put(bytes(indata)) + + with sd.RawInputStream(samplerate=16000, blocksize=8000, dtype='int16', + channels=1, callback=callback): + while True: + data = q.get() + if rec.AcceptWaveform(data): + result = json.loads(rec.Result()) + self.latest_result = result + print(".", result) + else: + partial = json.loads(rec.PartialResult()) + self.latest_partial = partial + print("...", partial.get("partial", ""), end='\r') + + def destroy_node(self): + super().destroy_node() + + + + +def main(): + rclpy.init() + node = VoicePublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/build/voice_to_text_node/colcon_build.rc b/build/voice_to_text_node/colcon_build.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/build/voice_to_text_node/colcon_build.rc @@ -0,0 +1 @@ +0 diff --git a/build/voice_to_text_node/colcon_command_prefix_setup_py.sh b/build/voice_to_text_node/colcon_command_prefix_setup_py.sh new file mode 100644 index 0000000..f9867d5 --- /dev/null +++ b/build/voice_to_text_node/colcon_command_prefix_setup_py.sh @@ -0,0 +1 @@ +# generated from colcon_core/shell/template/command_prefix.sh.em diff --git a/build/voice_to_text_node/colcon_command_prefix_setup_py.sh.env b/build/voice_to_text_node/colcon_command_prefix_setup_py.sh.env new file mode 100644 index 0000000..2a23ff3 --- /dev/null +++ b/build/voice_to_text_node/colcon_command_prefix_setup_py.sh.env @@ -0,0 +1,52 @@ +AMENT_PREFIX_PATH=/opt/ros/kilted +CMAKE_PREFIX_PATH=/opt/ros/kilted/opt/gz_math_vendor:/opt/ros/kilted/opt/gz_utils_vendor:/opt/ros/kilted/opt/gz_cmake_vendor +COLCON=1 +COLORTERM=truecolor +CONDA_EXE=/home/jake/miniconda3/bin/conda +CONDA_PYTHON_EXE=/home/jake/miniconda3/bin/python +CONDA_SHLVL=0 +DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus +DISPLAY=10.255.255.254:0 +GIT_ASKPASS=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass.sh +HOME=/home/jake +HOSTTYPE=x86_64 +LANG=C.UTF-8 +LD_LIBRARY_PATH=/opt/ros/kilted/opt/zenoh_cpp_vendor/lib:/opt/ros/kilted/opt/gz_math_vendor/lib:/opt/ros/kilted/opt/gz_utils_vendor/lib:/opt/ros/kilted/opt/rviz_ogre_vendor/lib:/opt/ros/kilted/lib/x86_64-linux-gnu:/opt/ros/kilted/opt/gz_cmake_vendor/lib:/opt/ros/kilted/lib +LESSCLOSE=/usr/bin/lesspipe %s %s +LESSOPEN=| /usr/bin/lesspipe %s +LOGNAME=jake +LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90: +NAME=DESKTOP-UFLG41E +OLDPWD=/home/jake/ros2_ws +PATH=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/bin/remote-cli:/home/jake/.local/bin:/home/jake/miniconda3/condabin:/opt/ros/kilted/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Program Files/usbipd-win/:/mnt/c/Users/jake/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jake/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin:/home/jake/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand +PULSE_SERVER=unix:/mnt/wslg/PulseServer +PWD=/home/jake/ros2_ws/build/voice_to_text_node +PYTHONPATH=/opt/ros/kilted/lib/python3.12/site-packages +ROS_AUTOMATIC_DISCOVERY_RANGE=SUBNET +ROS_DISTRO=kilted +ROS_PYTHON_VERSION=3 +ROS_VERSION=2 +SHELL=/bin/bash +SHLVL=2 +TERM=xterm-256color +TERM_PROGRAM=vscode +TERM_PROGRAM_VERSION=1.105.1 +USER=jake +VSCODE_GIT_ASKPASS_EXTRA_ARGS= +VSCODE_GIT_ASKPASS_MAIN=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass-main.js +VSCODE_GIT_ASKPASS_NODE=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/node +VSCODE_GIT_IPC_HANDLE=/run/user/1001/vscode-git-1d6e8e65c1.sock +VSCODE_IPC_HOOK_CLI=/run/user/1001/vscode-ipc-07b86bca-e4f9-4c18-ba3e-d1abb3d5b6bc.sock +VSCODE_PYTHON_AUTOACTIVATE_GUARD=1 +WAYLAND_DISPLAY=wayland-0 +WSL2_GUI_APPS_ENABLED=1 +WSLENV=VSCODE_WSL_EXT_LOCATION/up +WSL_DISTRO_NAME=Ubuntu-24.04 +WSL_INTEROP=/run/WSL/440_interop +XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop +XDG_RUNTIME_DIR=/run/user/1001/ +_=/usr/bin/colcon +_CE_CONDA= +_CE_M= +_CONDA_EXE=/home/jake/miniconda3/bin/conda +_CONDA_ROOT=/home/jake/miniconda3 diff --git a/build/voice_to_text_node/install.log b/build/voice_to_text_node/install.log new file mode 100644 index 0000000..5cd6168 --- /dev/null +++ b/build/voice_to_text_node/install.log @@ -0,0 +1,30 @@ +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/__init__.cpython-312.pyc +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/voice_to_text_node.cpython-312.pyc +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/threaded_node.cpython-312.pyc +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.xml +/home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages/voice_to_text_node +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf +/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/entry_points.txt +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/SOURCES.txt +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/zip-safe +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/top_level.txt +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/dependency_links.txt +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/requires.txt +/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/PKG-INFO +/home/jake/ros2_ws/install/voice_to_text_node/bin/voice_to_text_node diff --git a/build/voice_to_text_node/prefix_override/__pycache__/sitecustomize.cpython-312.pyc b/build/voice_to_text_node/prefix_override/__pycache__/sitecustomize.cpython-312.pyc new file mode 100644 index 0000000..962b877 Binary files /dev/null and b/build/voice_to_text_node/prefix_override/__pycache__/sitecustomize.cpython-312.pyc differ diff --git a/build/voice_to_text_node/prefix_override/sitecustomize.py b/build/voice_to_text_node/prefix_override/sitecustomize.py new file mode 100644 index 0000000..b1d5983 --- /dev/null +++ b/build/voice_to_text_node/prefix_override/sitecustomize.py @@ -0,0 +1,4 @@ +import sys +if sys.prefix == '/usr': + sys.real_prefix = sys.prefix + sys.prefix = sys.exec_prefix = '/home/jake/ros2_ws/install/voice_to_text_node' diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO b/build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO new file mode 100644 index 0000000..1f9934d --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO @@ -0,0 +1,7 @@ +Metadata-Version: 2.1 +Name: voice-to-text-node +Version: 0.1.0 +Summary: Manages voice to text for Little Sophia +Maintainer: jake +Maintainer-email: jake@example.com +License: MIT diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt b/build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt new file mode 100644 index 0000000..e0e1bc8 --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt @@ -0,0 +1,27 @@ +package.xml +setup.py +../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO +../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/zip-safe +./voice_to_text_node/__init__.py +./voice_to_text_node/threaded_node.py +./voice_to_text_node/voice_to_text_node.py +resource/voice_to_text_node +resource/model/vosk-model-small-en-us-0.15/README +resource/model/vosk-model-small-en-us-0.15/am/final.mdl +resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf +resource/model/vosk-model-small-en-us-0.15/conf/model.conf +resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst +resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst +resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int +resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int +resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm +resource/model/vosk-model-small-en-us-0.15/ivector/final.ie +resource/model/vosk-model-small-en-us-0.15/ivector/final.mat +resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats +resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf +resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf \ No newline at end of file diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt b/build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt b/build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt new file mode 100644 index 0000000..5729fcb --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +voice_to_text_node = voice_to_text_node.voice_to_text_node:main diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt b/build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt new file mode 100644 index 0000000..49fe098 --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt @@ -0,0 +1 @@ +setuptools diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt b/build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt new file mode 100644 index 0000000..f1e9153 --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt @@ -0,0 +1 @@ +voice_to_text_node diff --git a/build/voice_to_text_node/voice_to_text_node.egg-info/zip-safe b/build/voice_to_text_node/voice_to_text_node.egg-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/build/voice_to_text_node/voice_to_text_node.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/build_vtt.sh b/build_vtt.sh new file mode 100755 index 0000000..413c680 --- /dev/null +++ b/build_vtt.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +cd ~/ros2_ws +source /opt/ros/kilted/setup.bash # Use system ROS setup if needed + +rm -rf build/voice_to_text_node install/voice_to_text_node log + +# Build only voice_to_text_module +colcon build --packages-select voice_to_text_node --event-handlers console_direct+ + +# Source overlay +source install/setup.bash +voice_to_text_node voice_to_text_node \ No newline at end of file diff --git a/install/camera_module/lib/python3.12/site-packages/camera_module/__pycache__/camera_module.cpython-312.pyc b/install/camera_module/lib/python3.12/site-packages/camera_module/__pycache__/camera_module.cpython-312.pyc index 2d92242..cb2e521 100644 Binary files a/install/camera_module/lib/python3.12/site-packages/camera_module/__pycache__/camera_module.cpython-312.pyc and b/install/camera_module/lib/python3.12/site-packages/camera_module/__pycache__/camera_module.cpython-312.pyc differ diff --git a/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py b/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py index bb81bb6..a4a1bfa 100644 --- a/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py +++ b/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py @@ -2,22 +2,35 @@ from ament_index_python.packages import get_package_share_directory import os import cv2 +import numpy as np +from math import ceil +from itertools import product +from rknnlite.api import RKNNLite from sensor_msgs.msg import CompressedImage from cv_bridge import CvBridge - +import time from camera_module.threaded_node import ThreadedNode +from sensor_msgs.msg import CompressedImage from std_msgs.msg import String import rclpy +from ament_index_python.packages import get_package_share_directory +import os + +package_name = 'camera_module' +model_path = os.path.join(get_package_share_directory(package_name), 'resource', 'model', 'RetinaFace.rknn') class CamPublisher(ThreadedNode): def __init__(self, rknn, cap): super().__init__('camera_module', default_rate=5.0) - self.string_pub = self.create_publisher(String, 'camera_module/cam_topic', 10) - self.image_pub = self.create_publisher(CompressedImage, 'camera_module/compressed', 10) + #self.string_pub = self.create_publisher(String, 'camera_module/cam_topic', 10) + #self.image_pub = self.create_publisher(CompressedImage, 'camera_module/compressed', 10) + self.face_detect_pub = self.create_publisher(String, 'camera_module/face_data', 10) + self.face_image_pub = self.create_publisher(CompressedImage, 'camera_module/face_images', 10) + self.face_detect_frame_pub = self.create_publisher(CompressedImage, 'camera_module/face_detect_frame', 10) self.rknn = rknn self.cap = cap self.latest_frame = None @@ -40,10 +53,10 @@ class CamPublisher(ThreadedNode): def on_tick(self): # Publish string message - msg = String() - msg.data = 'Cam from ROS 2!' - self.string_pub.publish(msg) - self.get_logger().info(f'Published: {msg.data}') + # msg = String() + # msg.data = 'Cam from ROS 2!' + # self.string_pub.publish(msg) + # self.get_logger().info(f'Published: {msg.data}') # Capture and publish image if self.cap is None: @@ -53,8 +66,10 @@ class CamPublisher(ThreadedNode): ret, frame = cap.read() if not ret: return + raw_frame = frame.copy() + img_height, img_width, _ = frame.shape - letterbox_img, aspect_ratio, offset_x, offset_y = letterbox_resize(frame, model_size, 114) + letterbox_img, aspect_ratio, offset_x, offset_y = letterbox_resize(frame, self.model_size, 114) infer_img = np.expand_dims(letterbox_img.astype(np.uint8), axis=0) outputs = rknn.inference(inputs=[infer_img]) @@ -62,14 +77,14 @@ class CamPublisher(ThreadedNode): return loc, conf, landms = outputs - boxes = box_decode(loc.squeeze(0), priors) - boxes *= np.array([model_size[1], model_size[0], model_size[1], model_size[0]]) + boxes = box_decode(loc.squeeze(0), self.priors) + boxes *= np.array([self.model_size[1], self.model_size[0], self.model_size[1], self.model_size[0]]) boxes[:, 0::2] = np.clip((boxes[:, 0::2] - offset_x) / aspect_ratio, 0, img_width) boxes[:, 1::2] = np.clip((boxes[:, 1::2] - offset_y) / aspect_ratio, 0, img_height) scores = conf.squeeze(0)[:, 1] - landms = decode_landm(landms.squeeze(0), priors) - landms *= np.tile(np.array([model_size[1], model_size[0]]), 5) + landms = decode_landm(landms.squeeze(0), self.priors) + landms *= np.tile(np.array([self.model_size[1], self.model_size[0]]), 5) landms[:, 0::2] = np.clip((landms[:, 0::2] - offset_x) / aspect_ratio, 0, img_width) landms[:, 1::2] = np.clip((landms[:, 1::2] - offset_y) / aspect_ratio, 0, img_height) @@ -85,6 +100,10 @@ class CamPublisher(ThreadedNode): face_data = [] frame_center = np.array([img_width / 2, img_height / 2]) + face_data = [] + valid_dets = [] + valid_landms = [] + for data, landmark in zip(dets, landms): if data[4] < 0.6: continue @@ -100,20 +119,59 @@ class CamPublisher(ThreadedNode): "y": float(offset[1]) } }) + valid_dets.append(data) + valid_landms.append(landmark) + + + for data, landmark in zip(valid_dets, valid_landms): + x1, y1, x2, y2 = map(int, data[:4]) + conf = data[4] cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), 2) cv2.putText(frame, f'{conf:.4f}', (x1, y1 + 12), cv2.FONT_HERSHEY_DUPLEX, 0.5, (255, 255, 255)) for j in range(5): lx, ly = map(int, landmark[j*2:j*2+2]) cv2.circle(frame, (lx, ly), 1, (0, 255, 255), 2) - cv2.putText(frame, f'FPS: {fps:.2f}', (10, 30), - cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) + # cv2.putText(frame, f'FPS: {fps:.2f}', (10, 30), + # cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) if len(face_data) > 0: print(face_data) + self.face_detect_pub.publish(String(data=str(face_data))) + + # CROP FACES AND PUBLISH STITCHED IMAGE + face_crops = [] + for data in dets: + if data[4] < 0.6: + continue + x1, y1, x2, y2 = map(int, data[:4]) + face_crop = raw_frame[y1:y2, x1:x2] + face_crops.append(face_crop) + target_height = 100 + resized_faces = [ + cv2.resize(face, (int(face.shape[1] * target_height / face.shape[0]), target_height)) + for face in face_crops + ] + if resized_faces: + stitched = cv2.hconcat(resized_faces) + ret, stitched_buffer = cv2.imencode('.jpg', stitched) + if ret: + msg = CompressedImage() + msg.header.stamp = self.get_clock().now().to_msg() + msg.format = 'jpeg' + msg.data = stitched_buffer.tobytes() + self.face_image_pub.publish(msg) + + + ret, buffer = cv2.imencode('.jpg', frame) if ret: latest_frame = buffer.tobytes() latest_faces = face_data + msg = CompressedImage() + msg.header.stamp = self.get_clock().now().to_msg() + msg.format = 'jpeg' + msg.data = buffer.tobytes() + self.face_detect_frame_pub.publish(msg) def destroy_node(self): if self.cap: @@ -194,7 +252,7 @@ def nms(dets, thresh): # --- RKNN Initialization --- rknn = RKNNLite() -rknn.load_rknn('./RetinaFace.rknn') +rknn.load_rknn(model_path) rknn.init_runtime() # --- Shared State --- diff --git a/install/voice_to_text_node/bin/voice_to_text_node b/install/voice_to_text_node/bin/voice_to_text_node new file mode 100755 index 0000000..da1665b --- /dev/null +++ b/install/voice_to_text_node/bin/voice_to_text_node @@ -0,0 +1,33 @@ +#!/usr/bin/python3 +# EASY-INSTALL-ENTRY-SCRIPT: 'voice-to-text-node==0.1.0','console_scripts','voice_to_text_node' +import re +import sys + +# for compatibility with easy_install; see #2198 +__requires__ = 'voice-to-text-node==0.1.0' + +try: + from importlib.metadata import distribution +except ImportError: + try: + from importlib_metadata import distribution + except ImportError: + from pkg_resources import load_entry_point + + +def importlib_load_entry_point(spec, group, name): + dist_name, _, _ = spec.partition('==') + matches = ( + entry_point + for entry_point in distribution(dist_name).entry_points + if entry_point.group == group and entry_point.name == name + ) + return next(matches).load() + + +globals().setdefault('load_entry_point', importlib_load_entry_point) + + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(load_entry_point('voice-to-text-node==0.1.0', 'console_scripts', 'voice_to_text_node')()) diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/PKG-INFO b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/PKG-INFO new file mode 100644 index 0000000..1f9934d --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/PKG-INFO @@ -0,0 +1,7 @@ +Metadata-Version: 2.1 +Name: voice-to-text-node +Version: 0.1.0 +Summary: Manages voice to text for Little Sophia +Maintainer: jake +Maintainer-email: jake@example.com +License: MIT diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/SOURCES.txt b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/SOURCES.txt new file mode 100644 index 0000000..e0e1bc8 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/SOURCES.txt @@ -0,0 +1,27 @@ +package.xml +setup.py +../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO +../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt +../../build/voice_to_text_node/voice_to_text_node.egg-info/zip-safe +./voice_to_text_node/__init__.py +./voice_to_text_node/threaded_node.py +./voice_to_text_node/voice_to_text_node.py +resource/voice_to_text_node +resource/model/vosk-model-small-en-us-0.15/README +resource/model/vosk-model-small-en-us-0.15/am/final.mdl +resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf +resource/model/vosk-model-small-en-us-0.15/conf/model.conf +resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst +resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst +resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int +resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int +resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm +resource/model/vosk-model-small-en-us-0.15/ivector/final.ie +resource/model/vosk-model-small-en-us-0.15/ivector/final.mat +resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats +resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf +resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf \ No newline at end of file diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/dependency_links.txt b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/entry_points.txt b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/entry_points.txt new file mode 100644 index 0000000..5729fcb --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +voice_to_text_node = voice_to_text_node.voice_to_text_node:main diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/requires.txt b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/requires.txt new file mode 100644 index 0000000..49fe098 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/requires.txt @@ -0,0 +1 @@ +setuptools diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/top_level.txt b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/top_level.txt new file mode 100644 index 0000000..f1e9153 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/top_level.txt @@ -0,0 +1 @@ +voice_to_text_node diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/zip-safe b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/__init__.cpython-312.pyc b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..111f7d5 Binary files /dev/null and b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/__init__.cpython-312.pyc differ diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/threaded_node.cpython-312.pyc b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/threaded_node.cpython-312.pyc new file mode 100644 index 0000000..691accf Binary files /dev/null and b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/threaded_node.cpython-312.pyc differ diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/voice_to_text_node.cpython-312.pyc b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/voice_to_text_node.cpython-312.pyc new file mode 100644 index 0000000..cfea081 Binary files /dev/null and b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__pycache__/voice_to_text_node.cpython-312.pyc differ diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py new file mode 100644 index 0000000..d3abe01 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py @@ -0,0 +1,115 @@ +# threaded_node.py +import rclpy +from rclpy.node import Node +from rclpy.parameter import Parameter +from rcl_interfaces.msg import SetParametersResult, ParameterEvent +from std_msgs.msg import Bool, Float32 + +import time +import threading +import queue +from collections import deque + +class ThreadedNode(Node): + def __init__(self, name: str, default_rate: float = 1.0): + super().__init__(name) + + # Declare and initialize publish_rate + self.declare_parameter('publish_rate', default_rate) + self.publish_rate = self.get_parameter('publish_rate').get_parameter_value().double_value + + # Heartbeat publisher + self.heartbeat_pub = self.create_publisher(Bool, f'{name}/heartbeat', 1) + self.heartbeat_timer = self.create_timer(1.0, self.send_heartbeat) + + # Actual FPS publisher + self.fps_pub = self.create_publisher(Float32, f'{name}/fps', 1) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + # Work timer + self.timer = self.create_timer(1.0 / self.publish_rate, self.timer_callback) + + # Parameter update hooks + self.add_on_set_parameters_callback(self.param_callback) + self.create_subscription(ParameterEvent, '/parameter_events', self.parameter_event_listener, 10) + + self.setup_parameters() + self.setup_topics() + + # Worker thread setup + self.task_queue = queue.Queue() + self.worker_thread = threading.Thread(target=self.worker_loop, daemon=True) + self.worker_thread.start() + + def setup_parameters(self): + pass + + def setup_topics(self): + pass + + def send_heartbeat(self): + self.heartbeat_pub.publish(Bool(data=True)) + + def timer_callback(self): + if self.task_queue.empty(): + self.task_queue.put_nowait('tick') + + + def worker_loop(self): + while rclpy.ok(): + try: + task = self.task_queue.get(timeout=1.0) + if task == 'tick': + now = time.time() + self._tick_times.append(now) + + # Call the subclass's tick logic + try: + self.on_tick() + except Exception as e: + self.get_logger().error(f'on_tick failed: {e}') + + # Compute smoothed FPS + if len(self._tick_times) >= 2: + intervals = [t2 - t1 for t1, t2 in zip(self._tick_times, list(self._tick_times)[1:])] + avg_interval = sum(intervals) / len(intervals) + smoothed_fps = 1.0 / avg_interval if avg_interval > 0 else 0.0 + else: + smoothed_fps = 0.0 + + fps_msg = Float32() + fps_msg.data = smoothed_fps + self.fps_pub.publish(fps_msg) + + + except queue.Empty: + continue + + def on_tick(self): + # Override this in your subclass + pass + + def update_publish_rate(self, new_rate): + self.get_logger().info(f'Updating publish rate to {new_rate} Hz') + self.timer.cancel() + self.timer = self.create_timer(1.0 / new_rate, self.timer_callback) + self.publish_rate = new_rate + self.set_parameters([Parameter('publish_rate', Parameter.Type.DOUBLE, new_rate)]) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + def param_callback(self, params): + for param in params: + if param.name == 'publish_rate' and param.type_ == Parameter.Type.DOUBLE: + new_rate = param.value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) + return SetParametersResult(successful=True) + + def parameter_event_listener(self, event: ParameterEvent): + for changed in event.changed_parameters: + if changed.name == 'publish_rate': + new_rate = changed.value.double_value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) diff --git a/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py new file mode 100644 index 0000000..01c2aa2 --- /dev/null +++ b/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py @@ -0,0 +1,82 @@ +from ament_index_python.packages import get_package_share_directory +import os + +import time +from voice_to_text_node.threaded_node import ThreadedNode + +from std_msgs.msg import String +import rclpy + +from ament_index_python.packages import get_package_share_directory +import threading + + +import sounddevice as sd +import queue +from vosk import Model, KaldiRecognizer + +package_name = 'voice_to_text_node' +model_path = os.path.join( + get_package_share_directory('voice_to_text_node'), + 'resource', 'model', 'vosk-model-small-en-us-0.15' +) +print("MODEL PATH: " + model_path) +latest_partial = {"partial": ""} +latest_result = {"text": ""} + + +class VoicePublisher(ThreadedNode): + def __init__(self): + super().__init__(package_name, default_rate=5.0) + self.string_pub = self.create_publisher(String, package_name + '/test_topic', 10) + + self.latest_partial = {"partial": ""} + self.latest_result = {"text": ""} + + self.speech_thread = threading.Thread(target=self.speech_loop, daemon=True) + self.speech_thread.start() + + def on_tick(self): + msg = String() + msg.data = self.latest_partial.get("partial", "") or self.latest_result.get("text", "") + self.string_pub.publish(msg) + self.get_logger().info(f'Published: {msg.data}') + + def speech_loop(self): + model = Model(model_path) + rec = KaldiRecognizer(model, 16000) + q = queue.Queue() + + def callback(indata, frames, time, status): + if status: + print(status) + q.put(bytes(indata)) + + with sd.RawInputStream(samplerate=16000, blocksize=8000, dtype='int16', + channels=1, callback=callback): + while True: + data = q.get() + if rec.AcceptWaveform(data): + result = json.loads(rec.Result()) + self.latest_result = result + print(".", result) + else: + partial = json.loads(rec.PartialResult()) + self.latest_partial = partial + print("...", partial.get("partial", ""), end='\r') + + def destroy_node(self): + super().destroy_node() + + + + +def main(): + rclpy.init() + node = VoicePublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/install/voice_to_text_node/share/ament_index/resource_index/packages/voice_to_text_node b/install/voice_to_text_node/share/ament_index/resource_index/packages/voice_to_text_node new file mode 100644 index 0000000..e69de29 diff --git a/install/voice_to_text_node/share/colcon-core/packages/voice_to_text_node b/install/voice_to_text_node/share/colcon-core/packages/voice_to_text_node new file mode 100644 index 0000000..cacb31e --- /dev/null +++ b/install/voice_to_text_node/share/colcon-core/packages/voice_to_text_node @@ -0,0 +1 @@ +ament_python:rclpy:std_msgs \ No newline at end of file diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.dsv b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.dsv new file mode 100644 index 0000000..79d4c95 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;AMENT_PREFIX_PATH; diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.ps1 b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.ps1 new file mode 100644 index 0000000..26b9997 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value AMENT_PREFIX_PATH "$env:COLCON_CURRENT_PREFIX" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.sh b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.sh new file mode 100644 index 0000000..f3041f6 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value AMENT_PREFIX_PATH "$COLCON_CURRENT_PREFIX" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/path.dsv b/install/voice_to_text_node/share/voice_to_text_node/hook/path.dsv new file mode 100644 index 0000000..95435e0 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/path.ps1 b/install/voice_to_text_node/share/voice_to_text_node/hook/path.ps1 new file mode 100644 index 0000000..0b980ef --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/path.sh b/install/voice_to_text_node/share/voice_to_text_node/hook/path.sh new file mode 100644 index 0000000..295266d --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.dsv b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.dsv new file mode 100644 index 0000000..c2ddcdb --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PYTHONPATH;lib/python3.12/site-packages diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.ps1 b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.ps1 new file mode 100644 index 0000000..bdd69af --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PYTHONPATH "$env:COLCON_CURRENT_PREFIX\lib/python3.12/site-packages" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.sh b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.sh new file mode 100644 index 0000000..45388fe --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PYTHONPATH "$COLCON_CURRENT_PREFIX/lib/python3.12/site-packages" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.dsv b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.dsv new file mode 100644 index 0000000..95435e0 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.ps1 b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.ps1 new file mode 100644 index 0000000..0b980ef --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.sh b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.sh new file mode 100644 index 0000000..295266d --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.bash b/install/voice_to_text_node/share/voice_to_text_node/package.bash new file mode 100644 index 0000000..b41906d --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.bash @@ -0,0 +1,31 @@ +# generated from colcon_bash/shell/template/package.bash.em + +# This script extends the environment for this package. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" +else + _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh script of this package +_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/voice_to_text_node/package.sh" + +unset _colcon_package_bash_source_script +unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.dsv b/install/voice_to_text_node/share/voice_to_text_node/package.dsv new file mode 100644 index 0000000..2969423 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.dsv @@ -0,0 +1,12 @@ +source;share/voice_to_text_node/hook/path.ps1 +source;share/voice_to_text_node/hook/path.dsv +source;share/voice_to_text_node/hook/path.sh +source;share/voice_to_text_node/hook/pythonpath.ps1 +source;share/voice_to_text_node/hook/pythonpath.dsv +source;share/voice_to_text_node/hook/pythonpath.sh +source;share/voice_to_text_node/hook/pythonscriptspath.ps1 +source;share/voice_to_text_node/hook/pythonscriptspath.dsv +source;share/voice_to_text_node/hook/pythonscriptspath.sh +source;share/voice_to_text_node/hook/ament_prefix_path.ps1 +source;share/voice_to_text_node/hook/ament_prefix_path.dsv +source;share/voice_to_text_node/hook/ament_prefix_path.sh diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.ps1 b/install/voice_to_text_node/share/voice_to_text_node/package.ps1 new file mode 100644 index 0000000..f5434f6 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.ps1 @@ -0,0 +1,118 @@ +# generated from colcon_powershell/shell/template/package.ps1.em + +# function to append a value to a variable +# which uses colons as separators +# duplicates as well as leading separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_append_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + $_duplicate="" + # start with no values + $_all_values="" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -eq $_value) { + $_duplicate="1" + } + if ($_all_values) { + $_all_values="${_all_values};$_" + } else { + $_all_values="$_" + } + } + } + } + # append only non-duplicates + if (!$_duplicate) { + # avoid leading separator + if ($_all_values) { + $_all_values="${_all_values};${_value}" + } else { + $_all_values="${_value}" + } + } + + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_prepend_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + # start with the new value + $_all_values="$_value" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -ne $_value) { + # keep non-duplicate values + $_all_values="${_all_values};$_" + } + } + } + } + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +function colcon_package_source_powershell_script { + param ( + $_colcon_package_source_powershell_script + ) + # source script with conditional trace output + if (Test-Path $_colcon_package_source_powershell_script) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_package_source_powershell_script'" + } + . "$_colcon_package_source_powershell_script" + } else { + Write-Error "not found: '$_colcon_package_source_powershell_script'" + } +} + + +# a powershell script is able to determine its own path +# the prefix is two levels up from the package specific share directory +$env:COLCON_CURRENT_PREFIX=(Get-Item $PSCommandPath).Directory.Parent.Parent.FullName + +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/voice_to_text_node/hook/path.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/voice_to_text_node/hook/pythonpath.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/voice_to_text_node/hook/pythonscriptspath.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/voice_to_text_node/hook/ament_prefix_path.ps1" + +Remove-Item Env:\COLCON_CURRENT_PREFIX diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.sh b/install/voice_to_text_node/share/voice_to_text_node/package.sh new file mode 100644 index 0000000..c6e5994 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.sh @@ -0,0 +1,89 @@ +# generated from colcon_core/shell/template/package.sh.em + +# This script extends the environment for this package. + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prepend_unique_value_IFS=$IFS + IFS=":" + # start with the new value + _all_values="$_value" + # workaround SH_WORD_SPLIT not being set in zsh + if [ "$(command -v colcon_zsh_convert_to_array)" ]; then + colcon_zsh_convert_to_array _values + fi + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + # restore the field separator + IFS=$_colcon_prepend_unique_value_IFS + unset _colcon_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_package_sh_COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/install/voice_to_text_node" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_package_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_package_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_package_sh_COLCON_CURRENT_PREFIX + return 1 + fi + COLCON_CURRENT_PREFIX="$_colcon_package_sh_COLCON_CURRENT_PREFIX" +fi +unset _colcon_package_sh_COLCON_CURRENT_PREFIX + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh hooks +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/voice_to_text_node/hook/path.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/voice_to_text_node/hook/pythonpath.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/voice_to_text_node/hook/pythonscriptspath.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/voice_to_text_node/hook/ament_prefix_path.sh" + +unset _colcon_package_sh_source_script +unset COLCON_CURRENT_PREFIX + +# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.xml b/install/voice_to_text_node/share/voice_to_text_node/package.xml new file mode 100644 index 0000000..4e8a838 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.xml @@ -0,0 +1,21 @@ + + + voice_to_text_node + 0.1.0 + Manages voice to text for Little Sophia + Jake + MIT + + ament_python + ament_python + + rclpy + std_msgs + + ament_lint_auto + ament_lint_common + + + ament_python + + diff --git a/install/voice_to_text_node/share/voice_to_text_node/package.zsh b/install/voice_to_text_node/share/voice_to_text_node/package.zsh new file mode 100644 index 0000000..d25b60c --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/package.zsh @@ -0,0 +1,42 @@ +# generated from colcon_zsh/shell/template/package.zsh.em + +# This script extends the environment for this package. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" +else + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +colcon_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# source sh script of this package +_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/voice_to_text_node/package.sh" +unset convert_zsh_to_array + +unset _colcon_package_zsh_source_script +unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README new file mode 100644 index 0000000..a7f7931 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README @@ -0,0 +1,9 @@ +US English model for mobile Vosk applications + +Copyright 2020 Alpha Cephei Inc + +Accuracy: 10.38 (tedlium test) 9.85 (librispeech test-clean) +Speed: 0.11xRT (desktop) +Latency: 0.15s (right context) + + diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl new file mode 100644 index 0000000..5596b31 Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf new file mode 100644 index 0000000..eaa40c5 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf @@ -0,0 +1,7 @@ +--sample-frequency=16000 +--use-energy=false +--num-mel-bins=40 +--num-ceps=40 +--low-freq=20 +--high-freq=7600 +--allow-downsample=true diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf new file mode 100644 index 0000000..9d5b0da --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf @@ -0,0 +1,10 @@ +--min-active=200 +--max-active=3000 +--beam=10.0 +--lattice-beam=2.0 +--acoustic-scale=1.0 +--frame-subsampling-factor=3 +--endpoint.silence-phones=1:2:3:4:5:6:7:8:9:10 +--endpoint.rule2.min-trailing-silence=0.5 +--endpoint.rule3.min-trailing-silence=0.75 +--endpoint.rule4.min-trailing-silence=1.0 diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst new file mode 100644 index 0000000..1f292e6 Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst new file mode 100644 index 0000000..9797b26 Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int new file mode 100644 index 0000000..762fd5f --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int @@ -0,0 +1,17 @@ +10015 +10016 +10017 +10018 +10019 +10020 +10021 +10022 +10023 +10024 +10025 +10026 +10027 +10028 +10029 +10030 +10031 diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int new file mode 100644 index 0000000..df23fd7 --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int @@ -0,0 +1,166 @@ +1 nonword +2 begin +3 end +4 internal +5 singleton +6 nonword +7 begin +8 end +9 internal +10 singleton +11 begin +12 end +13 internal +14 singleton +15 begin +16 end +17 internal +18 singleton +19 begin +20 end +21 internal +22 singleton +23 begin +24 end +25 internal +26 singleton +27 begin +28 end +29 internal +30 singleton +31 begin +32 end +33 internal +34 singleton +35 begin +36 end +37 internal +38 singleton +39 begin +40 end +41 internal +42 singleton +43 begin +44 end +45 internal +46 singleton +47 begin +48 end +49 internal +50 singleton +51 begin +52 end +53 internal +54 singleton +55 begin +56 end +57 internal +58 singleton +59 begin +60 end +61 internal +62 singleton +63 begin +64 end +65 internal +66 singleton +67 begin +68 end +69 internal +70 singleton +71 begin +72 end +73 internal +74 singleton +75 begin +76 end +77 internal +78 singleton +79 begin +80 end +81 internal +82 singleton +83 begin +84 end +85 internal +86 singleton +87 begin +88 end +89 internal +90 singleton +91 begin +92 end +93 internal +94 singleton +95 begin +96 end +97 internal +98 singleton +99 begin +100 end +101 internal +102 singleton +103 begin +104 end +105 internal +106 singleton +107 begin +108 end +109 internal +110 singleton +111 begin +112 end +113 internal +114 singleton +115 begin +116 end +117 internal +118 singleton +119 begin +120 end +121 internal +122 singleton +123 begin +124 end +125 internal +126 singleton +127 begin +128 end +129 internal +130 singleton +131 begin +132 end +133 internal +134 singleton +135 begin +136 end +137 internal +138 singleton +139 begin +140 end +141 internal +142 singleton +143 begin +144 end +145 internal +146 singleton +147 begin +148 end +149 internal +150 singleton +151 begin +152 end +153 internal +154 singleton +155 begin +156 end +157 internal +158 singleton +159 begin +160 end +161 internal +162 singleton +163 begin +164 end +165 internal +166 singleton diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm new file mode 100644 index 0000000..db789eb Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie new file mode 100644 index 0000000..93737bf Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat new file mode 100644 index 0000000..c3ec635 Binary files /dev/null and b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat differ diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats new file mode 100644 index 0000000..b9d92ef --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats @@ -0,0 +1,3 @@ + [ + 1.682383e+11 -1.1595e+10 -1.521733e+10 4.32034e+09 -2.257938e+10 -1.969666e+10 -2.559265e+10 -1.535687e+10 -1.276854e+10 -4.494483e+09 -1.209085e+10 -5.64008e+09 -1.134847e+10 -3.419512e+09 -1.079542e+10 -4.145463e+09 -6.637486e+09 -1.11318e+09 -3.479773e+09 -1.245932e+08 -1.386961e+09 6.560655e+07 -2.436518e+08 -4.032432e+07 4.620046e+08 -7.714964e+07 9.551484e+08 -4.119761e+08 8.208582e+08 -7.117156e+08 7.457703e+08 -4.3106e+08 1.202726e+09 2.904036e+08 1.231931e+09 3.629848e+08 6.366939e+08 -4.586172e+08 -5.267629e+08 -3.507819e+08 1.679838e+09 + 1.741141e+13 8.92488e+11 8.743834e+11 8.848896e+11 1.190313e+12 1.160279e+12 1.300066e+12 1.005678e+12 9.39335e+11 8.089614e+11 7.927041e+11 6.882427e+11 6.444235e+11 5.151451e+11 4.825723e+11 3.210106e+11 2.720254e+11 1.772539e+11 1.248102e+11 6.691599e+10 3.599804e+10 1.207574e+10 1.679301e+09 4.594778e+08 5.821614e+09 1.451758e+10 2.55803e+10 3.43277e+10 4.245286e+10 4.784859e+10 4.988591e+10 4.925451e+10 5.074584e+10 4.9557e+10 4.407876e+10 3.421443e+10 3.138606e+10 2.539716e+10 1.948134e+10 1.381167e+10 0 ] diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf new file mode 100644 index 0000000..7748a4a --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf @@ -0,0 +1 @@ +# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh diff --git a/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/log/build_2025-11-09_19-38-47/camera_module/command.log b/log/build_2025-11-09_19-38-47/camera_module/command.log deleted file mode 100644 index b7fd639..0000000 --- a/log/build_2025-11-09_19-38-47/camera_module/command.log +++ /dev/null @@ -1,2 +0,0 @@ -Invoking command in '/home/jake/ros2_ws/src/camera_module': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data -Invoked command in '/home/jake/ros2_ws/src/camera_module' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data diff --git a/log/build_2025-11-09_19-38-47/camera_module/stdout.log b/log/build_2025-11-09_19-38-47/camera_module/stdout.log deleted file mode 100644 index 2baba09..0000000 --- a/log/build_2025-11-09_19-38-47/camera_module/stdout.log +++ /dev/null @@ -1,41 +0,0 @@ -running egg_info -creating ../../build/camera_module/camera_module.egg-info -writing ../../build/camera_module/camera_module.egg-info/PKG-INFO -writing dependency_links to ../../build/camera_module/camera_module.egg-info/dependency_links.txt -writing entry points to ../../build/camera_module/camera_module.egg-info/entry_points.txt -writing requirements to ../../build/camera_module/camera_module.egg-info/requires.txt -writing top-level names to ../../build/camera_module/camera_module.egg-info/top_level.txt -writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -reading manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -running build -running build_py -creating /home/jake/ros2_ws/build/camera_module/build -creating /home/jake/ros2_ws/build/camera_module/build/lib -creating /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/__init__.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/camera_module.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/threaded_node.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -running install -running install_lib -creating /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/__init__.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/camera_module.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/threaded_node.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/__init__.py to __init__.cpython-312.pyc -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py to camera_module.cpython-312.pyc -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/threaded_node.py to threaded_node.cpython-312.pyc -running install_data -copying package.xml -> /home/jake/ros2_ws/install/camera_module/share/camera_module -creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource -creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -copying resource/model/RetinaFace.rknn -> /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -creating /home/jake/ros2_ws/install/camera_module/share/ament_index -creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index -creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -copying resource/camera_module -> /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -running install_egg_info -Copying ../../build/camera_module/camera_module.egg-info to /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module-0.1.0-py3.12.egg-info -running install_scripts -Installing camera_module script to /home/jake/ros2_ws/install/camera_module/bin -writing list of installed files to '/home/jake/ros2_ws/build/camera_module/install.log' diff --git a/log/build_2025-11-09_19-38-47/camera_module/stdout_stderr.log b/log/build_2025-11-09_19-38-47/camera_module/stdout_stderr.log deleted file mode 100644 index 2baba09..0000000 --- a/log/build_2025-11-09_19-38-47/camera_module/stdout_stderr.log +++ /dev/null @@ -1,41 +0,0 @@ -running egg_info -creating ../../build/camera_module/camera_module.egg-info -writing ../../build/camera_module/camera_module.egg-info/PKG-INFO -writing dependency_links to ../../build/camera_module/camera_module.egg-info/dependency_links.txt -writing entry points to ../../build/camera_module/camera_module.egg-info/entry_points.txt -writing requirements to ../../build/camera_module/camera_module.egg-info/requires.txt -writing top-level names to ../../build/camera_module/camera_module.egg-info/top_level.txt -writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -reading manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -running build -running build_py -creating /home/jake/ros2_ws/build/camera_module/build -creating /home/jake/ros2_ws/build/camera_module/build/lib -creating /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/__init__.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/camera_module.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -copying ./camera_module/threaded_node.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -running install -running install_lib -creating /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/__init__.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/camera_module.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/threaded_node.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/__init__.py to __init__.cpython-312.pyc -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py to camera_module.cpython-312.pyc -byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/threaded_node.py to threaded_node.cpython-312.pyc -running install_data -copying package.xml -> /home/jake/ros2_ws/install/camera_module/share/camera_module -creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource -creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -copying resource/model/RetinaFace.rknn -> /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -creating /home/jake/ros2_ws/install/camera_module/share/ament_index -creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index -creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -copying resource/camera_module -> /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -running install_egg_info -Copying ../../build/camera_module/camera_module.egg-info to /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module-0.1.0-py3.12.egg-info -running install_scripts -Installing camera_module script to /home/jake/ros2_ws/install/camera_module/bin -writing list of installed files to '/home/jake/ros2_ws/build/camera_module/install.log' diff --git a/log/build_2025-11-09_19-38-47/camera_module/streams.log b/log/build_2025-11-09_19-38-47/camera_module/streams.log deleted file mode 100644 index f8fa2fb..0000000 --- a/log/build_2025-11-09_19-38-47/camera_module/streams.log +++ /dev/null @@ -1,43 +0,0 @@ -[0.774s] Invoking command in '/home/jake/ros2_ws/src/camera_module': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data -[1.009s] running egg_info -[1.009s] creating ../../build/camera_module/camera_module.egg-info -[1.028s] writing ../../build/camera_module/camera_module.egg-info/PKG-INFO -[1.029s] writing dependency_links to ../../build/camera_module/camera_module.egg-info/dependency_links.txt -[1.029s] writing entry points to ../../build/camera_module/camera_module.egg-info/entry_points.txt -[1.030s] writing requirements to ../../build/camera_module/camera_module.egg-info/requires.txt -[1.030s] writing top-level names to ../../build/camera_module/camera_module.egg-info/top_level.txt -[1.030s] writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -[1.066s] reading manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -[1.067s] writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt' -[1.071s] running build -[1.071s] running build_py -[1.071s] creating /home/jake/ros2_ws/build/camera_module/build -[1.072s] creating /home/jake/ros2_ws/build/camera_module/build/lib -[1.072s] creating /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -[1.073s] copying ./camera_module/__init__.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -[1.073s] copying ./camera_module/camera_module.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -[1.073s] copying ./camera_module/threaded_node.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module -[1.074s] running install -[1.079s] running install_lib -[1.098s] creating /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -[1.099s] copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/__init__.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -[1.099s] copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/camera_module.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -[1.099s] copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/threaded_node.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module -[1.100s] byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/__init__.py to __init__.cpython-312.pyc -[1.100s] byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py to camera_module.cpython-312.pyc -[1.103s] byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/threaded_node.py to threaded_node.cpython-312.pyc -[1.104s] running install_data -[1.105s] copying package.xml -> /home/jake/ros2_ws/install/camera_module/share/camera_module -[1.105s] creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource -[1.105s] creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -[1.106s] copying resource/model/RetinaFace.rknn -> /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model -[1.107s] creating /home/jake/ros2_ws/install/camera_module/share/ament_index -[1.108s] creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index -[1.108s] creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -[1.109s] copying resource/camera_module -> /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages -[1.109s] running install_egg_info -[1.129s] Copying ../../build/camera_module/camera_module.egg-info to /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module-0.1.0-py3.12.egg-info -[1.131s] running install_scripts -[1.252s] Installing camera_module script to /home/jake/ros2_ws/install/camera_module/bin -[1.253s] writing list of installed files to '/home/jake/ros2_ws/build/camera_module/install.log' -[1.286s] Invoked command in '/home/jake/ros2_ws/src/camera_module' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data diff --git a/log/build_2025-11-09_19-38-47/events.log b/log/build_2025-11-09_19-38-47/events.log deleted file mode 100644 index 005cba9..0000000 --- a/log/build_2025-11-09_19-38-47/events.log +++ /dev/null @@ -1,66 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000428] (-) JobUnselected: {'identifier': 'cam_test'} -[0.000483] (-) JobUnselected: {'identifier': 'cv_bridge'} -[0.000533] (-) JobUnselected: {'identifier': 'hello_pub'} -[0.001098] (-) JobUnselected: {'identifier': 'image_geometry'} -[0.001148] (-) JobUnselected: {'identifier': 'opencv_tests'} -[0.001196] (-) JobUnselected: {'identifier': 'vision_opencv'} -[0.001248] (camera_module) JobQueued: {'identifier': 'camera_module', 'dependencies': OrderedDict()} -[0.001270] (camera_module) JobStarted: {'identifier': 'camera_module'} -[0.099757] (-) TimerEvent: {} -[0.200182] (-) TimerEvent: {} -[0.300806] (-) TimerEvent: {} -[0.401179] (-) TimerEvent: {} -[0.501526] (-) TimerEvent: {} -[0.601865] (-) TimerEvent: {} -[0.702209] (-) TimerEvent: {} -[0.773550] (camera_module) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/camera_module', 'build', '--build-base', '/home/jake/ros2_ws/build/camera_module/build', 'install', '--record', '/home/jake/ros2_ws/build/camera_module/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/home/jake/ros2_ws/src/camera_module', 'env': {'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'jake', 'GIT_ASKPASS': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass.sh', 'SHLVL': '2', 'LD_LIBRARY_PATH': '/opt/ros/kilted/opt/zenoh_cpp_vendor/lib:/opt/ros/kilted/opt/gz_math_vendor/lib:/opt/ros/kilted/opt/gz_utils_vendor/lib:/opt/ros/kilted/opt/rviz_ogre_vendor/lib:/opt/ros/kilted/lib/x86_64-linux-gnu:/opt/ros/kilted/opt/gz_cmake_vendor/lib:/opt/ros/kilted/lib', 'HOME': '/home/jake', 'CONDA_SHLVL': '0', 'OLDPWD': '/home/jake/ros2_ws', 'TERM_PROGRAM_VERSION': '1.105.1', 'VSCODE_IPC_HOOK_CLI': '/run/user/1001/vscode-ipc-07b86bca-e4f9-4c18-ba3e-d1abb3d5b6bc.sock', 'ROS_PYTHON_VERSION': '3', 'VSCODE_GIT_ASKPASS_MAIN': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass-main.js', 'VSCODE_GIT_ASKPASS_NODE': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/node', 'VSCODE_PYTHON_AUTOACTIVATE_GUARD': '1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'COLORTERM': 'truecolor', '_CE_M': '', 'WSL_DISTRO_NAME': 'Ubuntu-24.04', '_CONDA_ROOT': '/home/jake/miniconda3', 'WAYLAND_DISPLAY': 'wayland-0', 'ROS_DISTRO': 'kilted', 'LOGNAME': 'jake', 'NAME': 'DESKTOP-UFLG41E', 'WSL_INTEROP': '/run/WSL/440_interop', 'PULSE_SERVER': 'unix:/mnt/wslg/PulseServer', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'PATH': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/bin/remote-cli:/home/jake/.local/bin:/home/jake/miniconda3/condabin:/opt/ros/kilted/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Program Files/usbipd-win/:/mnt/c/Users/jake/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jake/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin:/home/jake/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand', 'XDG_RUNTIME_DIR': '/run/user/1001/', 'DISPLAY': '10.255.255.254:0', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:', 'VSCODE_GIT_IPC_HANDLE': '/run/user/1001/vscode-git-1d6e8e65c1.sock', 'TERM_PROGRAM': 'vscode', 'AMENT_PREFIX_PATH': '/opt/ros/kilted', 'CONDA_PYTHON_EXE': '/home/jake/miniconda3/bin/python', 'SHELL': '/bin/bash', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_CONDA_EXE': '/home/jake/miniconda3/bin/conda', 'ROS_AUTOMATIC_DISCOVERY_RANGE': 'SUBNET', 'VSCODE_GIT_ASKPASS_EXTRA_ARGS': '', 'PWD': '/home/jake/ros2_ws/build/camera_module', 'CONDA_EXE': '/home/jake/miniconda3/bin/conda', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PYTHONPATH': '/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:/opt/ros/kilted/lib/python3.12/site-packages', 'COLCON': '1', 'WSL2_GUI_APPS_ENABLED': '1', 'HOSTTYPE': 'x86_64', 'CMAKE_PREFIX_PATH': '/opt/ros/kilted/opt/gz_math_vendor:/opt/ros/kilted/opt/gz_utils_vendor:/opt/ros/kilted/opt/gz_cmake_vendor', 'WSLENV': 'VSCODE_WSL_EXT_LOCATION/up'}, 'shell': False} -[0.802342] (-) TimerEvent: {} -[0.902690] (-) TimerEvent: {} -[1.003228] (-) TimerEvent: {} -[1.010059] (camera_module) StdoutLine: {'line': b'running egg_info\n'} -[1.010461] (camera_module) StdoutLine: {'line': b'creating ../../build/camera_module/camera_module.egg-info\n'} -[1.029583] (camera_module) StdoutLine: {'line': b'writing ../../build/camera_module/camera_module.egg-info/PKG-INFO\n'} -[1.030019] (camera_module) StdoutLine: {'line': b'writing dependency_links to ../../build/camera_module/camera_module.egg-info/dependency_links.txt\n'} -[1.030527] (camera_module) StdoutLine: {'line': b'writing entry points to ../../build/camera_module/camera_module.egg-info/entry_points.txt\n'} -[1.030771] (camera_module) StdoutLine: {'line': b'writing requirements to ../../build/camera_module/camera_module.egg-info/requires.txt\n'} -[1.030887] (camera_module) StdoutLine: {'line': b'writing top-level names to ../../build/camera_module/camera_module.egg-info/top_level.txt\n'} -[1.031003] (camera_module) StdoutLine: {'line': b"writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt'\n"} -[1.067481] (camera_module) StdoutLine: {'line': b"reading manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt'\n"} -[1.068167] (camera_module) StdoutLine: {'line': b"writing manifest file '../../build/camera_module/camera_module.egg-info/SOURCES.txt'\n"} -[1.072029] (camera_module) StdoutLine: {'line': b'running build\n'} -[1.072260] (camera_module) StdoutLine: {'line': b'running build_py\n'} -[1.072603] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/camera_module/build\n'} -[1.073042] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/camera_module/build/lib\n'} -[1.073591] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/camera_module/build/lib/camera_module\n'} -[1.074195] (camera_module) StdoutLine: {'line': b'copying ./camera_module/__init__.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module\n'} -[1.074435] (camera_module) StdoutLine: {'line': b'copying ./camera_module/camera_module.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module\n'} -[1.074726] (camera_module) StdoutLine: {'line': b'copying ./camera_module/threaded_node.py -> /home/jake/ros2_ws/build/camera_module/build/lib/camera_module\n'} -[1.074922] (camera_module) StdoutLine: {'line': b'running install\n'} -[1.080584] (camera_module) StdoutLine: {'line': b'running install_lib\n'} -[1.099142] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module\n'} -[1.099806] (camera_module) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/__init__.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module\n'} -[1.100057] (camera_module) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/camera_module.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module\n'} -[1.100372] (camera_module) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/camera_module/build/lib/camera_module/threaded_node.py -> /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module\n'} -[1.100813] (camera_module) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/__init__.py to __init__.cpython-312.pyc\n'} -[1.101627] (camera_module) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/camera_module.py to camera_module.cpython-312.pyc\n'} -[1.103316] (-) TimerEvent: {} -[1.104422] (camera_module) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module/threaded_node.py to threaded_node.cpython-312.pyc\n'} -[1.105430] (camera_module) StdoutLine: {'line': b'running install_data\n'} -[1.105705] (camera_module) StdoutLine: {'line': b'copying package.xml -> /home/jake/ros2_ws/install/camera_module/share/camera_module\n'} -[1.105959] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource\n'} -[1.106453] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model\n'} -[1.107017] (camera_module) StdoutLine: {'line': b'copying resource/model/RetinaFace.rknn -> /home/jake/ros2_ws/install/camera_module/share/camera_module/resource/model\n'} -[1.108232] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/share/ament_index\n'} -[1.108836] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index\n'} -[1.109353] (camera_module) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages\n'} -[1.109918] (camera_module) StdoutLine: {'line': b'copying resource/camera_module -> /home/jake/ros2_ws/install/camera_module/share/ament_index/resource_index/packages\n'} -[1.110052] (camera_module) StdoutLine: {'line': b'running install_egg_info\n'} -[1.130088] (camera_module) StdoutLine: {'line': b'Copying ../../build/camera_module/camera_module.egg-info to /home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages/camera_module-0.1.0-py3.12.egg-info\n'} -[1.131774] (camera_module) StdoutLine: {'line': b'running install_scripts\n'} -[1.203458] (-) TimerEvent: {} -[1.252823] (camera_module) StdoutLine: {'line': b'Installing camera_module script to /home/jake/ros2_ws/install/camera_module/bin\n'} -[1.253791] (camera_module) StdoutLine: {'line': b"writing list of installed files to '/home/jake/ros2_ws/build/camera_module/install.log'\n"} -[1.286184] (camera_module) CommandEnded: {'returncode': 0} -[1.300112] (camera_module) JobEnded: {'identifier': 'camera_module', 'rc': 0} -[1.301705] (-) EventReactorShutdown: {} diff --git a/log/build_2025-11-09_19-38-47/logger_all.log b/log/build_2025-11-09_19-38-47/logger_all.log deleted file mode 100644 index 1c85ff3..0000000 --- a/log/build_2025-11-09_19-38-47/logger_all.log +++ /dev/null @@ -1,216 +0,0 @@ -[0.119s] colcon DEBUG Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'camera_module', '--event-handlers', 'console_direct+'] -[0.119s] colcon DEBUG Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=24, event_handlers=['console_direct+'], ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['camera_module'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=, verb_extension=, main=>) -[0.158s] colcon.colcon_core.package_discovery Level 1 discover_packages(colcon_meta) check parameters -[0.159s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) check parameters -[0.159s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) check parameters -[0.159s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) check parameters -[0.159s] colcon.colcon_core.package_discovery Level 1 discover_packages(colcon_meta) discover -[0.159s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) discover -[0.159s] colcon.colcon_core.package_discovery INFO Crawling recursively for packages in '/home/jake/ros2_ws' -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ignore' -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ignore_ament_install' -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['colcon_pkg'] -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'colcon_pkg' -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['colcon_meta'] -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'colcon_meta' -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['ros'] -[0.159s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ros' -[0.181s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['cmake', 'python'] -[0.181s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'cmake' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'python' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['python_setup_py'] -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'python_setup_py' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(build) by extension 'ignore' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(build) ignored -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(install) by extension 'ignore' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(install) ignored -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(log) by extension 'ignore' -[0.182s] colcon.colcon_core.package_identification Level 1 _identify(log) ignored -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['ignore', 'ignore_ament_install'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ignore' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ignore_ament_install' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['colcon_pkg'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'colcon_pkg' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['colcon_meta'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'colcon_meta' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['ros'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ros' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['cmake', 'python'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'cmake' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'python' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['python_setup_py'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'python_setup_py' -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['ignore', 'ignore_ament_install'] -[0.183s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ignore' -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ignore_ament_install' -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['colcon_pkg'] -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'colcon_pkg' -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['colcon_meta'] -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'colcon_meta' -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['ros'] -[0.184s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ros' -[0.186s] colcon.colcon_core.package_identification DEBUG Package 'src/cam_test' with type 'ros.ament_python' and name 'cam_test' -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['ignore', 'ignore_ament_install'] -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ignore' -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ignore_ament_install' -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['colcon_pkg'] -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'colcon_pkg' -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['colcon_meta'] -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'colcon_meta' -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['ros'] -[0.186s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ros' -[0.187s] colcon.colcon_core.package_identification DEBUG Package 'src/camera_module' with type 'ros.ament_python' and name 'camera_module' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['ignore', 'ignore_ament_install'] -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ignore' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ignore_ament_install' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['colcon_pkg'] -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'colcon_pkg' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['colcon_meta'] -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'colcon_meta' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['ros'] -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ros' -[0.187s] colcon.colcon_core.package_identification DEBUG Package 'src/hello_pub' with type 'ros.ament_python' and name 'hello_pub' -[0.187s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['ignore', 'ignore_ament_install'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ignore' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ignore_ament_install' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['colcon_pkg'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'colcon_pkg' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['colcon_meta'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'colcon_meta' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['ros'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ros' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['cmake', 'python'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'cmake' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'python' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['python_setup_py'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'python_setup_py' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['ignore', 'ignore_ament_install'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ignore' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ignore_ament_install' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['colcon_pkg'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'colcon_pkg' -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['colcon_meta'] -[0.188s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'colcon_meta' -[0.189s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['ros'] -[0.189s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ros' -[0.189s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/cv_bridge' with type 'ros.ament_cmake' and name 'cv_bridge' -[0.189s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['ignore', 'ignore_ament_install'] -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ignore' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ignore_ament_install' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['colcon_pkg'] -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'colcon_pkg' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['colcon_meta'] -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'colcon_meta' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['ros'] -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ros' -[0.190s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/image_geometry' with type 'ros.ament_cmake' and name 'image_geometry' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['ignore', 'ignore_ament_install'] -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ignore' -[0.190s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ignore_ament_install' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['colcon_pkg'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'colcon_pkg' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['colcon_meta'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'colcon_meta' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['ros'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ros' -[0.191s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/opencv_tests' with type 'ros.ament_python' and name 'opencv_tests' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['ignore', 'ignore_ament_install'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ignore' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ignore_ament_install' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['colcon_pkg'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'colcon_pkg' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['colcon_meta'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'colcon_meta' -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['ros'] -[0.191s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ros' -[0.192s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/vision_opencv' with type 'ros.ament_cmake' and name 'vision_opencv' -[0.192s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) using defaults -[0.192s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) discover -[0.192s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) using defaults -[0.192s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) discover -[0.192s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) using defaults -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'cam_test' in 'src/cam_test' -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'cv_bridge' in 'src/vision_opencv/cv_bridge' -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'hello_pub' in 'src/hello_pub' -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'image_geometry' in 'src/vision_opencv/image_geometry' -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'opencv_tests' in 'src/vision_opencv/opencv_tests' -[0.206s] colcon.colcon_core.package_selection INFO Skipping not selected package 'vision_opencv' in 'src/vision_opencv/vision_opencv' -[0.206s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) check parameters -[0.206s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) discover -[0.209s] colcon.colcon_installed_package_information.package_discovery DEBUG Found 295 installed packages in /opt/ros/kilted -[0.210s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) using defaults -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_args' from command line to 'None' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_target' from command line to 'None' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_clean_cache' from command line to 'False' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_clean_first' from command line to 'False' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'cmake_force_configure' from command line to 'False' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'ament_cmake_args' from command line to 'None' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'catkin_cmake_args' from command line to 'None' -[0.248s] colcon.colcon_core.verb Level 5 set package 'camera_module' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.248s] colcon.colcon_core.verb DEBUG Building package 'camera_module' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/jake/ros2_ws/build/camera_module', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/jake/ros2_ws/install/camera_module', 'merge_install': False, 'path': '/home/jake/ros2_ws/src/camera_module', 'symlink_install': False, 'test_result_base': None} -[0.248s] colcon.colcon_core.executor INFO Executing jobs using 'parallel' executor -[0.250s] colcon.colcon_parallel_executor.executor.parallel DEBUG run_until_complete -[0.250s] colcon.colcon_ros.task.ament_python.build INFO Building ROS package in '/home/jake/ros2_ws/src/camera_module' with build type 'ament_python' -[0.251s] colcon.colcon_core.shell Level 1 create_environment_hook('camera_module', 'ament_prefix_path') -[0.253s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.253s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/ament_prefix_path.ps1' -[0.256s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/ament_prefix_path.dsv' -[0.256s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/ament_prefix_path.sh' -[0.257s] colcon.colcon_core.shell INFO Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.257s] colcon.colcon_core.shell DEBUG Skip shell extension 'dsv' for command environment -[0.454s] colcon.colcon_core.task.python.build INFO Building Python package in '/home/jake/ros2_ws/src/camera_module' -[0.454s] colcon.colcon_core.shell INFO Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.454s] colcon.colcon_core.shell DEBUG Skip shell extension 'dsv' for command environment -[1.025s] colcon.colcon_core.event_handler.log_command DEBUG Invoking command in '/home/jake/ros2_ws/src/camera_module': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data -[1.537s] colcon.colcon_core.event_handler.log_command DEBUG Invoked command in '/home/jake/ros2_ws/src/camera_module' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/camera_module/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/camera_module build --build-base /home/jake/ros2_ws/build/camera_module/build install --record /home/jake/ros2_ws/build/camera_module/install.log --single-version-externally-managed install_data -[1.539s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module' for CMake module files -[1.539s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module' for CMake config files -[1.540s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module/lib' -[1.540s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module/bin' -[1.540s] colcon.colcon_core.shell Level 1 create_environment_hook('camera_module', 'path') -[1.540s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/path.ps1' -[1.541s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/path.dsv' -[1.541s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/path.sh' -[1.541s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module/lib/pkgconfig/camera_module.pc' -[1.542s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module/lib/python3.12/site-packages' -[1.542s] colcon.colcon_core.shell Level 1 create_environment_hook('camera_module', 'pythonpath') -[1.542s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonpath.ps1' -[1.542s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonpath.dsv' -[1.543s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonpath.sh' -[1.543s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/camera_module/bin' -[1.544s] colcon.colcon_core.shell Level 1 create_environment_hook('camera_module', 'pythonscriptspath') -[1.544s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonscriptspath.ps1' -[1.544s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonscriptspath.dsv' -[1.544s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/camera_module/share/camera_module/hook/pythonscriptspath.sh' -[1.545s] colcon.colcon_core.environment Level 1 create_environment_scripts_only(camera_module) -[1.545s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/camera_module/share/camera_module/package.ps1' -[1.546s] colcon.colcon_core.shell INFO Creating package descriptor '/home/jake/ros2_ws/install/camera_module/share/camera_module/package.dsv' -[1.546s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/camera_module/share/camera_module/package.sh' -[1.547s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/camera_module/share/camera_module/package.bash' -[1.547s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/camera_module/share/camera_module/package.zsh' -[1.548s] colcon.colcon_core.environment Level 1 create_file_with_runtime_dependencies(/home/jake/ros2_ws/install/camera_module/share/colcon-core/packages/camera_module) -[1.549s] colcon.colcon_parallel_executor.executor.parallel DEBUG closing loop -[1.550s] colcon.colcon_parallel_executor.executor.parallel DEBUG loop closed -[1.551s] colcon.colcon_parallel_executor.executor.parallel DEBUG run_until_complete finished with '0' -[1.551s] colcon.colcon_core.event_reactor DEBUG joining thread -[1.569s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[1.569s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[1.570s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[1.570s] colcon.colcon_notification.desktop_notification INFO Sending desktop notification using 'notify2' -[1.571s] colcon.colcon_notification.desktop_notification.notify2 DEBUG Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files -[1.571s] colcon.colcon_core.event_reactor DEBUG joined thread -[1.572s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.ps1' -[1.573s] colcon.colcon_core.shell INFO Creating prefix util module '/home/jake/ros2_ws/install/_local_setup_util_ps1.py' -[1.574s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.ps1' -[1.575s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.sh' -[1.575s] colcon.colcon_core.shell INFO Creating prefix util module '/home/jake/ros2_ws/install/_local_setup_util_sh.py' -[1.576s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.sh' -[1.576s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.bash' -[1.577s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.bash' -[1.578s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.zsh' -[1.578s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.zsh' diff --git a/log/build_2025-11-09_22-11-31/events.log b/log/build_2025-11-09_22-11-31/events.log new file mode 100644 index 0000000..eb40852 --- /dev/null +++ b/log/build_2025-11-09_22-11-31/events.log @@ -0,0 +1,91 @@ +[0.000000] (-) TimerEvent: {} +[0.000544] (-) JobUnselected: {'identifier': 'cam_test'} +[0.000607] (-) JobUnselected: {'identifier': 'camera_module'} +[0.000657] (-) JobUnselected: {'identifier': 'cv_bridge'} +[0.000705] (-) JobUnselected: {'identifier': 'hello_pub'} +[0.000753] (-) JobUnselected: {'identifier': 'image_geometry'} +[0.000802] (-) JobUnselected: {'identifier': 'opencv_tests'} +[0.000849] (-) JobUnselected: {'identifier': 'vision_opencv'} +[0.000914] (voice_to_text_node) JobQueued: {'identifier': 'voice_to_text_node', 'dependencies': OrderedDict()} +[0.001105] (voice_to_text_node) JobStarted: {'identifier': 'voice_to_text_node'} +[0.099760] (-) TimerEvent: {} +[0.200115] (-) TimerEvent: {} +[0.300472] (-) TimerEvent: {} +[0.400817] (-) TimerEvent: {} +[0.501205] (-) TimerEvent: {} +[0.601568] (-) TimerEvent: {} +[0.701895] (-) TimerEvent: {} +[0.802233] (-) TimerEvent: {} +[0.902608] (-) TimerEvent: {} +[0.938221] (voice_to_text_node) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/voice_to_text_node', 'build', '--build-base', '/home/jake/ros2_ws/build/voice_to_text_node/build', 'install', '--record', '/home/jake/ros2_ws/build/voice_to_text_node/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/home/jake/ros2_ws/src/voice_to_text_node', 'env': {'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'jake', 'GIT_ASKPASS': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass.sh', 'SHLVL': '2', 'LD_LIBRARY_PATH': '/opt/ros/kilted/opt/zenoh_cpp_vendor/lib:/opt/ros/kilted/opt/gz_math_vendor/lib:/opt/ros/kilted/opt/gz_utils_vendor/lib:/opt/ros/kilted/opt/rviz_ogre_vendor/lib:/opt/ros/kilted/lib/x86_64-linux-gnu:/opt/ros/kilted/opt/gz_cmake_vendor/lib:/opt/ros/kilted/lib', 'HOME': '/home/jake', 'CONDA_SHLVL': '0', 'OLDPWD': '/home/jake/ros2_ws', 'TERM_PROGRAM_VERSION': '1.105.1', 'VSCODE_IPC_HOOK_CLI': '/run/user/1001/vscode-ipc-07b86bca-e4f9-4c18-ba3e-d1abb3d5b6bc.sock', 'ROS_PYTHON_VERSION': '3', 'VSCODE_GIT_ASKPASS_MAIN': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass-main.js', 'VSCODE_GIT_ASKPASS_NODE': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/node', 'VSCODE_PYTHON_AUTOACTIVATE_GUARD': '1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'COLORTERM': 'truecolor', '_CE_M': '', 'WSL_DISTRO_NAME': 'Ubuntu-24.04', '_CONDA_ROOT': '/home/jake/miniconda3', 'WAYLAND_DISPLAY': 'wayland-0', 'ROS_DISTRO': 'kilted', 'LOGNAME': 'jake', 'NAME': 'DESKTOP-UFLG41E', 'WSL_INTEROP': '/run/WSL/440_interop', 'PULSE_SERVER': 'unix:/mnt/wslg/PulseServer', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'PATH': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/bin/remote-cli:/home/jake/.local/bin:/home/jake/miniconda3/condabin:/opt/ros/kilted/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Program Files/usbipd-win/:/mnt/c/Users/jake/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jake/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin:/home/jake/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand', 'XDG_RUNTIME_DIR': '/run/user/1001/', 'DISPLAY': '10.255.255.254:0', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:', 'VSCODE_GIT_IPC_HANDLE': '/run/user/1001/vscode-git-1d6e8e65c1.sock', 'TERM_PROGRAM': 'vscode', 'AMENT_PREFIX_PATH': '/opt/ros/kilted', 'CONDA_PYTHON_EXE': '/home/jake/miniconda3/bin/python', 'SHELL': '/bin/bash', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_CONDA_EXE': '/home/jake/miniconda3/bin/conda', 'ROS_AUTOMATIC_DISCOVERY_RANGE': 'SUBNET', 'VSCODE_GIT_ASKPASS_EXTRA_ARGS': '', 'PWD': '/home/jake/ros2_ws/build/voice_to_text_node', 'CONDA_EXE': '/home/jake/miniconda3/bin/conda', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PYTHONPATH': '/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:/opt/ros/kilted/lib/python3.12/site-packages', 'COLCON': '1', 'WSL2_GUI_APPS_ENABLED': '1', 'HOSTTYPE': 'x86_64', 'CMAKE_PREFIX_PATH': '/opt/ros/kilted/opt/gz_math_vendor:/opt/ros/kilted/opt/gz_utils_vendor:/opt/ros/kilted/opt/gz_cmake_vendor', 'WSLENV': 'VSCODE_WSL_EXT_LOCATION/up'}, 'shell': False} +[1.002737] (-) TimerEvent: {} +[1.103087] (-) TimerEvent: {} +[1.182853] (voice_to_text_node) StdoutLine: {'line': b'running egg_info\n'} +[1.183315] (voice_to_text_node) StdoutLine: {'line': b'creating ../../build/voice_to_text_node/voice_to_text_node.egg-info\n'} +[1.203174] (-) TimerEvent: {} +[1.203611] (voice_to_text_node) StdoutLine: {'line': b'writing ../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO\n'} +[1.203963] (voice_to_text_node) StdoutLine: {'line': b'writing dependency_links to ../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt\n'} +[1.204248] (voice_to_text_node) StdoutLine: {'line': b'writing entry points to ../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt\n'} +[1.204562] (voice_to_text_node) StdoutLine: {'line': b'writing requirements to ../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt\n'} +[1.204795] (voice_to_text_node) StdoutLine: {'line': b'writing top-level names to ../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt\n'} +[1.204994] (voice_to_text_node) StdoutLine: {'line': b"writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt'\n"} +[1.246073] (voice_to_text_node) StdoutLine: {'line': b"reading manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt'\n"} +[1.246816] (voice_to_text_node) StdoutLine: {'line': b"writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt'\n"} +[1.250734] (voice_to_text_node) StdoutLine: {'line': b'running build\n'} +[1.251119] (voice_to_text_node) StdoutLine: {'line': b'running build_py\n'} +[1.251280] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/voice_to_text_node/build\n'} +[1.251679] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib\n'} +[1.252253] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node\n'} +[1.252861] (voice_to_text_node) StdoutLine: {'line': b'copying ./voice_to_text_node/__init__.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node\n'} +[1.253430] (voice_to_text_node) StdoutLine: {'line': b'copying ./voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node\n'} +[1.253781] (voice_to_text_node) StdoutLine: {'line': b'copying ./voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node\n'} +[1.254464] (voice_to_text_node) StdoutLine: {'line': b'running install\n'} +[1.260541] (voice_to_text_node) StdoutLine: {'line': b'running install_lib\n'} +[1.281764] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node\n'} +[1.282489] (voice_to_text_node) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node\n'} +[1.282719] (voice_to_text_node) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node\n'} +[1.283003] (voice_to_text_node) StdoutLine: {'line': b'copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node\n'} +[1.283364] (voice_to_text_node) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py to __init__.cpython-312.pyc\n'} +[1.284176] (voice_to_text_node) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py to voice_to_text_node.cpython-312.pyc\n'} +[1.285377] (voice_to_text_node) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py to threaded_node.cpython-312.pyc\n'} +[1.287212] (voice_to_text_node) StdoutLine: {'line': b'running install_data\n'} +[1.287585] (voice_to_text_node) StdoutLine: {'line': b'copying package.xml -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node\n'} +[1.287758] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index\n'} +[1.289023] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index\n'} +[1.289635] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages\n'} +[1.290289] (voice_to_text_node) StdoutLine: {'line': b'copying resource/voice_to_text_node -> /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages\n'} +[1.290672] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource\n'} +[1.291230] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model\n'} +[1.291800] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15\n'} +[1.292398] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/README -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15\n'} +[1.293011] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph\n'} +[1.293617] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph\n'} +[1.303308] (-) TimerEvent: {} +[1.366093] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph\n'} +[1.366626] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph\n'} +[1.403450] (-) TimerEvent: {} +[1.453367] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones\n'} +[1.454108] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones\n'} +[1.454634] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf\n'} +[1.455376] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/conf/model.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf\n'} +[1.455812] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf\n'} +[1.456218] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am\n'} +[1.456850] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/am/final.mdl -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am\n'} +[1.503593] (-) TimerEvent: {} +[1.512184] (voice_to_text_node) StdoutLine: {'line': b'creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.512951] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/final.ie -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.542959] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.544317] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.544831] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/final.mat -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.545621] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.546027] (voice_to_text_node) StdoutLine: {'line': b'copying resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector\n'} +[1.546388] (voice_to_text_node) StdoutLine: {'line': b'running install_egg_info\n'} +[1.568135] (voice_to_text_node) StdoutLine: {'line': b'Copying ../../build/voice_to_text_node/voice_to_text_node.egg-info to /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info\n'} +[1.570037] (voice_to_text_node) StdoutLine: {'line': b'running install_scripts\n'} +[1.603733] (-) TimerEvent: {} +[1.704116] (-) TimerEvent: {} +[1.704634] (voice_to_text_node) StdoutLine: {'line': b'Installing voice_to_text_node script to /home/jake/ros2_ws/install/voice_to_text_node/bin\n'} +[1.705630] (voice_to_text_node) StdoutLine: {'line': b"writing list of installed files to '/home/jake/ros2_ws/build/voice_to_text_node/install.log'\n"} +[1.736936] (voice_to_text_node) CommandEnded: {'returncode': 0} +[1.754653] (voice_to_text_node) JobEnded: {'identifier': 'voice_to_text_node', 'rc': 0} +[1.756243] (-) EventReactorShutdown: {} diff --git a/log/build_2025-11-09_22-11-31/logger_all.log b/log/build_2025-11-09_22-11-31/logger_all.log new file mode 100644 index 0000000..f879c78 --- /dev/null +++ b/log/build_2025-11-09_22-11-31/logger_all.log @@ -0,0 +1,227 @@ +[0.194s] colcon DEBUG Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'voice_to_text_node', '--event-handlers', 'console_direct+'] +[0.194s] colcon DEBUG Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=24, event_handlers=['console_direct+'], ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['voice_to_text_node'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=, verb_extension=, main=>) +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(colcon_meta) check parameters +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) check parameters +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) check parameters +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) check parameters +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(colcon_meta) discover +[0.254s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) discover +[0.254s] colcon.colcon_core.package_discovery INFO Crawling recursively for packages in '/home/jake/ros2_ws' +[0.254s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ignore' +[0.254s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ignore_ament_install' +[0.254s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['colcon_pkg'] +[0.255s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'colcon_pkg' +[0.255s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['colcon_meta'] +[0.255s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'colcon_meta' +[0.255s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['ros'] +[0.255s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'ros' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['cmake', 'python'] +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'cmake' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'python' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(.) by extensions ['python_setup_py'] +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(.) by extension 'python_setup_py' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(build) by extension 'ignore' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(build) ignored +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(install) by extension 'ignore' +[0.281s] colcon.colcon_core.package_identification Level 1 _identify(install) ignored +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(log) by extension 'ignore' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(log) ignored +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ignore' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ignore_ament_install' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['colcon_pkg'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'colcon_pkg' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['colcon_meta'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'colcon_meta' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['ros'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'ros' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['cmake', 'python'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'cmake' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'python' +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extensions ['python_setup_py'] +[0.282s] colcon.colcon_core.package_identification Level 1 _identify(src) by extension 'python_setup_py' +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ignore' +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ignore_ament_install' +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['colcon_pkg'] +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'colcon_pkg' +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['colcon_meta'] +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'colcon_meta' +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extensions ['ros'] +[0.283s] colcon.colcon_core.package_identification Level 1 _identify(src/cam_test) by extension 'ros' +[0.286s] colcon.colcon_core.package_identification DEBUG Package 'src/cam_test' with type 'ros.ament_python' and name 'cam_test' +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ignore' +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ignore_ament_install' +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['colcon_pkg'] +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'colcon_pkg' +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['colcon_meta'] +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'colcon_meta' +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extensions ['ros'] +[0.287s] colcon.colcon_core.package_identification Level 1 _identify(src/camera_module) by extension 'ros' +[0.288s] colcon.colcon_core.package_identification DEBUG Package 'src/camera_module' with type 'ros.ament_python' and name 'camera_module' +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ignore' +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ignore_ament_install' +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['colcon_pkg'] +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'colcon_pkg' +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['colcon_meta'] +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'colcon_meta' +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extensions ['ros'] +[0.288s] colcon.colcon_core.package_identification Level 1 _identify(src/hello_pub) by extension 'ros' +[0.289s] colcon.colcon_core.package_identification DEBUG Package 'src/hello_pub' with type 'ros.ament_python' and name 'hello_pub' +[0.289s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ignore' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ignore_ament_install' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['colcon_pkg'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'colcon_pkg' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['colcon_meta'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'colcon_meta' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['ros'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'ros' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['cmake', 'python'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'cmake' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'python' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extensions ['python_setup_py'] +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv) by extension 'python_setup_py' +[0.290s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ignore' +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ignore_ament_install' +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['colcon_pkg'] +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'colcon_pkg' +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['colcon_meta'] +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'colcon_meta' +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extensions ['ros'] +[0.291s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/cv_bridge) by extension 'ros' +[0.292s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/cv_bridge' with type 'ros.ament_cmake' and name 'cv_bridge' +[0.292s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ignore' +[0.292s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ignore_ament_install' +[0.292s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['colcon_pkg'] +[0.293s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'colcon_pkg' +[0.293s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['colcon_meta'] +[0.293s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'colcon_meta' +[0.293s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extensions ['ros'] +[0.293s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/image_geometry) by extension 'ros' +[0.293s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/image_geometry' with type 'ros.ament_cmake' and name 'image_geometry' +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ignore' +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ignore_ament_install' +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['colcon_pkg'] +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'colcon_pkg' +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['colcon_meta'] +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'colcon_meta' +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extensions ['ros'] +[0.294s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/opencv_tests) by extension 'ros' +[0.295s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/opencv_tests' with type 'ros.ament_python' and name 'opencv_tests' +[0.295s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ignore' +[0.295s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ignore_ament_install' +[0.295s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['colcon_pkg'] +[0.295s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'colcon_pkg' +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['colcon_meta'] +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'colcon_meta' +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extensions ['ros'] +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/vision_opencv/vision_opencv) by extension 'ros' +[0.296s] colcon.colcon_core.package_identification DEBUG Package 'src/vision_opencv/vision_opencv' with type 'ros.ament_cmake' and name 'vision_opencv' +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extension 'ignore' +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extension 'ignore_ament_install' +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extensions ['colcon_pkg'] +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extension 'colcon_pkg' +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extensions ['colcon_meta'] +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extension 'colcon_meta' +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extensions ['ros'] +[0.297s] colcon.colcon_core.package_identification Level 1 _identify(src/voice_to_text_node) by extension 'ros' +[0.297s] colcon.colcon_core.package_identification DEBUG Package 'src/voice_to_text_node' with type 'ros.ament_python' and name 'voice_to_text_node' +[0.297s] colcon.colcon_core.package_discovery Level 1 discover_packages(recursive) using defaults +[0.297s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) discover +[0.298s] colcon.colcon_core.package_discovery Level 1 discover_packages(ignore) using defaults +[0.298s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) discover +[0.298s] colcon.colcon_core.package_discovery Level 1 discover_packages(path) using defaults +[0.314s] colcon.colcon_core.package_selection INFO Skipping not selected package 'cam_test' in 'src/cam_test' +[0.314s] colcon.colcon_core.package_selection INFO Skipping not selected package 'camera_module' in 'src/camera_module' +[0.315s] colcon.colcon_core.package_selection INFO Skipping not selected package 'cv_bridge' in 'src/vision_opencv/cv_bridge' +[0.315s] colcon.colcon_core.package_selection INFO Skipping not selected package 'hello_pub' in 'src/hello_pub' +[0.315s] colcon.colcon_core.package_selection INFO Skipping not selected package 'image_geometry' in 'src/vision_opencv/image_geometry' +[0.315s] colcon.colcon_core.package_selection INFO Skipping not selected package 'opencv_tests' in 'src/vision_opencv/opencv_tests' +[0.315s] colcon.colcon_core.package_selection INFO Skipping not selected package 'vision_opencv' in 'src/vision_opencv/vision_opencv' +[0.315s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) check parameters +[0.315s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) discover +[0.320s] colcon.colcon_installed_package_information.package_discovery DEBUG Found 295 installed packages in /opt/ros/kilted +[0.321s] colcon.colcon_core.package_discovery Level 1 discover_packages(prefix_path) using defaults +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_args' from command line to 'None' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_target' from command line to 'None' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_clean_cache' from command line to 'False' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_clean_first' from command line to 'False' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'cmake_force_configure' from command line to 'False' +[0.359s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'ament_cmake_args' from command line to 'None' +[0.360s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'catkin_cmake_args' from command line to 'None' +[0.360s] colcon.colcon_core.verb Level 5 set package 'voice_to_text_node' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.360s] colcon.colcon_core.verb DEBUG Building package 'voice_to_text_node' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/jake/ros2_ws/build/voice_to_text_node', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/jake/ros2_ws/install/voice_to_text_node', 'merge_install': False, 'path': '/home/jake/ros2_ws/src/voice_to_text_node', 'symlink_install': False, 'test_result_base': None} +[0.360s] colcon.colcon_core.executor INFO Executing jobs using 'parallel' executor +[0.361s] colcon.colcon_parallel_executor.executor.parallel DEBUG run_until_complete +[0.361s] colcon.colcon_ros.task.ament_python.build INFO Building ROS package in '/home/jake/ros2_ws/src/voice_to_text_node' with build type 'ament_python' +[0.362s] colcon.colcon_core.shell Level 1 create_environment_hook('voice_to_text_node', 'ament_prefix_path') +[0.367s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.367s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.ps1' +[0.370s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.dsv' +[0.371s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/ament_prefix_path.sh' +[0.372s] colcon.colcon_core.shell INFO Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.372s] colcon.colcon_core.shell DEBUG Skip shell extension 'dsv' for command environment +[0.588s] colcon.colcon_core.task.python.build INFO Building Python package in '/home/jake/ros2_ws/src/voice_to_text_node' +[0.588s] colcon.colcon_core.shell INFO Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.588s] colcon.colcon_core.shell DEBUG Skip shell extension 'dsv' for command environment +[1.301s] colcon.colcon_core.event_handler.log_command DEBUG Invoking command in '/home/jake/ros2_ws/src/voice_to_text_node': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data +[2.098s] colcon.colcon_core.event_handler.log_command DEBUG Invoked command in '/home/jake/ros2_ws/src/voice_to_text_node' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data +[2.104s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node' for CMake module files +[2.104s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node' for CMake config files +[2.105s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node/lib' +[2.105s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node/bin' +[2.105s] colcon.colcon_core.shell Level 1 create_environment_hook('voice_to_text_node', 'path') +[2.106s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/path.ps1' +[2.106s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/path.dsv' +[2.106s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/path.sh' +[2.107s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node/lib/pkgconfig/voice_to_text_node.pc' +[2.107s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages' +[2.107s] colcon.colcon_core.shell Level 1 create_environment_hook('voice_to_text_node', 'pythonpath') +[2.107s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.ps1' +[2.107s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.dsv' +[2.108s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonpath.sh' +[2.108s] colcon.colcon_core.environment Level 1 checking '/home/jake/ros2_ws/install/voice_to_text_node/bin' +[2.108s] colcon.colcon_core.shell Level 1 create_environment_hook('voice_to_text_node', 'pythonscriptspath') +[2.108s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.ps1' +[2.109s] colcon.colcon_core.shell INFO Creating environment descriptor '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.dsv' +[2.109s] colcon.colcon_core.shell INFO Creating environment hook '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/hook/pythonscriptspath.sh' +[2.109s] colcon.colcon_core.environment Level 1 create_environment_scripts_only(voice_to_text_node) +[2.110s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.ps1' +[2.111s] colcon.colcon_core.shell INFO Creating package descriptor '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.dsv' +[2.111s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.sh' +[2.112s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.bash' +[2.113s] colcon.colcon_core.shell INFO Creating package script '/home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/package.zsh' +[2.114s] colcon.colcon_core.environment Level 1 create_file_with_runtime_dependencies(/home/jake/ros2_ws/install/voice_to_text_node/share/colcon-core/packages/voice_to_text_node) +[2.116s] colcon.colcon_parallel_executor.executor.parallel DEBUG closing loop +[2.116s] colcon.colcon_parallel_executor.executor.parallel DEBUG loop closed +[2.116s] colcon.colcon_parallel_executor.executor.parallel DEBUG run_until_complete finished with '0' +[2.117s] colcon.colcon_core.event_reactor DEBUG joining thread +[2.140s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[2.141s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[2.141s] colcon.colcon_core.plugin_system INFO Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[2.141s] colcon.colcon_notification.desktop_notification INFO Sending desktop notification using 'notify2' +[2.143s] colcon.colcon_notification.desktop_notification.notify2 DEBUG Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files +[2.143s] colcon.colcon_core.event_reactor DEBUG joined thread +[2.143s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.ps1' +[2.145s] colcon.colcon_core.shell INFO Creating prefix util module '/home/jake/ros2_ws/install/_local_setup_util_ps1.py' +[2.146s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.ps1' +[2.148s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.sh' +[2.148s] colcon.colcon_core.shell INFO Creating prefix util module '/home/jake/ros2_ws/install/_local_setup_util_sh.py' +[2.149s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.sh' +[2.150s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.bash' +[2.151s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.bash' +[2.152s] colcon.colcon_core.shell INFO Creating prefix script '/home/jake/ros2_ws/install/local_setup.zsh' +[2.153s] colcon.colcon_core.shell INFO Creating prefix chain script '/home/jake/ros2_ws/install/setup.zsh' diff --git a/log/build_2025-11-09_22-11-31/voice_to_text_node/command.log b/log/build_2025-11-09_22-11-31/voice_to_text_node/command.log new file mode 100644 index 0000000..9daef41 --- /dev/null +++ b/log/build_2025-11-09_22-11-31/voice_to_text_node/command.log @@ -0,0 +1,2 @@ +Invoking command in '/home/jake/ros2_ws/src/voice_to_text_node': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data +Invoked command in '/home/jake/ros2_ws/src/voice_to_text_node' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data diff --git a/log/build_2025-11-09_22-11-31/voice_to_text_node/stderr.log b/log/build_2025-11-09_22-11-31/voice_to_text_node/stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout.log b/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout.log new file mode 100644 index 0000000..38dcf0f --- /dev/null +++ b/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout.log @@ -0,0 +1,60 @@ +running egg_info +creating ../../build/voice_to_text_node/voice_to_text_node.egg-info +writing ../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO +writing dependency_links to ../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt +writing entry points to ../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt +writing requirements to ../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt +writing top-level names to ../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt +writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +reading manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +running build +running build_py +creating /home/jake/ros2_ws/build/voice_to_text_node/build +creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib +creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/__init__.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +running install +running install_lib +creating /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py to __init__.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py to voice_to_text_node.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py to threaded_node.cpython-312.pyc +running install_data +copying package.xml -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +copying resource/voice_to_text_node -> /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +copying resource/model/vosk-model-small-en-us-0.15/README -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +copying resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +copying resource/model/vosk-model-small-en-us-0.15/conf/model.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +copying resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +copying resource/model/vosk-model-small-en-us-0.15/am/final.mdl -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.ie -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.mat -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +running install_egg_info +Copying ../../build/voice_to_text_node/voice_to_text_node.egg-info to /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info +running install_scripts +Installing voice_to_text_node script to /home/jake/ros2_ws/install/voice_to_text_node/bin +writing list of installed files to '/home/jake/ros2_ws/build/voice_to_text_node/install.log' diff --git a/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout_stderr.log b/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout_stderr.log new file mode 100644 index 0000000..38dcf0f --- /dev/null +++ b/log/build_2025-11-09_22-11-31/voice_to_text_node/stdout_stderr.log @@ -0,0 +1,60 @@ +running egg_info +creating ../../build/voice_to_text_node/voice_to_text_node.egg-info +writing ../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO +writing dependency_links to ../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt +writing entry points to ../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt +writing requirements to ../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt +writing top-level names to ../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt +writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +reading manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +running build +running build_py +creating /home/jake/ros2_ws/build/voice_to_text_node/build +creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib +creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/__init__.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +copying ./voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +running install +running install_lib +creating /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py to __init__.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py to voice_to_text_node.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py to threaded_node.cpython-312.pyc +running install_data +copying package.xml -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index +creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +copying resource/voice_to_text_node -> /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +copying resource/model/vosk-model-small-en-us-0.15/README -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +copying resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +copying resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +copying resource/model/vosk-model-small-en-us-0.15/conf/model.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +copying resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +copying resource/model/vosk-model-small-en-us-0.15/am/final.mdl -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.ie -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/final.mat -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +copying resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +running install_egg_info +Copying ../../build/voice_to_text_node/voice_to_text_node.egg-info to /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info +running install_scripts +Installing voice_to_text_node script to /home/jake/ros2_ws/install/voice_to_text_node/bin +writing list of installed files to '/home/jake/ros2_ws/build/voice_to_text_node/install.log' diff --git a/log/build_2025-11-09_22-11-31/voice_to_text_node/streams.log b/log/build_2025-11-09_22-11-31/voice_to_text_node/streams.log new file mode 100644 index 0000000..ad38e1a --- /dev/null +++ b/log/build_2025-11-09_22-11-31/voice_to_text_node/streams.log @@ -0,0 +1,62 @@ +[0.940s] Invoking command in '/home/jake/ros2_ws/src/voice_to_text_node': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data +[1.182s] running egg_info +[1.182s] creating ../../build/voice_to_text_node/voice_to_text_node.egg-info +[1.203s] writing ../../build/voice_to_text_node/voice_to_text_node.egg-info/PKG-INFO +[1.203s] writing dependency_links to ../../build/voice_to_text_node/voice_to_text_node.egg-info/dependency_links.txt +[1.203s] writing entry points to ../../build/voice_to_text_node/voice_to_text_node.egg-info/entry_points.txt +[1.204s] writing requirements to ../../build/voice_to_text_node/voice_to_text_node.egg-info/requires.txt +[1.204s] writing top-level names to ../../build/voice_to_text_node/voice_to_text_node.egg-info/top_level.txt +[1.204s] writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +[1.245s] reading manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +[1.246s] writing manifest file '../../build/voice_to_text_node/voice_to_text_node.egg-info/SOURCES.txt' +[1.250s] running build +[1.250s] running build_py +[1.250s] creating /home/jake/ros2_ws/build/voice_to_text_node/build +[1.251s] creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib +[1.251s] creating /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +[1.252s] copying ./voice_to_text_node/__init__.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +[1.252s] copying ./voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +[1.253s] copying ./voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node +[1.253s] running install +[1.260s] running install_lib +[1.281s] creating /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +[1.281s] copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/__init__.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +[1.282s] copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/voice_to_text_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +[1.282s] copying /home/jake/ros2_ws/build/voice_to_text_node/build/lib/voice_to_text_node/threaded_node.py -> /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node +[1.282s] byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/__init__.py to __init__.cpython-312.pyc +[1.283s] byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/voice_to_text_node.py to voice_to_text_node.cpython-312.pyc +[1.284s] byte-compiling /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node/threaded_node.py to threaded_node.cpython-312.pyc +[1.286s] running install_data +[1.287s] copying package.xml -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node +[1.287s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index +[1.288s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index +[1.289s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +[1.289s] copying resource/voice_to_text_node -> /home/jake/ros2_ws/install/voice_to_text_node/share/ament_index/resource_index/packages +[1.290s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource +[1.290s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model +[1.291s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +[1.291s] copying resource/model/vosk-model-small-en-us-0.15/README -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15 +[1.292s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +[1.293s] copying resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +[1.365s] copying resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +[1.366s] copying resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph +[1.452s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +[1.453s] copying resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones +[1.454s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +[1.454s] copying resource/model/vosk-model-small-en-us-0.15/conf/model.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +[1.455s] copying resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf +[1.455s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +[1.456s] copying resource/model/vosk-model-small-en-us-0.15/am/final.mdl -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am +[1.511s] creating /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.512s] copying resource/model/vosk-model-small-en-us-0.15/ivector/final.ie -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.542s] copying resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.543s] copying resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.544s] copying resource/model/vosk-model-small-en-us-0.15/ivector/final.mat -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.545s] copying resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.545s] copying resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats -> /home/jake/ros2_ws/install/voice_to_text_node/share/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector +[1.545s] running install_egg_info +[1.567s] Copying ../../build/voice_to_text_node/voice_to_text_node.egg-info to /home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages/voice_to_text_node-0.1.0-py3.12.egg-info +[1.569s] running install_scripts +[1.704s] Installing voice_to_text_node script to /home/jake/ros2_ws/install/voice_to_text_node/bin +[1.705s] writing list of installed files to '/home/jake/ros2_ws/build/voice_to_text_node/install.log' +[1.736s] Invoked command in '/home/jake/ros2_ws/src/voice_to_text_node' returned '0': PYTHONPATH=/home/jake/ros2_ws/build/voice_to_text_node/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/install/voice_to_text_node/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/voice_to_text_node build --build-base /home/jake/ros2_ws/build/voice_to_text_node/build install --record /home/jake/ros2_ws/build/voice_to_text_node/install.log --single-version-externally-managed install_data diff --git a/log/latest_build b/log/latest_build index 060f86d..4dd77e3 120000 --- a/log/latest_build +++ b/log/latest_build @@ -1 +1 @@ -build_2025-11-09_19-38-47 \ No newline at end of file +build_2025-11-09_22-11-31 \ No newline at end of file diff --git a/src/voice_to_text_node/build/.built_by b/src/voice_to_text_node/build/.built_by new file mode 100644 index 0000000..06e74ac --- /dev/null +++ b/src/voice_to_text_node/build/.built_by @@ -0,0 +1 @@ +colcon diff --git a/src/voice_to_text_node/build/COLCON_IGNORE b/src/voice_to_text_node/build/COLCON_IGNORE new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/build/cam_test/build/lib/cam_test/__init__.py b/src/voice_to_text_node/build/cam_test/build/lib/cam_test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/build/cam_test/build/lib/cam_test/cam_test.py b/src/voice_to_text_node/build/cam_test/build/lib/cam_test/cam_test.py new file mode 100644 index 0000000..46691fe --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/build/lib/cam_test/cam_test.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +import rclpy +from rclpy.node import Node +from std_msgs.msg import String + +class CamPublisher(Node): + def __init__(self): + super().__init__('cam_publisher') + self.publisher_ = self.create_publisher(String, 'cam_topic', 10) + self.timer = self.create_timer(1.0, self.publish_message) + + def publish_message(self): + msg = String() + msg.data = 'Cam from ROS 2!' + self.publisher_.publish(msg) + self.get_logger().info(f'Published: {msg.data}') + +def main(): + rclpy.init() + node = CamPublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/PKG-INFO b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/PKG-INFO new file mode 100644 index 0000000..44fe8d9 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/PKG-INFO @@ -0,0 +1,7 @@ +Metadata-Version: 2.1 +Name: cam-test +Version: 0.1.0 +Summary: Minimal Cam Test publisher +Maintainer: jake +Maintainer-email: jake@example.com +License: MIT diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/SOURCES.txt b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/SOURCES.txt new file mode 100644 index 0000000..3377802 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/SOURCES.txt @@ -0,0 +1,12 @@ +package.xml +setup.py +build/cam_test/cam_test.egg-info/PKG-INFO +build/cam_test/cam_test.egg-info/SOURCES.txt +build/cam_test/cam_test.egg-info/dependency_links.txt +build/cam_test/cam_test.egg-info/entry_points.txt +build/cam_test/cam_test.egg-info/requires.txt +build/cam_test/cam_test.egg-info/top_level.txt +build/cam_test/cam_test.egg-info/zip-safe +cam_test/__init__.py +cam_test/cam_test.py +resource/cam_test \ No newline at end of file diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/dependency_links.txt b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/entry_points.txt b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/entry_points.txt new file mode 100644 index 0000000..de71f3f --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +cam_test = cam_test.cam_test:main diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/requires.txt b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/requires.txt new file mode 100644 index 0000000..49fe098 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/requires.txt @@ -0,0 +1 @@ +setuptools diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/top_level.txt b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/top_level.txt new file mode 100644 index 0000000..36a80fa --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/top_level.txt @@ -0,0 +1 @@ +cam_test diff --git a/src/voice_to_text_node/build/cam_test/cam_test.egg-info/zip-safe b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/cam_test.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/src/voice_to_text_node/build/cam_test/colcon_build.rc b/src/voice_to_text_node/build/cam_test/colcon_build.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/colcon_build.rc @@ -0,0 +1 @@ +0 diff --git a/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh b/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh new file mode 100644 index 0000000..f9867d5 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh @@ -0,0 +1 @@ +# generated from colcon_core/shell/template/command_prefix.sh.em diff --git a/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh.env b/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh.env new file mode 100644 index 0000000..89b93e7 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/colcon_command_prefix_setup_py.sh.env @@ -0,0 +1,46 @@ +AMENT_PREFIX_PATH=/home/jake/ros2_ws/install/hello_pub:/opt/ros/kilted +CMAKE_PREFIX_PATH=/opt/ros/kilted/opt/gz_math_vendor:/opt/ros/kilted/opt/gz_utils_vendor:/opt/ros/kilted/opt/gz_cmake_vendor +COLCON=1 +COLCON_PREFIX_PATH=/home/jake/ros2_ws/install +COLORTERM=truecolor +DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus +DISPLAY=10.255.255.254:0 +GIT_ASKPASS=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass.sh +HOME=/home/jake +HOSTTYPE=x86_64 +LANG=C.UTF-8 +LD_LIBRARY_PATH=/opt/ros/kilted/opt/zenoh_cpp_vendor/lib:/opt/ros/kilted/opt/gz_math_vendor/lib:/opt/ros/kilted/opt/gz_utils_vendor/lib:/opt/ros/kilted/opt/rviz_ogre_vendor/lib:/opt/ros/kilted/lib/x86_64-linux-gnu:/opt/ros/kilted/opt/gz_cmake_vendor/lib:/opt/ros/kilted/lib +LESSCLOSE=/usr/bin/lesspipe %s %s +LESSOPEN=| /usr/bin/lesspipe %s +LOGNAME=jake +LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90: +NAME=DESKTOP-UFLG41E +OLDPWD=/home/jake/ros2_ws/src +PATH=/home/jake/ros2_ws/install/hello_pub/bin:/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/bin/remote-cli:/opt/ros/kilted/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/jake/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jake/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin:/home/jake/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand +PULSE_SERVER=unix:/mnt/wslg/PulseServer +PWD=/home/jake/ros2_ws/src/cam_test/build/cam_test +PYTHONPATH=/home/jake/ros2_ws/install/hello_pub/lib/python3.12/site-packages:/opt/ros/kilted/lib/python3.12/site-packages +ROS_AUTOMATIC_DISCOVERY_RANGE=SUBNET +ROS_DISTRO=kilted +ROS_PYTHON_VERSION=3 +ROS_VERSION=2 +SHELL=/bin/bash +SHLVL=1 +TERM=xterm-256color +TERM_PROGRAM=vscode +TERM_PROGRAM_VERSION=1.105.1 +USER=jake +VSCODE_GIT_ASKPASS_EXTRA_ARGS= +VSCODE_GIT_ASKPASS_MAIN=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass-main.js +VSCODE_GIT_ASKPASS_NODE=/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/node +VSCODE_GIT_IPC_HANDLE=/run/user/1001/vscode-git-1d6e8e65c1.sock +VSCODE_IPC_HOOK_CLI=/run/user/1001/vscode-ipc-bc7e8c25-b626-4f8f-989e-c38b7c8e334a.sock +VSCODE_PYTHON_AUTOACTIVATE_GUARD=1 +WAYLAND_DISPLAY=wayland-0 +WSL2_GUI_APPS_ENABLED=1 +WSLENV=VSCODE_WSL_EXT_LOCATION/up +WSL_DISTRO_NAME=Ubuntu-24.04 +WSL_INTEROP=/run/WSL/468_interop +XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop +XDG_RUNTIME_DIR=/run/user/1001/ +_=/usr/bin/colcon diff --git a/src/voice_to_text_node/build/cam_test/install.log b/src/voice_to_text_node/build/cam_test/install.log new file mode 100644 index 0000000..9ee098c --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/install.log @@ -0,0 +1,14 @@ +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/cam_test.cpython-312.pyc +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/__init__.cpython-312.pyc +/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.xml +/home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages/cam_test +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/entry_points.txt +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/SOURCES.txt +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/zip-safe +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/top_level.txt +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/dependency_links.txt +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/requires.txt +/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/PKG-INFO +/home/jake/ros2_ws/src/cam_test/install/cam_test/bin/cam_test diff --git a/src/voice_to_text_node/build/cam_test/prefix_override/__pycache__/sitecustomize.cpython-312.pyc b/src/voice_to_text_node/build/cam_test/prefix_override/__pycache__/sitecustomize.cpython-312.pyc new file mode 100644 index 0000000..f4d8f5c Binary files /dev/null and b/src/voice_to_text_node/build/cam_test/prefix_override/__pycache__/sitecustomize.cpython-312.pyc differ diff --git a/src/voice_to_text_node/build/cam_test/prefix_override/sitecustomize.py b/src/voice_to_text_node/build/cam_test/prefix_override/sitecustomize.py new file mode 100644 index 0000000..0c35ec5 --- /dev/null +++ b/src/voice_to_text_node/build/cam_test/prefix_override/sitecustomize.py @@ -0,0 +1,4 @@ +import sys +if sys.prefix == '/usr': + sys.real_prefix = sys.prefix + sys.prefix = sys.exec_prefix = '/home/jake/ros2_ws/src/cam_test/install/cam_test' diff --git a/src/voice_to_text_node/install/.colcon_install_layout b/src/voice_to_text_node/install/.colcon_install_layout new file mode 100644 index 0000000..3aad533 --- /dev/null +++ b/src/voice_to_text_node/install/.colcon_install_layout @@ -0,0 +1 @@ +isolated diff --git a/src/voice_to_text_node/install/COLCON_IGNORE b/src/voice_to_text_node/install/COLCON_IGNORE new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/install/_local_setup_util_ps1.py b/src/voice_to_text_node/install/_local_setup_util_ps1.py new file mode 100644 index 0000000..3c6d9e8 --- /dev/null +++ b/src/voice_to_text_node/install/_local_setup_util_ps1.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"' +FORMAT_STR_USE_ENV_VAR = '$env:{name}' +FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/src/voice_to_text_node/install/_local_setup_util_sh.py b/src/voice_to_text_node/install/_local_setup_util_sh.py new file mode 100644 index 0000000..f67eaa9 --- /dev/null +++ b/src/voice_to_text_node/install/_local_setup_util_sh.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"' +FORMAT_STR_USE_ENV_VAR = '${name}' +FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'if [ "$(echo -n ${name} | head -c 1)" = ":" ]; then export {name}=${{{name}#?}} ; fi' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'if [ "$(echo -n ${name} | tail -c 1)" = ":" ]; then export {name}=${{{name}%?}} ; fi' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/src/voice_to_text_node/install/cam_test/bin/cam_test b/src/voice_to_text_node/install/cam_test/bin/cam_test new file mode 100755 index 0000000..212a832 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/bin/cam_test @@ -0,0 +1,33 @@ +#!/home/jake/miniconda3/envs/rknn/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'cam-test==0.1.0','console_scripts','cam_test' +import re +import sys + +# for compatibility with easy_install; see #2198 +__requires__ = 'cam-test==0.1.0' + +try: + from importlib.metadata import distribution +except ImportError: + try: + from importlib_metadata import distribution + except ImportError: + from pkg_resources import load_entry_point + + +def importlib_load_entry_point(spec, group, name): + dist_name, _, _ = spec.partition('==') + matches = ( + entry_point + for entry_point in distribution(dist_name).entry_points + if entry_point.group == group and entry_point.name == name + ) + return next(matches).load() + + +globals().setdefault('load_entry_point', importlib_load_entry_point) + + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(load_entry_point('cam-test==0.1.0', 'console_scripts', 'cam_test')()) diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/PKG-INFO b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/PKG-INFO new file mode 100644 index 0000000..44fe8d9 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/PKG-INFO @@ -0,0 +1,7 @@ +Metadata-Version: 2.1 +Name: cam-test +Version: 0.1.0 +Summary: Minimal Cam Test publisher +Maintainer: jake +Maintainer-email: jake@example.com +License: MIT diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/SOURCES.txt b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/SOURCES.txt new file mode 100644 index 0000000..3377802 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/SOURCES.txt @@ -0,0 +1,12 @@ +package.xml +setup.py +build/cam_test/cam_test.egg-info/PKG-INFO +build/cam_test/cam_test.egg-info/SOURCES.txt +build/cam_test/cam_test.egg-info/dependency_links.txt +build/cam_test/cam_test.egg-info/entry_points.txt +build/cam_test/cam_test.egg-info/requires.txt +build/cam_test/cam_test.egg-info/top_level.txt +build/cam_test/cam_test.egg-info/zip-safe +cam_test/__init__.py +cam_test/cam_test.py +resource/cam_test \ No newline at end of file diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/dependency_links.txt b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/entry_points.txt b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/entry_points.txt new file mode 100644 index 0000000..de71f3f --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +cam_test = cam_test.cam_test:main diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/requires.txt b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/requires.txt new file mode 100644 index 0000000..49fe098 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/requires.txt @@ -0,0 +1 @@ +setuptools diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/top_level.txt b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/top_level.txt new file mode 100644 index 0000000..36a80fa --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/top_level.txt @@ -0,0 +1 @@ +cam_test diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/zip-safe b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info/zip-safe @@ -0,0 +1 @@ + diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/__init__.cpython-312.pyc b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..fa9f13f Binary files /dev/null and b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/__init__.cpython-312.pyc differ diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/cam_test.cpython-312.pyc b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/cam_test.cpython-312.pyc new file mode 100644 index 0000000..946ed0c Binary files /dev/null and b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/__pycache__/cam_test.cpython-312.pyc differ diff --git a/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py new file mode 100644 index 0000000..46691fe --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +import rclpy +from rclpy.node import Node +from std_msgs.msg import String + +class CamPublisher(Node): + def __init__(self): + super().__init__('cam_publisher') + self.publisher_ = self.create_publisher(String, 'cam_topic', 10) + self.timer = self.create_timer(1.0, self.publish_message) + + def publish_message(self): + msg = String() + msg.data = 'Cam from ROS 2!' + self.publisher_.publish(msg) + self.get_logger().info(f'Published: {msg.data}') + +def main(): + rclpy.init() + node = CamPublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/src/voice_to_text_node/install/cam_test/share/ament_index/resource_index/packages/cam_test b/src/voice_to_text_node/install/cam_test/share/ament_index/resource_index/packages/cam_test new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.dsv b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.dsv new file mode 100644 index 0000000..79d4c95 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;AMENT_PREFIX_PATH; diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.ps1 b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.ps1 new file mode 100644 index 0000000..26b9997 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value AMENT_PREFIX_PATH "$env:COLCON_CURRENT_PREFIX" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.sh b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.sh new file mode 100644 index 0000000..f3041f6 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/ament_prefix_path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value AMENT_PREFIX_PATH "$COLCON_CURRENT_PREFIX" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.dsv b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.dsv new file mode 100644 index 0000000..95435e0 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.ps1 b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.ps1 new file mode 100644 index 0000000..0b980ef --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.sh b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.sh new file mode 100644 index 0000000..295266d --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.dsv b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.dsv new file mode 100644 index 0000000..c2ddcdb --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PYTHONPATH;lib/python3.12/site-packages diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.ps1 b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.ps1 new file mode 100644 index 0000000..bdd69af --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PYTHONPATH "$env:COLCON_CURRENT_PREFIX\lib/python3.12/site-packages" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.sh b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.sh new file mode 100644 index 0000000..45388fe --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonpath.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PYTHONPATH "$COLCON_CURRENT_PREFIX/lib/python3.12/site-packages" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.dsv b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.dsv new file mode 100644 index 0000000..95435e0 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.ps1 b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.ps1 new file mode 100644 index 0000000..0b980ef --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.sh b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.sh new file mode 100644 index 0000000..295266d --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/hook/pythonscriptspath.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.bash b/src/voice_to_text_node/install/cam_test/share/cam_test/package.bash new file mode 100644 index 0000000..ea4b77b --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.bash @@ -0,0 +1,31 @@ +# generated from colcon_bash/shell/template/package.bash.em + +# This script extends the environment for this package. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" +else + _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh script of this package +_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/cam_test/package.sh" + +unset _colcon_package_bash_source_script +unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.dsv b/src/voice_to_text_node/install/cam_test/share/cam_test/package.dsv new file mode 100644 index 0000000..8beb19c --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.dsv @@ -0,0 +1,12 @@ +source;share/cam_test/hook/path.ps1 +source;share/cam_test/hook/path.dsv +source;share/cam_test/hook/path.sh +source;share/cam_test/hook/pythonpath.ps1 +source;share/cam_test/hook/pythonpath.dsv +source;share/cam_test/hook/pythonpath.sh +source;share/cam_test/hook/pythonscriptspath.ps1 +source;share/cam_test/hook/pythonscriptspath.dsv +source;share/cam_test/hook/pythonscriptspath.sh +source;share/cam_test/hook/ament_prefix_path.ps1 +source;share/cam_test/hook/ament_prefix_path.dsv +source;share/cam_test/hook/ament_prefix_path.sh diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.ps1 b/src/voice_to_text_node/install/cam_test/share/cam_test/package.ps1 new file mode 100644 index 0000000..dce86f9 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.ps1 @@ -0,0 +1,118 @@ +# generated from colcon_powershell/shell/template/package.ps1.em + +# function to append a value to a variable +# which uses colons as separators +# duplicates as well as leading separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_append_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + $_duplicate="" + # start with no values + $_all_values="" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -eq $_value) { + $_duplicate="1" + } + if ($_all_values) { + $_all_values="${_all_values};$_" + } else { + $_all_values="$_" + } + } + } + } + # append only non-duplicates + if (!$_duplicate) { + # avoid leading separator + if ($_all_values) { + $_all_values="${_all_values};${_value}" + } else { + $_all_values="${_value}" + } + } + + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_prepend_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + # start with the new value + $_all_values="$_value" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -ne $_value) { + # keep non-duplicate values + $_all_values="${_all_values};$_" + } + } + } + } + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +function colcon_package_source_powershell_script { + param ( + $_colcon_package_source_powershell_script + ) + # source script with conditional trace output + if (Test-Path $_colcon_package_source_powershell_script) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_package_source_powershell_script'" + } + . "$_colcon_package_source_powershell_script" + } else { + Write-Error "not found: '$_colcon_package_source_powershell_script'" + } +} + + +# a powershell script is able to determine its own path +# the prefix is two levels up from the package specific share directory +$env:COLCON_CURRENT_PREFIX=(Get-Item $PSCommandPath).Directory.Parent.Parent.FullName + +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/cam_test/hook/path.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/cam_test/hook/pythonpath.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/cam_test/hook/pythonscriptspath.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/cam_test/hook/ament_prefix_path.ps1" + +Remove-Item Env:\COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.sh b/src/voice_to_text_node/install/cam_test/share/cam_test/package.sh new file mode 100644 index 0000000..b46ac91 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.sh @@ -0,0 +1,89 @@ +# generated from colcon_core/shell/template/package.sh.em + +# This script extends the environment for this package. + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prepend_unique_value_IFS=$IFS + IFS=":" + # start with the new value + _all_values="$_value" + # workaround SH_WORD_SPLIT not being set in zsh + if [ "$(command -v colcon_zsh_convert_to_array)" ]; then + colcon_zsh_convert_to_array _values + fi + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + # restore the field separator + IFS=$_colcon_prepend_unique_value_IFS + unset _colcon_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_package_sh_COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/src/cam_test/install/cam_test" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_package_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_package_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_package_sh_COLCON_CURRENT_PREFIX + return 1 + fi + COLCON_CURRENT_PREFIX="$_colcon_package_sh_COLCON_CURRENT_PREFIX" +fi +unset _colcon_package_sh_COLCON_CURRENT_PREFIX + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh hooks +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/cam_test/hook/path.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/cam_test/hook/pythonpath.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/cam_test/hook/pythonscriptspath.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/cam_test/hook/ament_prefix_path.sh" + +unset _colcon_package_sh_source_script +unset COLCON_CURRENT_PREFIX + +# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.xml b/src/voice_to_text_node/install/cam_test/share/cam_test/package.xml new file mode 100644 index 0000000..a7001df --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.xml @@ -0,0 +1,19 @@ + + + cam_test + 0.1.0 + Minimal Cam Test publisher + Jake + MIT + + ament_python + rclpy + std_msgs + + ament_lint_auto + ament_lint_common + + + ament_python + + diff --git a/src/voice_to_text_node/install/cam_test/share/cam_test/package.zsh b/src/voice_to_text_node/install/cam_test/share/cam_test/package.zsh new file mode 100644 index 0000000..0a1257b --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/cam_test/package.zsh @@ -0,0 +1,42 @@ +# generated from colcon_zsh/shell/template/package.zsh.em + +# This script extends the environment for this package. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" +else + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +colcon_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# source sh script of this package +_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/cam_test/package.sh" +unset convert_zsh_to_array + +unset _colcon_package_zsh_source_script +unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/cam_test/share/colcon-core/packages/cam_test b/src/voice_to_text_node/install/cam_test/share/colcon-core/packages/cam_test new file mode 100644 index 0000000..de58d89 --- /dev/null +++ b/src/voice_to_text_node/install/cam_test/share/colcon-core/packages/cam_test @@ -0,0 +1 @@ +rclpy:std_msgs \ No newline at end of file diff --git a/src/voice_to_text_node/install/local_setup.bash b/src/voice_to_text_node/install/local_setup.bash new file mode 100644 index 0000000..03f0025 --- /dev/null +++ b/src/voice_to_text_node/install/local_setup.bash @@ -0,0 +1,121 @@ +# generated from colcon_bash/shell/template/prefix.bash.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +else + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_bash_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_bash_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_bash_prepend_unique_value_IFS" + unset _colcon_prefix_bash_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_bash_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_bash_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh bash)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_bash_COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/local_setup.ps1 b/src/voice_to_text_node/install/local_setup.ps1 new file mode 100644 index 0000000..6f68c8d --- /dev/null +++ b/src/voice_to_text_node/install/local_setup.ps1 @@ -0,0 +1,55 @@ +# generated from colcon_powershell/shell/template/prefix.ps1.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# check environment variable for custom Python executable +if ($env:COLCON_PYTHON_EXECUTABLE) { + if (!(Test-Path "$env:COLCON_PYTHON_EXECUTABLE" -PathType Leaf)) { + echo "error: COLCON_PYTHON_EXECUTABLE '$env:COLCON_PYTHON_EXECUTABLE' doesn't exist" + exit 1 + } + $_colcon_python_executable="$env:COLCON_PYTHON_EXECUTABLE" +} else { + # use the Python executable known at configure time + $_colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if (!(Test-Path "$_colcon_python_executable" -PathType Leaf)) { + if (!(Get-Command "python3" -ErrorAction SilentlyContinue)) { + echo "error: unable to find python3 executable" + exit 1 + } + $_colcon_python_executable="python3" + } +} + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_powershell_source_script { + param ( + $_colcon_prefix_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_powershell_source_script_param'" + } + . "$_colcon_prefix_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_powershell_source_script_param'" + } +} + +# get all commands in topological order +$_colcon_ordered_commands = & "$_colcon_python_executable" "$(Split-Path $PSCommandPath -Parent)/_local_setup_util_ps1.py" ps1 + +# execute all commands in topological order +if ($env:COLCON_TRACE) { + echo "Execute generated script:" + echo "<<<" + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Write-Output + echo ">>>" +} +if ($_colcon_ordered_commands) { + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Invoke-Expression +} diff --git a/src/voice_to_text_node/install/local_setup.sh b/src/voice_to_text_node/install/local_setup.sh new file mode 100644 index 0000000..0097ccc --- /dev/null +++ b/src/voice_to_text_node/install/local_setup.sh @@ -0,0 +1,137 @@ +# generated from colcon_core/shell/template/prefix.sh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/src/cam_test/install" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX + return 1 + fi +else + _colcon_prefix_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_sh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_sh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_sh_prepend_unique_value_IFS" + unset _colcon_prefix_sh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_sh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_sh_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "_colcon_prefix_sh_source_script() { + if [ -f \"\$1\" ]; then + if [ -n \"\$COLCON_TRACE\" ]; then + echo \"# . \\\"\$1\\\"\" + fi + . \"\$1\" + else + echo \"not found: \\\"\$1\\\"\" 1>&2 + fi + }" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/local_setup.zsh b/src/voice_to_text_node/install/local_setup.zsh new file mode 100644 index 0000000..b648710 --- /dev/null +++ b/src/voice_to_text_node/install/local_setup.zsh @@ -0,0 +1,134 @@ +# generated from colcon_zsh/shell/template/prefix.zsh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +else + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +_colcon_prefix_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_zsh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_zsh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # workaround SH_WORD_SPLIT not being set + _colcon_prefix_zsh_convert_to_array _values + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_zsh_prepend_unique_value_IFS" + unset _colcon_prefix_zsh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_zsh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_zsh_prepend_unique_value +unset _colcon_prefix_zsh_convert_to_array + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh zsh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_zsh_COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/setup.bash b/src/voice_to_text_node/install/setup.bash new file mode 100644 index 0000000..c1ab21b --- /dev/null +++ b/src/voice_to_text_node/install/setup.bash @@ -0,0 +1,34 @@ +# generated from colcon_bash/shell/template/prefix_chain.bash.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/kilted" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/install" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_bash_source_script diff --git a/src/voice_to_text_node/install/setup.ps1 b/src/voice_to_text_node/install/setup.ps1 new file mode 100644 index 0000000..06e97ae --- /dev/null +++ b/src/voice_to_text_node/install/setup.ps1 @@ -0,0 +1,30 @@ +# generated from colcon_powershell/shell/template/prefix_chain.ps1.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_chain_powershell_source_script { + param ( + $_colcon_prefix_chain_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_chain_powershell_source_script_param'" + } + . "$_colcon_prefix_chain_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'" + } +} + +# source chained prefixes +_colcon_prefix_chain_powershell_source_script "/opt/ros/kilted\local_setup.ps1" +_colcon_prefix_chain_powershell_source_script "/home/jake/ros2_ws/install\local_setup.ps1" + +# source this prefix +$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent) +_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1" diff --git a/src/voice_to_text_node/install/setup.sh b/src/voice_to_text_node/install/setup.sh new file mode 100644 index 0000000..7fa22f4 --- /dev/null +++ b/src/voice_to_text_node/install/setup.sh @@ -0,0 +1,49 @@ +# generated from colcon_core/shell/template/prefix_chain.sh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/home/jake/ros2_ws/src/cam_test/install +if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX + return 1 +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/kilted" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/install" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + +unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_sh_source_script +unset COLCON_CURRENT_PREFIX diff --git a/src/voice_to_text_node/install/setup.zsh b/src/voice_to_text_node/install/setup.zsh new file mode 100644 index 0000000..416cfe8 --- /dev/null +++ b/src/voice_to_text_node/install/setup.zsh @@ -0,0 +1,34 @@ +# generated from colcon_zsh/shell/template/prefix_chain.zsh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/kilted" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/home/jake/ros2_ws/install" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_zsh_source_script diff --git a/src/voice_to_text_node/log/COLCON_IGNORE b/src/voice_to_text_node/log/COLCON_IGNORE new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/command.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/command.log new file mode 100644 index 0000000..52a9e43 --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/command.log @@ -0,0 +1,2 @@ +Invoking command in '/home/jake/ros2_ws/src/cam_test': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data +Invoked command in '/home/jake/ros2_ws/src/cam_test' returned '0': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stderr.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout.log new file mode 100644 index 0000000..795fc7e --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout.log @@ -0,0 +1,35 @@ +running egg_info +creating build/cam_test/cam_test.egg-info +writing build/cam_test/cam_test.egg-info/PKG-INFO +writing dependency_links to build/cam_test/cam_test.egg-info/dependency_links.txt +writing entry points to build/cam_test/cam_test.egg-info/entry_points.txt +writing requirements to build/cam_test/cam_test.egg-info/requires.txt +writing top-level names to build/cam_test/cam_test.egg-info/top_level.txt +writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +reading manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +running build +running build_py +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +copying cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +copying cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +running install +running install_lib +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py to cam_test.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py to __init__.cpython-312.pyc +running install_data +copying package.xml -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +copying resource/cam_test -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +running install_egg_info +Copying build/cam_test/cam_test.egg-info to /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info +running install_scripts +Installing cam_test script to /home/jake/ros2_ws/src/cam_test/install/cam_test/bin +writing list of installed files to '/home/jake/ros2_ws/src/cam_test/build/cam_test/install.log' diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout_stderr.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout_stderr.log new file mode 100644 index 0000000..795fc7e --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/stdout_stderr.log @@ -0,0 +1,35 @@ +running egg_info +creating build/cam_test/cam_test.egg-info +writing build/cam_test/cam_test.egg-info/PKG-INFO +writing dependency_links to build/cam_test/cam_test.egg-info/dependency_links.txt +writing entry points to build/cam_test/cam_test.egg-info/entry_points.txt +writing requirements to build/cam_test/cam_test.egg-info/requires.txt +writing top-level names to build/cam_test/cam_test.egg-info/top_level.txt +writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +reading manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +running build +running build_py +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib +creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +copying cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +copying cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +running install +running install_lib +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py to cam_test.cpython-312.pyc +byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py to __init__.cpython-312.pyc +running install_data +copying package.xml -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index +creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +copying resource/cam_test -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +running install_egg_info +Copying build/cam_test/cam_test.egg-info to /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info +running install_scripts +Installing cam_test script to /home/jake/ros2_ws/src/cam_test/install/cam_test/bin +writing list of installed files to '/home/jake/ros2_ws/src/cam_test/build/cam_test/install.log' diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/streams.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/streams.log new file mode 100644 index 0000000..4a0bab3 --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/cam_test/streams.log @@ -0,0 +1,37 @@ +[1.018s] Invoking command in '/home/jake/ros2_ws/src/cam_test': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data +[1.258s] running egg_info +[1.258s] creating build/cam_test/cam_test.egg-info +[1.276s] writing build/cam_test/cam_test.egg-info/PKG-INFO +[1.276s] writing dependency_links to build/cam_test/cam_test.egg-info/dependency_links.txt +[1.276s] writing entry points to build/cam_test/cam_test.egg-info/entry_points.txt +[1.276s] writing requirements to build/cam_test/cam_test.egg-info/requires.txt +[1.277s] writing top-level names to build/cam_test/cam_test.egg-info/top_level.txt +[1.277s] writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +[1.311s] reading manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +[1.311s] writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt' +[1.312s] running build +[1.312s] running build_py +[1.312s] creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build +[1.313s] creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib +[1.314s] creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +[1.314s] copying cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +[1.315s] copying cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test +[1.315s] running install +[1.320s] running install_lib +[1.338s] creating /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +[1.338s] copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +[1.339s] copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test +[1.339s] byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py to cam_test.cpython-312.pyc +[1.340s] byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py to __init__.cpython-312.pyc +[1.340s] running install_data +[1.340s] copying package.xml -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test +[1.341s] creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index +[1.341s] creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index +[1.342s] creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +[1.342s] copying resource/cam_test -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages +[1.342s] running install_egg_info +[1.361s] Copying build/cam_test/cam_test.egg-info to /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info +[1.362s] running install_scripts +[1.474s] Installing cam_test script to /home/jake/ros2_ws/src/cam_test/install/cam_test/bin +[1.475s] writing list of installed files to '/home/jake/ros2_ws/src/cam_test/build/cam_test/install.log' +[1.505s] Invoked command in '/home/jake/ros2_ws/src/cam_test' returned '0': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/events.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/events.log new file mode 100644 index 0000000..2f0fd68 --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/events.log @@ -0,0 +1,57 @@ +[0.000000] (-) TimerEvent: {} +[0.000458] (cam_test) JobQueued: {'identifier': 'cam_test', 'dependencies': OrderedDict()} +[0.000535] (cam_test) JobStarted: {'identifier': 'cam_test'} +[0.099608] (-) TimerEvent: {} +[0.199943] (-) TimerEvent: {} +[0.300816] (-) TimerEvent: {} +[0.401119] (-) TimerEvent: {} +[0.501609] (-) TimerEvent: {} +[0.602173] (-) TimerEvent: {} +[0.702517] (-) TimerEvent: {} +[0.802871] (-) TimerEvent: {} +[0.903228] (-) TimerEvent: {} +[1.003629] (-) TimerEvent: {} +[1.014900] (cam_test) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', 'build/cam_test', 'build', '--build-base', '/home/jake/ros2_ws/src/cam_test/build/cam_test/build', 'install', '--record', '/home/jake/ros2_ws/src/cam_test/build/cam_test/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/home/jake/ros2_ws/src/cam_test', 'env': {'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'jake', 'GIT_ASKPASS': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass.sh', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/kilted/opt/zenoh_cpp_vendor/lib:/opt/ros/kilted/opt/gz_math_vendor/lib:/opt/ros/kilted/opt/gz_utils_vendor/lib:/opt/ros/kilted/opt/rviz_ogre_vendor/lib:/opt/ros/kilted/lib/x86_64-linux-gnu:/opt/ros/kilted/opt/gz_cmake_vendor/lib:/opt/ros/kilted/lib', 'HOME': '/home/jake', 'OLDPWD': '/home/jake/ros2_ws/src', 'TERM_PROGRAM_VERSION': '1.105.1', 'VSCODE_IPC_HOOK_CLI': '/run/user/1001/vscode-ipc-bc7e8c25-b626-4f8f-989e-c38b7c8e334a.sock', 'ROS_PYTHON_VERSION': '3', 'VSCODE_GIT_ASKPASS_MAIN': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/extensions/git/dist/askpass-main.js', 'VSCODE_GIT_ASKPASS_NODE': '/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/node', 'VSCODE_PYTHON_AUTOACTIVATE_GUARD': '1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'COLORTERM': 'truecolor', 'WSL_DISTRO_NAME': 'Ubuntu-24.04', 'WAYLAND_DISPLAY': 'wayland-0', 'COLCON_PREFIX_PATH': '/home/jake/ros2_ws/install', 'ROS_DISTRO': 'kilted', 'LOGNAME': 'jake', 'NAME': 'DESKTOP-UFLG41E', 'WSL_INTEROP': '/run/WSL/468_interop', 'PULSE_SERVER': 'unix:/mnt/wslg/PulseServer', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm-256color', 'PATH': '/home/jake/ros2_ws/install/hello_pub/bin:/home/jake/.vscode-server/bin/7d842fb85a0275a4a8e4d7e040d2625abbf7f084/bin/remote-cli:/opt/ros/kilted/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/jake/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jake/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin:/home/jake/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand', 'XDG_RUNTIME_DIR': '/run/user/1001/', 'DISPLAY': '10.255.255.254:0', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:', 'VSCODE_GIT_IPC_HANDLE': '/run/user/1001/vscode-git-1d6e8e65c1.sock', 'TERM_PROGRAM': 'vscode', 'AMENT_PREFIX_PATH': '/home/jake/ros2_ws/install/hello_pub:/opt/ros/kilted', 'SHELL': '/bin/bash', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'ROS_AUTOMATIC_DISCOVERY_RANGE': 'SUBNET', 'VSCODE_GIT_ASKPASS_EXTRA_ARGS': '', 'PWD': '/home/jake/ros2_ws/src/cam_test/build/cam_test', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PYTHONPATH': '/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:/home/jake/ros2_ws/install/hello_pub/lib/python3.12/site-packages:/opt/ros/kilted/lib/python3.12/site-packages', 'COLCON': '1', 'WSL2_GUI_APPS_ENABLED': '1', 'HOSTTYPE': 'x86_64', 'CMAKE_PREFIX_PATH': '/opt/ros/kilted/opt/gz_math_vendor:/opt/ros/kilted/opt/gz_utils_vendor:/opt/ros/kilted/opt/gz_cmake_vendor', 'WSLENV': 'VSCODE_WSL_EXT_LOCATION/up'}, 'shell': False} +[1.103746] (-) TimerEvent: {} +[1.204106] (-) TimerEvent: {} +[1.257910] (cam_test) StdoutLine: {'line': b'running egg_info\n'} +[1.258411] (cam_test) StdoutLine: {'line': b'creating build/cam_test/cam_test.egg-info\n'} +[1.275991] (cam_test) StdoutLine: {'line': b'writing build/cam_test/cam_test.egg-info/PKG-INFO\n'} +[1.276361] (cam_test) StdoutLine: {'line': b'writing dependency_links to build/cam_test/cam_test.egg-info/dependency_links.txt\n'} +[1.276592] (cam_test) StdoutLine: {'line': b'writing entry points to build/cam_test/cam_test.egg-info/entry_points.txt\n'} +[1.276876] (cam_test) StdoutLine: {'line': b'writing requirements to build/cam_test/cam_test.egg-info/requires.txt\n'} +[1.277131] (cam_test) StdoutLine: {'line': b'writing top-level names to build/cam_test/cam_test.egg-info/top_level.txt\n'} +[1.277320] (cam_test) StdoutLine: {'line': b"writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt'\n"} +[1.304271] (-) TimerEvent: {} +[1.311171] (cam_test) StdoutLine: {'line': b"reading manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt'\n"} +[1.311787] (cam_test) StdoutLine: {'line': b"writing manifest file 'build/cam_test/cam_test.egg-info/SOURCES.txt'\n"} +[1.312126] (cam_test) StdoutLine: {'line': b'running build\n'} +[1.312401] (cam_test) StdoutLine: {'line': b'running build_py\n'} +[1.312619] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build\n'} +[1.313423] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib\n'} +[1.313998] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test\n'} +[1.314607] (cam_test) StdoutLine: {'line': b'copying cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test\n'} +[1.314866] (cam_test) StdoutLine: {'line': b'copying cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test\n'} +[1.315130] (cam_test) StdoutLine: {'line': b'running install\n'} +[1.320665] (cam_test) StdoutLine: {'line': b'running install_lib\n'} +[1.337980] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test\n'} +[1.338797] (cam_test) StdoutLine: {'line': b'copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/cam_test.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test\n'} +[1.339120] (cam_test) StdoutLine: {'line': b'copying /home/jake/ros2_ws/src/cam_test/build/cam_test/build/lib/cam_test/__init__.py -> /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test\n'} +[1.339485] (cam_test) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/cam_test.py to cam_test.cpython-312.pyc\n'} +[1.340486] (cam_test) StdoutLine: {'line': b'byte-compiling /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test/__init__.py to __init__.cpython-312.pyc\n'} +[1.340803] (cam_test) StdoutLine: {'line': b'running install_data\n'} +[1.340914] (cam_test) StdoutLine: {'line': b'copying package.xml -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test\n'} +[1.341048] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index\n'} +[1.341702] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index\n'} +[1.342304] (cam_test) StdoutLine: {'line': b'creating /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages\n'} +[1.342842] (cam_test) StdoutLine: {'line': b'copying resource/cam_test -> /home/jake/ros2_ws/src/cam_test/install/cam_test/share/ament_index/resource_index/packages\n'} +[1.342989] (cam_test) StdoutLine: {'line': b'running install_egg_info\n'} +[1.361084] (cam_test) StdoutLine: {'line': b'Copying build/cam_test/cam_test.egg-info to /home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages/cam_test-0.1.0-py3.12.egg-info\n'} +[1.362826] (cam_test) StdoutLine: {'line': b'running install_scripts\n'} +[1.404401] (-) TimerEvent: {} +[1.474703] (cam_test) StdoutLine: {'line': b'Installing cam_test script to /home/jake/ros2_ws/src/cam_test/install/cam_test/bin\n'} +[1.475684] (cam_test) StdoutLine: {'line': b"writing list of installed files to '/home/jake/ros2_ws/src/cam_test/build/cam_test/install.log'\n"} +[1.504463] (-) TimerEvent: {} +[1.505490] (cam_test) CommandEnded: {'returncode': 0} +[1.524915] (cam_test) JobEnded: {'identifier': 'cam_test', 'rc': 0} +[1.526224] (-) EventReactorShutdown: {} diff --git a/src/voice_to_text_node/log/build_2025-11-08_16-59-45/logger_all.log b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/logger_all.log new file mode 100644 index 0000000..387eabc --- /dev/null +++ b/src/voice_to_text_node/log/build_2025-11-08_16-59-45/logger_all.log @@ -0,0 +1,100 @@ +[0.111s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'cam_test', '--event-handlers', 'console_direct+'] +[0.111s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=24, event_handlers=['console_direct+'], ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['cam_test'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=, verb_extension=, main=>) +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.151s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.151s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/jake/ros2_ws/src/cam_test' +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.151s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.152s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.152s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.152s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.177s] DEBUG:colcon.colcon_core.package_identification:Package '.' with type 'ros.ament_python' and name 'cam_test' +[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.192s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.193s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.194s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 1 installed packages in /home/jake/ros2_ws/install +[0.195s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 294 installed packages in /opt/ros/kilted +[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_args' from command line to 'None' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_target' from command line to 'None' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_clean_cache' from command line to 'False' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_clean_first' from command line to 'False' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'cmake_force_configure' from command line to 'False' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'ament_cmake_args' from command line to 'None' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'catkin_cmake_args' from command line to 'None' +[0.234s] Level 5:colcon.colcon_core.verb:set package 'cam_test' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.234s] DEBUG:colcon.colcon_core.verb:Building package 'cam_test' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/jake/ros2_ws/src/cam_test/build/cam_test', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/jake/ros2_ws/src/cam_test/install/cam_test', 'merge_install': False, 'path': '/home/jake/ros2_ws/src/cam_test', 'symlink_install': False, 'test_result_base': None} +[0.234s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.235s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.235s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/home/jake/ros2_ws/src/cam_test' with build type 'ament_python' +[0.236s] Level 1:colcon.colcon_core.shell:create_environment_hook('cam_test', 'ament_prefix_path') +[0.238s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.238s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/ament_prefix_path.ps1' +[0.241s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/ament_prefix_path.dsv' +[0.242s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/ament_prefix_path.sh' +[0.243s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.243s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.434s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/home/jake/ros2_ws/src/cam_test' +[0.434s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.434s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[1.254s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/home/jake/ros2_ws/src/cam_test': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data +[1.741s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/home/jake/ros2_ws/src/cam_test' returned '0': PYTHONPATH=/home/jake/ros2_ws/src/cam_test/build/cam_test/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base build/cam_test build --build-base /home/jake/ros2_ws/src/cam_test/build/cam_test/build install --record /home/jake/ros2_ws/src/cam_test/build/cam_test/install.log --single-version-externally-managed install_data +[1.747s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test' for CMake module files +[1.748s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test' for CMake config files +[1.748s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test/lib' +[1.748s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test/bin' +[1.749s] Level 1:colcon.colcon_core.shell:create_environment_hook('cam_test', 'path') +[1.749s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/path.ps1' +[1.749s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/path.dsv' +[1.750s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/path.sh' +[1.750s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/pkgconfig/cam_test.pc' +[1.750s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test/lib/python3.12/site-packages' +[1.750s] Level 1:colcon.colcon_core.shell:create_environment_hook('cam_test', 'pythonpath') +[1.750s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonpath.ps1' +[1.751s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonpath.dsv' +[1.751s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonpath.sh' +[1.752s] Level 1:colcon.colcon_core.environment:checking '/home/jake/ros2_ws/src/cam_test/install/cam_test/bin' +[1.752s] Level 1:colcon.colcon_core.shell:create_environment_hook('cam_test', 'pythonscriptspath') +[1.752s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonscriptspath.ps1' +[1.752s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonscriptspath.dsv' +[1.753s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/hook/pythonscriptspath.sh' +[1.753s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(cam_test) +[1.754s] INFO:colcon.colcon_core.shell:Creating package script '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.ps1' +[1.755s] INFO:colcon.colcon_core.shell:Creating package descriptor '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.dsv' +[1.755s] INFO:colcon.colcon_core.shell:Creating package script '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.sh' +[1.756s] INFO:colcon.colcon_core.shell:Creating package script '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.bash' +[1.757s] INFO:colcon.colcon_core.shell:Creating package script '/home/jake/ros2_ws/src/cam_test/install/cam_test/share/cam_test/package.zsh' +[1.758s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/home/jake/ros2_ws/src/cam_test/install/cam_test/share/colcon-core/packages/cam_test) +[1.760s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[1.761s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[1.761s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0' +[1.761s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[1.779s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[1.779s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[1.779s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[1.779s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[1.781s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files +[1.781s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[1.781s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/jake/ros2_ws/src/cam_test/install/local_setup.ps1' +[1.782s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/jake/ros2_ws/src/cam_test/install/_local_setup_util_ps1.py' +[1.783s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/jake/ros2_ws/src/cam_test/install/setup.ps1' +[1.784s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/jake/ros2_ws/src/cam_test/install/local_setup.sh' +[1.784s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/jake/ros2_ws/src/cam_test/install/_local_setup_util_sh.py' +[1.785s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/jake/ros2_ws/src/cam_test/install/setup.sh' +[1.786s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/jake/ros2_ws/src/cam_test/install/local_setup.bash' +[1.786s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/jake/ros2_ws/src/cam_test/install/setup.bash' +[1.787s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/jake/ros2_ws/src/cam_test/install/local_setup.zsh' +[1.788s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/jake/ros2_ws/src/cam_test/install/setup.zsh' diff --git a/src/voice_to_text_node/log/latest b/src/voice_to_text_node/log/latest new file mode 120000 index 0000000..b57d247 --- /dev/null +++ b/src/voice_to_text_node/log/latest @@ -0,0 +1 @@ +latest_build \ No newline at end of file diff --git a/src/voice_to_text_node/log/latest_build b/src/voice_to_text_node/log/latest_build new file mode 120000 index 0000000..83f3deb --- /dev/null +++ b/src/voice_to_text_node/log/latest_build @@ -0,0 +1 @@ +build_2025-11-08_16-59-45 \ No newline at end of file diff --git a/src/voice_to_text_node/package.xml b/src/voice_to_text_node/package.xml new file mode 100644 index 0000000..4e8a838 --- /dev/null +++ b/src/voice_to_text_node/package.xml @@ -0,0 +1,21 @@ + + + voice_to_text_node + 0.1.0 + Manages voice to text for Little Sophia + Jake + MIT + + ament_python + ament_python + + rclpy + std_msgs + + ament_lint_auto + ament_lint_common + + + ament_python + + diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README new file mode 100644 index 0000000..a7f7931 --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/README @@ -0,0 +1,9 @@ +US English model for mobile Vosk applications + +Copyright 2020 Alpha Cephei Inc + +Accuracy: 10.38 (tedlium test) 9.85 (librispeech test-clean) +Speed: 0.11xRT (desktop) +Latency: 0.15s (right context) + + diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl new file mode 100644 index 0000000..5596b31 Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/am/final.mdl differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf new file mode 100644 index 0000000..eaa40c5 --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/mfcc.conf @@ -0,0 +1,7 @@ +--sample-frequency=16000 +--use-energy=false +--num-mel-bins=40 +--num-ceps=40 +--low-freq=20 +--high-freq=7600 +--allow-downsample=true diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf new file mode 100644 index 0000000..9d5b0da --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/conf/model.conf @@ -0,0 +1,10 @@ +--min-active=200 +--max-active=3000 +--beam=10.0 +--lattice-beam=2.0 +--acoustic-scale=1.0 +--frame-subsampling-factor=3 +--endpoint.silence-phones=1:2:3:4:5:6:7:8:9:10 +--endpoint.rule2.min-trailing-silence=0.5 +--endpoint.rule3.min-trailing-silence=0.75 +--endpoint.rule4.min-trailing-silence=1.0 diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst new file mode 100644 index 0000000..1f292e6 Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/Gr.fst differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst new file mode 100644 index 0000000..9797b26 Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/HCLr.fst differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int new file mode 100644 index 0000000..762fd5f --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/disambig_tid.int @@ -0,0 +1,17 @@ +10015 +10016 +10017 +10018 +10019 +10020 +10021 +10022 +10023 +10024 +10025 +10026 +10027 +10028 +10029 +10030 +10031 diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int new file mode 100644 index 0000000..df23fd7 --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/graph/phones/word_boundary.int @@ -0,0 +1,166 @@ +1 nonword +2 begin +3 end +4 internal +5 singleton +6 nonword +7 begin +8 end +9 internal +10 singleton +11 begin +12 end +13 internal +14 singleton +15 begin +16 end +17 internal +18 singleton +19 begin +20 end +21 internal +22 singleton +23 begin +24 end +25 internal +26 singleton +27 begin +28 end +29 internal +30 singleton +31 begin +32 end +33 internal +34 singleton +35 begin +36 end +37 internal +38 singleton +39 begin +40 end +41 internal +42 singleton +43 begin +44 end +45 internal +46 singleton +47 begin +48 end +49 internal +50 singleton +51 begin +52 end +53 internal +54 singleton +55 begin +56 end +57 internal +58 singleton +59 begin +60 end +61 internal +62 singleton +63 begin +64 end +65 internal +66 singleton +67 begin +68 end +69 internal +70 singleton +71 begin +72 end +73 internal +74 singleton +75 begin +76 end +77 internal +78 singleton +79 begin +80 end +81 internal +82 singleton +83 begin +84 end +85 internal +86 singleton +87 begin +88 end +89 internal +90 singleton +91 begin +92 end +93 internal +94 singleton +95 begin +96 end +97 internal +98 singleton +99 begin +100 end +101 internal +102 singleton +103 begin +104 end +105 internal +106 singleton +107 begin +108 end +109 internal +110 singleton +111 begin +112 end +113 internal +114 singleton +115 begin +116 end +117 internal +118 singleton +119 begin +120 end +121 internal +122 singleton +123 begin +124 end +125 internal +126 singleton +127 begin +128 end +129 internal +130 singleton +131 begin +132 end +133 internal +134 singleton +135 begin +136 end +137 internal +138 singleton +139 begin +140 end +141 internal +142 singleton +143 begin +144 end +145 internal +146 singleton +147 begin +148 end +149 internal +150 singleton +151 begin +152 end +153 internal +154 singleton +155 begin +156 end +157 internal +158 singleton +159 begin +160 end +161 internal +162 singleton +163 begin +164 end +165 internal +166 singleton diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm new file mode 100644 index 0000000..db789eb Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.dubm differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie new file mode 100644 index 0000000..93737bf Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.ie differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat new file mode 100644 index 0000000..c3ec635 Binary files /dev/null and b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/final.mat differ diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats new file mode 100644 index 0000000..b9d92ef --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/global_cmvn.stats @@ -0,0 +1,3 @@ + [ + 1.682383e+11 -1.1595e+10 -1.521733e+10 4.32034e+09 -2.257938e+10 -1.969666e+10 -2.559265e+10 -1.535687e+10 -1.276854e+10 -4.494483e+09 -1.209085e+10 -5.64008e+09 -1.134847e+10 -3.419512e+09 -1.079542e+10 -4.145463e+09 -6.637486e+09 -1.11318e+09 -3.479773e+09 -1.245932e+08 -1.386961e+09 6.560655e+07 -2.436518e+08 -4.032432e+07 4.620046e+08 -7.714964e+07 9.551484e+08 -4.119761e+08 8.208582e+08 -7.117156e+08 7.457703e+08 -4.3106e+08 1.202726e+09 2.904036e+08 1.231931e+09 3.629848e+08 6.366939e+08 -4.586172e+08 -5.267629e+08 -3.507819e+08 1.679838e+09 + 1.741141e+13 8.92488e+11 8.743834e+11 8.848896e+11 1.190313e+12 1.160279e+12 1.300066e+12 1.005678e+12 9.39335e+11 8.089614e+11 7.927041e+11 6.882427e+11 6.444235e+11 5.151451e+11 4.825723e+11 3.210106e+11 2.720254e+11 1.772539e+11 1.248102e+11 6.691599e+10 3.599804e+10 1.207574e+10 1.679301e+09 4.594778e+08 5.821614e+09 1.451758e+10 2.55803e+10 3.43277e+10 4.245286e+10 4.784859e+10 4.988591e+10 4.925451e+10 5.074584e+10 4.9557e+10 4.407876e+10 3.421443e+10 3.138606e+10 2.539716e+10 1.948134e+10 1.381167e+10 0 ] diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf new file mode 100644 index 0000000..7748a4a --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/online_cmvn.conf @@ -0,0 +1 @@ +# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh diff --git a/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/src/voice_to_text_node/resource/model/vosk-model-small-en-us-0.15/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/src/voice_to_text_node/resource/voice_to_text_node b/src/voice_to_text_node/resource/voice_to_text_node new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/setup.py b/src/voice_to_text_node/setup.py new file mode 100644 index 0000000..4e8e406 --- /dev/null +++ b/src/voice_to_text_node/setup.py @@ -0,0 +1,37 @@ +from setuptools import setup +import os + +package_name = 'voice_to_text_node' + +def collect_model_files(): + base_dir = 'resource/model/vosk-model-small-en-us-0.15' + data_files = [] + for dirpath, _, filenames in os.walk(base_dir): + for f in filenames: + src_path = os.path.join(dirpath, f) + install_dir = os.path.join('share', package_name, dirpath) + data_files.append((install_dir, [src_path])) + return data_files + +setup( + name=package_name, + version='0.1.0', + packages=[package_name], + package_dir={'': '.'}, + data_files=[ + ('share/' + package_name, ['package.xml']), + ('share/ament_index/resource_index/packages', ['resource/' + package_name]), + ] + collect_model_files(), + install_requires=['setuptools'], + zip_safe=True, + maintainer='jake', + maintainer_email='jake@example.com', + description='Manages voice to text for Little Sophia', + license='MIT', + tests_require=['pytest'], + entry_points={ + 'console_scripts': [ + 'voice_to_text_node = voice_to_text_node.voice_to_text_node:main', + ], + }, +) diff --git a/src/voice_to_text_node/voice_to_text_node/__init__.py b/src/voice_to_text_node/voice_to_text_node/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/voice_to_text_node/voice_to_text_node/__pycache__/cam_test.cpython-38.pyc b/src/voice_to_text_node/voice_to_text_node/__pycache__/cam_test.cpython-38.pyc new file mode 100644 index 0000000..3537ba6 Binary files /dev/null and b/src/voice_to_text_node/voice_to_text_node/__pycache__/cam_test.cpython-38.pyc differ diff --git a/src/voice_to_text_node/voice_to_text_node/threaded_node.py b/src/voice_to_text_node/voice_to_text_node/threaded_node.py new file mode 100644 index 0000000..d3abe01 --- /dev/null +++ b/src/voice_to_text_node/voice_to_text_node/threaded_node.py @@ -0,0 +1,115 @@ +# threaded_node.py +import rclpy +from rclpy.node import Node +from rclpy.parameter import Parameter +from rcl_interfaces.msg import SetParametersResult, ParameterEvent +from std_msgs.msg import Bool, Float32 + +import time +import threading +import queue +from collections import deque + +class ThreadedNode(Node): + def __init__(self, name: str, default_rate: float = 1.0): + super().__init__(name) + + # Declare and initialize publish_rate + self.declare_parameter('publish_rate', default_rate) + self.publish_rate = self.get_parameter('publish_rate').get_parameter_value().double_value + + # Heartbeat publisher + self.heartbeat_pub = self.create_publisher(Bool, f'{name}/heartbeat', 1) + self.heartbeat_timer = self.create_timer(1.0, self.send_heartbeat) + + # Actual FPS publisher + self.fps_pub = self.create_publisher(Float32, f'{name}/fps', 1) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + # Work timer + self.timer = self.create_timer(1.0 / self.publish_rate, self.timer_callback) + + # Parameter update hooks + self.add_on_set_parameters_callback(self.param_callback) + self.create_subscription(ParameterEvent, '/parameter_events', self.parameter_event_listener, 10) + + self.setup_parameters() + self.setup_topics() + + # Worker thread setup + self.task_queue = queue.Queue() + self.worker_thread = threading.Thread(target=self.worker_loop, daemon=True) + self.worker_thread.start() + + def setup_parameters(self): + pass + + def setup_topics(self): + pass + + def send_heartbeat(self): + self.heartbeat_pub.publish(Bool(data=True)) + + def timer_callback(self): + if self.task_queue.empty(): + self.task_queue.put_nowait('tick') + + + def worker_loop(self): + while rclpy.ok(): + try: + task = self.task_queue.get(timeout=1.0) + if task == 'tick': + now = time.time() + self._tick_times.append(now) + + # Call the subclass's tick logic + try: + self.on_tick() + except Exception as e: + self.get_logger().error(f'on_tick failed: {e}') + + # Compute smoothed FPS + if len(self._tick_times) >= 2: + intervals = [t2 - t1 for t1, t2 in zip(self._tick_times, list(self._tick_times)[1:])] + avg_interval = sum(intervals) / len(intervals) + smoothed_fps = 1.0 / avg_interval if avg_interval > 0 else 0.0 + else: + smoothed_fps = 0.0 + + fps_msg = Float32() + fps_msg.data = smoothed_fps + self.fps_pub.publish(fps_msg) + + + except queue.Empty: + continue + + def on_tick(self): + # Override this in your subclass + pass + + def update_publish_rate(self, new_rate): + self.get_logger().info(f'Updating publish rate to {new_rate} Hz') + self.timer.cancel() + self.timer = self.create_timer(1.0 / new_rate, self.timer_callback) + self.publish_rate = new_rate + self.set_parameters([Parameter('publish_rate', Parameter.Type.DOUBLE, new_rate)]) + buffer_size = max(5, int(self.publish_rate * 5)) # 5 seconds worth of ticks + self._tick_times = deque(maxlen=buffer_size) + + def param_callback(self, params): + for param in params: + if param.name == 'publish_rate' and param.type_ == Parameter.Type.DOUBLE: + new_rate = param.value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) + return SetParametersResult(successful=True) + + def parameter_event_listener(self, event: ParameterEvent): + for changed in event.changed_parameters: + if changed.name == 'publish_rate': + new_rate = changed.value.double_value + if new_rate > 0.0 and abs(new_rate - self.publish_rate) > 1e-6: + self.update_publish_rate(new_rate) diff --git a/src/voice_to_text_node/voice_to_text_node/voice_to_text_node.py b/src/voice_to_text_node/voice_to_text_node/voice_to_text_node.py new file mode 100755 index 0000000..01c2aa2 --- /dev/null +++ b/src/voice_to_text_node/voice_to_text_node/voice_to_text_node.py @@ -0,0 +1,82 @@ +from ament_index_python.packages import get_package_share_directory +import os + +import time +from voice_to_text_node.threaded_node import ThreadedNode + +from std_msgs.msg import String +import rclpy + +from ament_index_python.packages import get_package_share_directory +import threading + + +import sounddevice as sd +import queue +from vosk import Model, KaldiRecognizer + +package_name = 'voice_to_text_node' +model_path = os.path.join( + get_package_share_directory('voice_to_text_node'), + 'resource', 'model', 'vosk-model-small-en-us-0.15' +) +print("MODEL PATH: " + model_path) +latest_partial = {"partial": ""} +latest_result = {"text": ""} + + +class VoicePublisher(ThreadedNode): + def __init__(self): + super().__init__(package_name, default_rate=5.0) + self.string_pub = self.create_publisher(String, package_name + '/test_topic', 10) + + self.latest_partial = {"partial": ""} + self.latest_result = {"text": ""} + + self.speech_thread = threading.Thread(target=self.speech_loop, daemon=True) + self.speech_thread.start() + + def on_tick(self): + msg = String() + msg.data = self.latest_partial.get("partial", "") or self.latest_result.get("text", "") + self.string_pub.publish(msg) + self.get_logger().info(f'Published: {msg.data}') + + def speech_loop(self): + model = Model(model_path) + rec = KaldiRecognizer(model, 16000) + q = queue.Queue() + + def callback(indata, frames, time, status): + if status: + print(status) + q.put(bytes(indata)) + + with sd.RawInputStream(samplerate=16000, blocksize=8000, dtype='int16', + channels=1, callback=callback): + while True: + data = q.get() + if rec.AcceptWaveform(data): + result = json.loads(rec.Result()) + self.latest_result = result + print(".", result) + else: + partial = json.loads(rec.PartialResult()) + self.latest_partial = partial + print("...", partial.get("partial", ""), end='\r') + + def destroy_node(self): + super().destroy_node() + + + + +def main(): + rclpy.init() + node = VoicePublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main()