diff --git a/robot.urdf b/robot.urdf
index f431eeb..bf21727 100644
--- a/robot.urdf
+++ b/robot.urdf
@@ -1,65 +1,542 @@
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ ur_robot_driver/URPositionHardwareInterface
+ 172.18.0.2
+ /opt/ros/humble/share/ur_client_library/resources/external_control.urscript
+ /opt/ros/humble/share/ur_robot_driver/resources/rtde_output_recipe.txt
+ /opt/ros/humble/share/ur_robot_driver/resources/rtde_input_recipe.txt
+ False
+ 50001
+ 50002
+ 0.0.0.0
+ 50004
+ 50003
+
+ True
+ 2000
+ 0.03
+ False
+ calib_5119701370761913513
+ 0
+ 0
+ 115200
+ 1
+ 1.5
+ 3.5
+ /tmp/ttyUR
+ 54321
+ 2
+
+
+
+
+
+
+ 0.0
+
+
+
+
+
+
+
+
+
+ -1.57
+
+
+
+
+
+
+
+
+
+ 0.0
+
+
+
+
+
+
+
+
+
+ -1.57
+
+
+
+
+
+
+
+
+
+ 0.0
+
+
+
+
+
+
+
+
+
+ 0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ros2_ws/src/joint_states_control/get_urdf.py b/ros2_ws/src/joint_states_control/get_urdf.py
index 7f5b23d..4c7d262 100644
--- a/ros2_ws/src/joint_states_control/get_urdf.py
+++ b/ros2_ws/src/joint_states_control/get_urdf.py
@@ -11,7 +11,7 @@ class URDFRetriever(Node):
self.client = self.create_client(GetParameters, '/robot_state_publisher/get_parameters')
while not self.client.wait_for_service(timeout_sec=3.0):
- self.get_logger().warn("⏳ Waiting for /robot_state_publisher parameter service...")
+ self.get_logger().warn("Waiting for /robot_state_publisher parameter service...")
# Create and send a request to get 'robot_description'
self.request = GetParameters.Request()
@@ -38,7 +38,7 @@ def main():
if urdf_string:
# Save to a file
- urdf_path = "/tmp/robot.urdf"
+ urdf_path = "/BA/robot.urdf"
with open(urdf_path, "w") as file:
file.write(urdf_string)
diff --git a/ros_osc/joint_control/joint_angles_client.py b/ros_osc/joint_control/joint_angles_client.py
index b76dfbb..85cab54 100644
--- a/ros_osc/joint_control/joint_angles_client.py
+++ b/ros_osc/joint_control/joint_angles_client.py
@@ -6,5 +6,4 @@ port = 8000
client = SimpleUDPClient(ip, port)
# Send joint updates
-client.send_message("/joint/elbow_joint", 1.57)
-client.send_message("/joint/shoulder_pan_joint", 0.0)
+client.send_message("/joint_angles", [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
diff --git a/workspace/build/joint_control/colcon_build.rc b/workspace/build/joint_control/colcon_build.rc
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/workspace/build/joint_control/colcon_build.rc
@@ -0,0 +1 @@
+0
diff --git a/workspace/build/joint_control/colcon_command_prefix_setup_py.sh b/workspace/build/joint_control/colcon_command_prefix_setup_py.sh
new file mode 100644
index 0000000..f9867d5
--- /dev/null
+++ b/workspace/build/joint_control/colcon_command_prefix_setup_py.sh
@@ -0,0 +1 @@
+# generated from colcon_core/shell/template/command_prefix.sh.em
diff --git a/workspace/build/joint_control/colcon_command_prefix_setup_py.sh.env b/workspace/build/joint_control/colcon_command_prefix_setup_py.sh.env
new file mode 100644
index 0000000..45d8e79
--- /dev/null
+++ b/workspace/build/joint_control/colcon_command_prefix_setup_py.sh.env
@@ -0,0 +1,21 @@
+AMENT_PREFIX_PATH=/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble
+COLCON=1
+COLCON_PREFIX_PATH=/BA/workspace/src/install
+HOME=/root
+HOSTNAME=3230bc57d699
+LANG=C.UTF-8
+LC_ALL=C.UTF-8
+LD_LIBRARY_PATH=/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib
+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=30;41: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:*.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:
+OLDPWD=/BA/workspace/src
+PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+PWD=/BA/workspace/build/joint_control
+PYTHONPATH=/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
+ROS_DISTRO=humble
+ROS_LOCALHOST_ONLY=0
+ROS_PYTHON_VERSION=3
+ROS_VERSION=2
+SHLVL=1
+TERM=xterm
+_=/usr/bin/colcon
+_colcon_cd_root=/opt/ros/foxy/
diff --git a/workspace/build/joint_control/joint_control b/workspace/build/joint_control/joint_control
new file mode 120000
index 0000000..b240854
--- /dev/null
+++ b/workspace/build/joint_control/joint_control
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/joint_control
\ No newline at end of file
diff --git a/workspace/build/joint_control/joint_control.egg-info/PKG-INFO b/workspace/build/joint_control/joint_control.egg-info/PKG-INFO
new file mode 100644
index 0000000..2eb81a9
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/PKG-INFO
@@ -0,0 +1,12 @@
+Metadata-Version: 2.1
+Name: joint-control
+Version: 0.0.0
+Summary: TODO: Package description
+Home-page: UNKNOWN
+Maintainer: root
+Maintainer-email: root@todo.todo
+License: TODO: License declaration
+Platform: UNKNOWN
+
+UNKNOWN
+
diff --git a/workspace/build/joint_control/joint_control.egg-info/SOURCES.txt b/workspace/build/joint_control/joint_control.egg-info/SOURCES.txt
new file mode 100644
index 0000000..1be2a13
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/SOURCES.txt
@@ -0,0 +1,13 @@
+package.xml
+setup.cfg
+setup.py
+joint_control/__init__.py
+joint_control/joint_angles_server.py
+joint_control.egg-info/PKG-INFO
+joint_control.egg-info/SOURCES.txt
+joint_control.egg-info/dependency_links.txt
+joint_control.egg-info/entry_points.txt
+joint_control.egg-info/requires.txt
+joint_control.egg-info/top_level.txt
+joint_control.egg-info/zip-safe
+resource/joint_control
\ No newline at end of file
diff --git a/workspace/build/joint_control/joint_control.egg-info/dependency_links.txt b/workspace/build/joint_control/joint_control.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/workspace/build/joint_control/joint_control.egg-info/entry_points.txt b/workspace/build/joint_control/joint_control.egg-info/entry_points.txt
new file mode 100644
index 0000000..ec06447
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/entry_points.txt
@@ -0,0 +1,3 @@
+[console_scripts]
+joint_control = joint_control.joint_angles_server:main
+
diff --git a/workspace/build/joint_control/joint_control.egg-info/requires.txt b/workspace/build/joint_control/joint_control.egg-info/requires.txt
new file mode 100644
index 0000000..8a4b440
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/requires.txt
@@ -0,0 +1 @@
+setuptoolsosc4py3
diff --git a/workspace/build/joint_control/joint_control.egg-info/top_level.txt b/workspace/build/joint_control/joint_control.egg-info/top_level.txt
new file mode 100644
index 0000000..d02fbdd
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/top_level.txt
@@ -0,0 +1 @@
+joint_control
diff --git a/workspace/build/joint_control/joint_control.egg-info/zip-safe b/workspace/build/joint_control/joint_control.egg-info/zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/build/joint_control/joint_control.egg-info/zip-safe
@@ -0,0 +1 @@
+
diff --git a/workspace/build/joint_control/package.xml b/workspace/build/joint_control/package.xml
new file mode 120000
index 0000000..d969f86
--- /dev/null
+++ b/workspace/build/joint_control/package.xml
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/package.xml
\ No newline at end of file
diff --git a/workspace/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc b/workspace/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc
new file mode 100644
index 0000000..8b372bf
Binary files /dev/null and b/workspace/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc differ
diff --git a/workspace/build/joint_control/prefix_override/sitecustomize.py b/workspace/build/joint_control/prefix_override/sitecustomize.py
new file mode 100644
index 0000000..448760e
--- /dev/null
+++ b/workspace/build/joint_control/prefix_override/sitecustomize.py
@@ -0,0 +1,4 @@
+import sys
+if sys.prefix == '/usr':
+ sys.real_prefix = sys.prefix
+ sys.prefix = sys.exec_prefix = '/BA/workspace/install/joint_control'
diff --git a/workspace/build/joint_control/resource/joint_control b/workspace/build/joint_control/resource/joint_control
new file mode 120000
index 0000000..6d69895
--- /dev/null
+++ b/workspace/build/joint_control/resource/joint_control
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/resource/joint_control
\ No newline at end of file
diff --git a/workspace/build/joint_control/setup.cfg b/workspace/build/joint_control/setup.cfg
new file mode 120000
index 0000000..02d5e38
--- /dev/null
+++ b/workspace/build/joint_control/setup.cfg
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/setup.cfg
\ No newline at end of file
diff --git a/workspace/build/joint_control/setup.py b/workspace/build/joint_control/setup.py
new file mode 120000
index 0000000..a85566e
--- /dev/null
+++ b/workspace/build/joint_control/setup.py
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/setup.py
\ No newline at end of file
diff --git a/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
new file mode 100644
index 0000000..8611632
--- /dev/null
+++ b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;/BA/workspace/build/joint_control
diff --git a/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1 b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1
new file mode 100644
index 0000000..d1d12ee
--- /dev/null
+++ b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.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\/BA/workspace/build/joint_control"
diff --git a/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.sh b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.sh
new file mode 100644
index 0000000..03b8b63
--- /dev/null
+++ b/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.sh
@@ -0,0 +1,3 @@
+# generated from colcon_core/shell/template/hook_prepend_value.sh.em
+
+_colcon_prepend_unique_value PYTHONPATH "/BA/workspace/build/joint_control"
diff --git a/workspace/build/joint_info/colcon_command_prefix_setup_py.sh.env b/workspace/build/joint_info/colcon_command_prefix_setup_py.sh.env
index 71869c0..0bff169 100644
--- a/workspace/build/joint_info/colcon_command_prefix_setup_py.sh.env
+++ b/workspace/build/joint_info/colcon_command_prefix_setup_py.sh.env
@@ -1,6 +1,6 @@
-AMENT_PREFIX_PATH=/BA/workspace/install/joint_info:/opt/ros/humble
+AMENT_PREFIX_PATH=/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble
COLCON=1
-COLCON_PREFIX_PATH=/BA/workspace/install:/BA/ros_osc/install
+COLCON_PREFIX_PATH=/BA/workspace/src/install
HOME=/root
HOSTNAME=3230bc57d699
LANG=C.UTF-8
@@ -10,7 +10,7 @@ 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
OLDPWD=/BA/workspace/src
PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/BA/workspace/build/joint_info
-PYTHONPATH=/BA/workspace/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
+PYTHONPATH=/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
ROS_DISTRO=humble
ROS_LOCALHOST_ONLY=0
ROS_PYTHON_VERSION=3
diff --git a/workspace/build/joint_info/joint_info.egg-info/SOURCES.txt b/workspace/build/joint_info/joint_info.egg-info/SOURCES.txt
index 8978ed2..df11c2c 100644
--- a/workspace/build/joint_info/joint_info.egg-info/SOURCES.txt
+++ b/workspace/build/joint_info/joint_info.egg-info/SOURCES.txt
@@ -11,6 +11,7 @@ setup.py
joint_info/__init__.py
joint_info/osc_joint_states_pub.py
joint_info/osc_joint_states_sub.py
+joint_info/tcp_cart_pos.py
joint_info.egg-info/PKG-INFO
joint_info.egg-info/SOURCES.txt
joint_info.egg-info/dependency_links.txt
diff --git a/workspace/build/joint_info/joint_info.egg-info/entry_points.txt b/workspace/build/joint_info/joint_info.egg-info/entry_points.txt
index 8f636b4..a5d186b 100644
--- a/workspace/build/joint_info/joint_info.egg-info/entry_points.txt
+++ b/workspace/build/joint_info/joint_info.egg-info/entry_points.txt
@@ -1,4 +1,5 @@
[console_scripts]
joint_states_pub = joint_info.osc_joint_states_pub:main
joint_states_sub = joint_info.osc_joint_states_sub:main
+tcp_cart_pos = joint_info.tcp_cart_pos:main
diff --git a/workspace/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc b/workspace/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc
index a464269..eba89aa 100644
Binary files a/workspace/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc and b/workspace/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc differ
diff --git a/workspace/install/joint_control/lib/joint_control/joint_control b/workspace/install/joint_control/lib/joint_control/joint_control
new file mode 100755
index 0000000..41f313f
--- /dev/null
+++ b/workspace/install/joint_control/lib/joint_control/joint_control
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-control','console_scripts','joint_control'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-control'
+
+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('joint-control', 'console_scripts', 'joint_control')())
diff --git a/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link b/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link
new file mode 100644
index 0000000..a7aebe1
--- /dev/null
+++ b/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link
@@ -0,0 +1,2 @@
+/BA/workspace/build/joint_control
+.
\ No newline at end of file
diff --git a/workspace/install/joint_control/share/ament_index/resource_index/packages/joint_control b/workspace/install/joint_control/share/ament_index/resource_index/packages/joint_control
new file mode 120000
index 0000000..1c39e5f
--- /dev/null
+++ b/workspace/install/joint_control/share/ament_index/resource_index/packages/joint_control
@@ -0,0 +1 @@
+/BA/workspace/build/joint_control/resource/joint_control
\ No newline at end of file
diff --git a/workspace/install/joint_control/share/colcon-core/packages/joint_control b/workspace/install/joint_control/share/colcon-core/packages/joint_control
new file mode 100644
index 0000000..122cb1f
--- /dev/null
+++ b/workspace/install/joint_control/share/colcon-core/packages/joint_control
@@ -0,0 +1 @@
+osc4py3:trajectory_msgs:xml
\ No newline at end of file
diff --git a/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv b/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv
new file mode 100644
index 0000000..79d4c95
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;AMENT_PREFIX_PATH;
diff --git a/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1 b/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1
new file mode 100644
index 0000000..26b9997
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.sh b/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.sh
new file mode 100644
index 0000000..f3041f6
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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/workspace/install/joint_control/share/joint_control/hook/pythonpath.dsv b/workspace/install/joint_control/share/joint_control/hook/pythonpath.dsv
new file mode 100644
index 0000000..257067d
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/hook/pythonpath.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;lib/python3.10/site-packages
diff --git a/workspace/install/joint_control/share/joint_control/hook/pythonpath.ps1 b/workspace/install/joint_control/share/joint_control/hook/pythonpath.ps1
new file mode 100644
index 0000000..caffe83
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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.10/site-packages"
diff --git a/workspace/install/joint_control/share/joint_control/hook/pythonpath.sh b/workspace/install/joint_control/share/joint_control/hook/pythonpath.sh
new file mode 100644
index 0000000..660c348
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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.10/site-packages"
diff --git a/workspace/install/joint_control/share/joint_control/package.bash b/workspace/install/joint_control/share/joint_control/package.bash
new file mode 100644
index 0000000..471a19f
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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/joint_control/package.sh"
+
+unset _colcon_package_bash_source_script
+unset _colcon_package_bash_COLCON_CURRENT_PREFIX
diff --git a/workspace/install/joint_control/share/joint_control/package.dsv b/workspace/install/joint_control/share/joint_control/package.dsv
new file mode 100644
index 0000000..bd99f6c
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/package.dsv
@@ -0,0 +1,9 @@
+source;share/joint_control/hook/pythonpath.ps1
+source;share/joint_control/hook/pythonpath.dsv
+source;share/joint_control/hook/pythonpath.sh
+source;share/joint_control/hook/ament_prefix_path.ps1
+source;share/joint_control/hook/ament_prefix_path.dsv
+source;share/joint_control/hook/ament_prefix_path.sh
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.ps1
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.sh
diff --git a/workspace/install/joint_control/share/joint_control/package.ps1 b/workspace/install/joint_control/share/joint_control/package.ps1
new file mode 100644
index 0000000..40dd0a7
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/package.ps1
@@ -0,0 +1,117 @@
+# 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/joint_control/hook/pythonpath.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/joint_control/hook/ament_prefix_path.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\../../build/joint_control/share/joint_control/hook/pythonpath_develop.ps1"
+
+Remove-Item Env:\COLCON_CURRENT_PREFIX
diff --git a/workspace/install/joint_control/share/joint_control/package.sh b/workspace/install/joint_control/share/joint_control/package.sh
new file mode 100644
index 0000000..4674edb
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/package.sh
@@ -0,0 +1,88 @@
+# 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="/BA/workspace/install/joint_control"
+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/joint_control/hook/pythonpath.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/joint_control/hook/ament_prefix_path.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/../../build/joint_control/share/joint_control/hook/pythonpath_develop.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/workspace/install/joint_control/share/joint_control/package.xml b/workspace/install/joint_control/share/joint_control/package.xml
new file mode 120000
index 0000000..cee0274
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/package.xml
@@ -0,0 +1 @@
+/BA/workspace/build/joint_control/package.xml
\ No newline at end of file
diff --git a/workspace/install/joint_control/share/joint_control/package.zsh b/workspace/install/joint_control/share/joint_control/package.zsh
new file mode 100644
index 0000000..5cf87e0
--- /dev/null
+++ b/workspace/install/joint_control/share/joint_control/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/joint_control/package.sh"
+unset convert_zsh_to_array
+
+unset _colcon_package_zsh_source_script
+unset _colcon_package_zsh_COLCON_CURRENT_PREFIX
diff --git a/workspace/install/joint_info/lib/joint_info/tcp_cart_pos b/workspace/install/joint_info/lib/joint_info/tcp_cart_pos
new file mode 100755
index 0000000..15cc67e
--- /dev/null
+++ b/workspace/install/joint_info/lib/joint_info/tcp_cart_pos
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','tcp_cart_pos'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-info'
+
+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('joint-info', 'console_scripts', 'tcp_cart_pos')())
diff --git a/workspace/install/joint_info/share/colcon-core/packages/joint_info b/workspace/install/joint_info/share/colcon-core/packages/joint_info
index 277e601..df80570 100644
--- a/workspace/install/joint_info/share/colcon-core/packages/joint_info
+++ b/workspace/install/joint_info/share/colcon-core/packages/joint_info
@@ -1 +1 @@
-osc4py3:rclpy:sensor_msgs
\ No newline at end of file
+osc4py3:rclpy:roboticstoolbox:sensor_msgs
\ No newline at end of file
diff --git a/workspace/install/setup.bash b/workspace/install/setup.bash
index a88075c..315fb90 100644
--- a/workspace/install/setup.bash
+++ b/workspace/install/setup.bash
@@ -22,7 +22,7 @@ _colcon_prefix_chain_bash_source_script() {
COLCON_CURRENT_PREFIX="/opt/ros/humble"
_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="/BA/ros_osc/install"
+COLCON_CURRENT_PREFIX="/BA/workspace/src/install"
_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash"
# source this prefix
diff --git a/workspace/install/setup.ps1 b/workspace/install/setup.ps1
index 748a06d..afcb1ea 100644
--- a/workspace/install/setup.ps1
+++ b/workspace/install/setup.ps1
@@ -23,7 +23,7 @@ function _colcon_prefix_chain_powershell_source_script {
# source chained prefixes
_colcon_prefix_chain_powershell_source_script "/opt/ros/humble\local_setup.ps1"
-_colcon_prefix_chain_powershell_source_script "/BA/ros_osc/install\local_setup.ps1"
+_colcon_prefix_chain_powershell_source_script "/BA/workspace/src/install\local_setup.ps1"
# source this prefix
$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent)
diff --git a/workspace/install/setup.sh b/workspace/install/setup.sh
index 44a4f6d..40ecefa 100644
--- a/workspace/install/setup.sh
+++ b/workspace/install/setup.sh
@@ -35,7 +35,7 @@ COLCON_CURRENT_PREFIX="/opt/ros/humble"
_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="/BA/ros_osc/install"
+COLCON_CURRENT_PREFIX="/BA/workspace/src/install"
_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh"
diff --git a/workspace/install/setup.zsh b/workspace/install/setup.zsh
index c7f32eb..a1a0a60 100644
--- a/workspace/install/setup.zsh
+++ b/workspace/install/setup.zsh
@@ -22,7 +22,7 @@ _colcon_prefix_chain_zsh_source_script() {
COLCON_CURRENT_PREFIX="/opt/ros/humble"
_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="/BA/ros_osc/install"
+COLCON_CURRENT_PREFIX="/BA/workspace/src/install"
_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh"
# source this prefix
diff --git a/workspace/log/build_2025-03-20_14-14-26/events.log b/workspace/log/build_2025-03-20_14-14-26/events.log
new file mode 100644
index 0000000..fddb870
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/events.log
@@ -0,0 +1,66 @@
+[0.000000] (-) TimerEvent: {}
+[0.001021] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.002555] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.002763] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.014829] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098332] (-) TimerEvent: {}
+[0.201391] (-) TimerEvent: {}
+[0.302423] (-) TimerEvent: {}
+[0.403421] (-) TimerEvent: {}
+[0.504207] (-) TimerEvent: {}
+[0.609299] (-) TimerEvent: {}
+[0.711259] (-) TimerEvent: {}
+[0.812411] (-) TimerEvent: {}
+[0.913366] (-) TimerEvent: {}
+[0.971950] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.008730] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.014137] (-) TimerEvent: {}
+[1.115200] (-) TimerEvent: {}
+[1.218379] (-) TimerEvent: {}
+[1.270091] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.319386] (-) TimerEvent: {}
+[1.335668] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.412394] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.413453] (joint_control) StdoutLine: {'line': b'creating joint_control.egg-info\n'}
+[1.413924] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.415619] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.416528] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.417627] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.418452] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.419277] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.419743] (-) TimerEvent: {}
+[1.427671] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.434501] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.436488] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.436890] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.438345] (joint_control) StdoutLine: {'line': b'Installing joint_control script to /BA/workspace/install/joint_control/lib/joint_control\n'}
+[1.439712] (joint_control) StdoutLine: {'line': b'\n'}
+[1.439969] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/build/joint_control\n'}
+[1.440302] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.441066] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/install/joint_control/share/ament_index\n'}
+[1.441654] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/install/joint_control/share/ament_index/resource_index\n'}
+[1.442168] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/install/joint_control/share/ament_index/resource_index/packages\n'}
+[1.442426] (joint_control) StdoutLine: {'line': b'symbolically linking /BA/workspace/build/joint_control/resource/joint_control -> /BA/workspace/install/joint_control/share/ament_index/resource_index/packages\n'}
+[1.446607] (joint_control) StdoutLine: {'line': b'symbolically linking /BA/workspace/build/joint_control/package.xml -> /BA/workspace/install/joint_control/share/joint_control\n'}
+[1.467655] (joint_control) CommandEnded: {'returncode': 0}
+[1.511076] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.512233] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.514785] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.517609] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.519732] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.521232] (-) TimerEvent: {}
+[1.523891] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.536996] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.546302] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.549552] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.550792] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.552708] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/install/joint_info/lib/joint_info\n'}
+[1.554517] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/install/joint_info/lib/joint_info\n'}
+[1.556947] (joint_info) StdoutLine: {'line': b'Installing tcp_cart_pos script to /BA/workspace/install/joint_info/lib/joint_info\n'}
+[1.558566] (joint_info) StdoutLine: {'line': b'\n'}
+[1.558914] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/build/joint_info\n'}
+[1.560352] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.562663] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.582562] (joint_info) CommandEnded: {'returncode': 0}
+[1.597369] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.598776] (-) EventReactorShutdown: {}
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_control/command.log b/workspace/log/build_2025-03-20_14-14-26/joint_control/command.log
new file mode 100644
index 0000000..ebfe81b
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/build/joint_control': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_control/stderr.log b/workspace/log/build_2025-03-20_14-14-26/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout.log b/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout.log
new file mode 100644
index 0000000..aff7c77
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout.log
@@ -0,0 +1,22 @@
+running develop
+running egg_info
+creating joint_control.egg-info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/build/joint_control
+running symlink_data
+creating /BA/workspace/install/joint_control/share/ament_index
+creating /BA/workspace/install/joint_control/share/ament_index/resource_index
+creating /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/build/joint_control/resource/joint_control -> /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/build/joint_control/package.xml -> /BA/workspace/install/joint_control/share/joint_control
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout_stderr.log b/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..aff7c77
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_control/stdout_stderr.log
@@ -0,0 +1,22 @@
+running develop
+running egg_info
+creating joint_control.egg-info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/build/joint_control
+running symlink_data
+creating /BA/workspace/install/joint_control/share/ament_index
+creating /BA/workspace/install/joint_control/share/ament_index/resource_index
+creating /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/build/joint_control/resource/joint_control -> /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/build/joint_control/package.xml -> /BA/workspace/install/joint_control/share/joint_control
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_control/streams.log b/workspace/log/build_2025-03-20_14-14-26/joint_control/streams.log
new file mode 100644
index 0000000..16bfc02
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_control/streams.log
@@ -0,0 +1,24 @@
+[0.976s] Invoking command in '/BA/workspace/build/joint_control': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
+[1.270s] running develop
+[1.410s] running egg_info
+[1.411s] creating joint_control.egg-info
+[1.412s] writing joint_control.egg-info/PKG-INFO
+[1.413s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.414s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.415s] writing requirements to joint_control.egg-info/requires.txt
+[1.416s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.417s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.426s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.433s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.434s] running build_ext
+[1.434s] Creating /BA/workspace/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.436s] Installing joint_control script to /BA/workspace/install/joint_control/lib/joint_control
+[1.437s]
+[1.437s] Installed /BA/workspace/build/joint_control
+[1.438s] running symlink_data
+[1.439s] creating /BA/workspace/install/joint_control/share/ament_index
+[1.439s] creating /BA/workspace/install/joint_control/share/ament_index/resource_index
+[1.440s] creating /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+[1.444s] symbolically linking /BA/workspace/build/joint_control/resource/joint_control -> /BA/workspace/install/joint_control/share/ament_index/resource_index/packages
+[1.445s] symbolically linking /BA/workspace/build/joint_control/package.xml -> /BA/workspace/install/joint_control/share/joint_control
+[1.467s] Invoked command in '/BA/workspace/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_info/command.log b/workspace/log/build_2025-03-20_14-14-26/joint_info/command.log
new file mode 100644
index 0000000..c26e66f
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/build/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_info/stderr.log b/workspace/log/build_2025-03-20_14-14-26/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout.log b/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout.log
new file mode 100644
index 0000000..54dd46c
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout.log
@@ -0,0 +1,17 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/install/joint_info/lib/joint_info
+Installing tcp_cart_pos script to /BA/workspace/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/build/joint_info
+running symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout_stderr.log b/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..54dd46c
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_info/stdout_stderr.log
@@ -0,0 +1,17 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/install/joint_info/lib/joint_info
+Installing tcp_cart_pos script to /BA/workspace/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/build/joint_info
+running symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/joint_info/streams.log b/workspace/log/build_2025-03-20_14-14-26/joint_info/streams.log
new file mode 100644
index 0000000..a77a583
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/joint_info/streams.log
@@ -0,0 +1,19 @@
+[0.995s] Invoking command in '/BA/workspace/build/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
+[1.322s] running develop
+[1.496s] running egg_info
+[1.496s] writing joint_info.egg-info/PKG-INFO
+[1.500s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.502s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.505s] writing requirements to joint_info.egg-info/requires.txt
+[1.509s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.522s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.531s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.534s] running build_ext
+[1.535s] Creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.537s] Installing joint_states_pub script to /BA/workspace/install/joint_info/lib/joint_info
+[1.539s] Installing joint_states_sub script to /BA/workspace/install/joint_info/lib/joint_info
+[1.541s] Installing tcp_cart_pos script to /BA/workspace/install/joint_info/lib/joint_info
+[1.542s]
+[1.543s] Installed /BA/workspace/build/joint_info
+[1.544s] running symlink_data
+[1.567s] Invoked command in '/BA/workspace/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/log/build_2025-03-20_14-14-26/logger_all.log b/workspace/log/build_2025-03-20_14-14-26/logger_all.log
new file mode 100644
index 0000000..921ab3f
--- /dev/null
+++ b/workspace/log/build_2025-03-20_14-14-26/logger_all.log
@@ -0,0 +1,193 @@
+[0.096s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.097s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.202s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.203s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.204s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.204s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace'
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ignore', 'ignore_ament_install']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore_ament_install'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_pkg']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_pkg'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_meta']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_meta'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ros']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ros'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['cmake', 'python']
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'cmake'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['python_setup_py']
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python_setup_py'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(src/build) by extensions ['ignore', 'ignore_ament_install']
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(src/build) by extension 'ignore'
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(src/build) ignored
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(src/install) by extensions ['ignore', 'ignore_ament_install']
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(src/install) by extension 'ignore'
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(src/install) ignored
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extension 'ignore'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extension 'ignore_ament_install'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extensions ['colcon_pkg']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extension 'colcon_pkg'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extensions ['colcon_meta']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extension 'colcon_meta'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extensions ['ros']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_control) by extension 'ros'
+[0.227s] DEBUG:colcon.colcon_core.package_identification:Package 'src/joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore'
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore_ament_install'
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_pkg']
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_pkg'
+[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_meta']
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_meta'
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ros']
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ros'
+[0.230s] DEBUG:colcon.colcon_core.package_identification:Package 'src/joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(src/log) by extensions ['ignore', 'ignore_ament_install']
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(src/log) by extension 'ignore'
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(src/log) ignored
+[0.230s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.230s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.230s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.230s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.231s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.247s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.247s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/build/joint_control', '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': '/BA/workspace/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.248s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.248s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/build/joint_info', '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': '/BA/workspace/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.248s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.251s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.252s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.252s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.255s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.255s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.257s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.258s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.259s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.259s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.267s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.269s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.269s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.275s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.276s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.277s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.278s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.551s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.551s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.552s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.821s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.821s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.822s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.231s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/build/joint_control': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
+[1.263s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/build/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
+[1.720s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.720s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.722s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_control/build --no-deps symlink_data
+[1.726s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.735s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.752s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control' for CMake module files
+[1.769s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control' for CMake config files
+[1.789s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control/lib'
+[1.791s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control/bin'
+[1.791s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.792s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control/lib/python3.10/site-packages'
+[1.792s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.792s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.796s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.798s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.803s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_control/bin'
+[1.803s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.804s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_control/share/joint_control/package.ps1'
+[1.806s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/install/joint_control/share/joint_control/package.dsv'
+[1.808s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_control/share/joint_control/package.sh'
+[1.810s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_control/share/joint_control/package.bash'
+[1.811s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_control/share/joint_control/package.zsh'
+[1.813s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/install/joint_control/share/colcon-core/packages/joint_control)
+[1.835s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.835s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.836s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/build/joint_info/build --no-deps symlink_data
+[1.837s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.838s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.838s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake module files
+[1.840s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake config files
+[1.842s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib'
+[1.843s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
+[1.843s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.843s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/python3.10/site-packages'
+[1.843s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.843s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.844s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.844s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.845s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
+[1.845s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.845s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.ps1'
+[1.846s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/install/joint_info/share/joint_info/package.dsv'
+[1.847s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.sh'
+[1.847s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.bash'
+[1.848s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.zsh'
+[1.849s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/install/joint_info/share/colcon-core/packages/joint_info)
+[1.850s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.850s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.850s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.850s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.856s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.856s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.856s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.856s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.857s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.858s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.858s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.ps1'
+[1.859s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_ps1.py'
+[1.863s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.ps1'
+[1.865s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.sh'
+[1.866s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_sh.py'
+[1.867s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.sh'
+[1.870s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.bash'
+[1.870s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.bash'
+[1.872s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.zsh'
+[1.873s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.zsh'
diff --git a/workspace/log/latest_build b/workspace/log/latest_build
index 9aa7df9..fafbb95 120000
--- a/workspace/log/latest_build
+++ b/workspace/log/latest_build
@@ -1 +1 @@
-build_2025-03-14_16-04-43
\ No newline at end of file
+build_2025-03-20_14-14-26
\ No newline at end of file
diff --git a/workspace/src/build/.built_by b/workspace/src/build/.built_by
new file mode 100644
index 0000000..06e74ac
--- /dev/null
+++ b/workspace/src/build/.built_by
@@ -0,0 +1 @@
+colcon
diff --git a/workspace/src/build/COLCON_IGNORE b/workspace/src/build/COLCON_IGNORE
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/build/joint_control/colcon_build.rc b/workspace/src/build/joint_control/colcon_build.rc
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/workspace/src/build/joint_control/colcon_build.rc
@@ -0,0 +1 @@
+0
diff --git a/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh b/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh
new file mode 100644
index 0000000..f9867d5
--- /dev/null
+++ b/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh
@@ -0,0 +1 @@
+# generated from colcon_core/shell/template/command_prefix.sh.em
diff --git a/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh.env b/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh.env
new file mode 100644
index 0000000..66c07ca
--- /dev/null
+++ b/workspace/src/build/joint_control/colcon_command_prefix_setup_py.sh.env
@@ -0,0 +1,21 @@
+AMENT_PREFIX_PATH=/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble
+COLCON=1
+COLCON_PREFIX_PATH=/BA/workspace/src/install
+HOME=/root
+HOSTNAME=3230bc57d699
+LANG=C.UTF-8
+LC_ALL=C.UTF-8
+LD_LIBRARY_PATH=/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib
+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=30;41: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:*.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:
+OLDPWD=/BA/workspace
+PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+PWD=/BA/workspace/src/build/joint_control
+PYTHONPATH=/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
+ROS_DISTRO=humble
+ROS_LOCALHOST_ONLY=0
+ROS_PYTHON_VERSION=3
+ROS_VERSION=2
+SHLVL=1
+TERM=xterm
+_=/usr/bin/colcon
+_colcon_cd_root=/opt/ros/foxy/
diff --git a/workspace/src/build/joint_control/joint_control b/workspace/src/build/joint_control/joint_control
new file mode 120000
index 0000000..b240854
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/joint_control
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/PKG-INFO b/workspace/src/build/joint_control/joint_control.egg-info/PKG-INFO
new file mode 100644
index 0000000..2eb81a9
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/PKG-INFO
@@ -0,0 +1,12 @@
+Metadata-Version: 2.1
+Name: joint-control
+Version: 0.0.0
+Summary: TODO: Package description
+Home-page: UNKNOWN
+Maintainer: root
+Maintainer-email: root@todo.todo
+License: TODO: License declaration
+Platform: UNKNOWN
+
+UNKNOWN
+
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/SOURCES.txt b/workspace/src/build/joint_control/joint_control.egg-info/SOURCES.txt
new file mode 100644
index 0000000..1be2a13
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/SOURCES.txt
@@ -0,0 +1,13 @@
+package.xml
+setup.cfg
+setup.py
+joint_control/__init__.py
+joint_control/joint_angles_server.py
+joint_control.egg-info/PKG-INFO
+joint_control.egg-info/SOURCES.txt
+joint_control.egg-info/dependency_links.txt
+joint_control.egg-info/entry_points.txt
+joint_control.egg-info/requires.txt
+joint_control.egg-info/top_level.txt
+joint_control.egg-info/zip-safe
+resource/joint_control
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/dependency_links.txt b/workspace/src/build/joint_control/joint_control.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/entry_points.txt b/workspace/src/build/joint_control/joint_control.egg-info/entry_points.txt
new file mode 100644
index 0000000..ec06447
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/entry_points.txt
@@ -0,0 +1,3 @@
+[console_scripts]
+joint_control = joint_control.joint_angles_server:main
+
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/requires.txt b/workspace/src/build/joint_control/joint_control.egg-info/requires.txt
new file mode 100644
index 0000000..8a4b440
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/requires.txt
@@ -0,0 +1 @@
+setuptoolsosc4py3
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/top_level.txt b/workspace/src/build/joint_control/joint_control.egg-info/top_level.txt
new file mode 100644
index 0000000..d02fbdd
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/top_level.txt
@@ -0,0 +1 @@
+joint_control
diff --git a/workspace/src/build/joint_control/joint_control.egg-info/zip-safe b/workspace/src/build/joint_control/joint_control.egg-info/zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/src/build/joint_control/joint_control.egg-info/zip-safe
@@ -0,0 +1 @@
+
diff --git a/workspace/src/build/joint_control/package.xml b/workspace/src/build/joint_control/package.xml
new file mode 120000
index 0000000..d969f86
--- /dev/null
+++ b/workspace/src/build/joint_control/package.xml
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/package.xml
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc b/workspace/src/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc
new file mode 100644
index 0000000..e886745
Binary files /dev/null and b/workspace/src/build/joint_control/prefix_override/__pycache__/sitecustomize.cpython-310.pyc differ
diff --git a/workspace/src/build/joint_control/prefix_override/sitecustomize.py b/workspace/src/build/joint_control/prefix_override/sitecustomize.py
new file mode 100644
index 0000000..6541130
--- /dev/null
+++ b/workspace/src/build/joint_control/prefix_override/sitecustomize.py
@@ -0,0 +1,4 @@
+import sys
+if sys.prefix == '/usr':
+ sys.real_prefix = sys.prefix
+ sys.prefix = sys.exec_prefix = '/BA/workspace/src/install/joint_control'
diff --git a/workspace/src/build/joint_control/resource/joint_control b/workspace/src/build/joint_control/resource/joint_control
new file mode 120000
index 0000000..6d69895
--- /dev/null
+++ b/workspace/src/build/joint_control/resource/joint_control
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/resource/joint_control
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/setup.cfg b/workspace/src/build/joint_control/setup.cfg
new file mode 120000
index 0000000..02d5e38
--- /dev/null
+++ b/workspace/src/build/joint_control/setup.cfg
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/setup.cfg
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/setup.py b/workspace/src/build/joint_control/setup.py
new file mode 120000
index 0000000..a85566e
--- /dev/null
+++ b/workspace/src/build/joint_control/setup.py
@@ -0,0 +1 @@
+/BA/workspace/src/joint_control/setup.py
\ No newline at end of file
diff --git a/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
new file mode 100644
index 0000000..3ebe544
--- /dev/null
+++ b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;/BA/workspace/src/build/joint_control
diff --git a/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1 b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1
new file mode 100644
index 0000000..f10c457
--- /dev/null
+++ b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.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\/BA/workspace/src/build/joint_control"
diff --git a/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh
new file mode 100644
index 0000000..83cd954
--- /dev/null
+++ b/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh
@@ -0,0 +1,3 @@
+# generated from colcon_core/shell/template/hook_prepend_value.sh.em
+
+_colcon_prepend_unique_value PYTHONPATH "/BA/workspace/src/build/joint_control"
diff --git a/workspace/src/build/joint_info/colcon_build.rc b/workspace/src/build/joint_info/colcon_build.rc
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/workspace/src/build/joint_info/colcon_build.rc
@@ -0,0 +1 @@
+0
diff --git a/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh b/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh
new file mode 100644
index 0000000..f9867d5
--- /dev/null
+++ b/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh
@@ -0,0 +1 @@
+# generated from colcon_core/shell/template/command_prefix.sh.em
diff --git a/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh.env b/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh.env
new file mode 100644
index 0000000..78aec66
--- /dev/null
+++ b/workspace/src/build/joint_info/colcon_command_prefix_setup_py.sh.env
@@ -0,0 +1,21 @@
+AMENT_PREFIX_PATH=/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble
+COLCON=1
+COLCON_PREFIX_PATH=/BA/workspace/src/install
+HOME=/root
+HOSTNAME=3230bc57d699
+LANG=C.UTF-8
+LC_ALL=C.UTF-8
+LD_LIBRARY_PATH=/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib
+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=30;41: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:*.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:
+OLDPWD=/BA/workspace
+PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+PWD=/BA/workspace/src/build/joint_info
+PYTHONPATH=/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
+ROS_DISTRO=humble
+ROS_LOCALHOST_ONLY=0
+ROS_PYTHON_VERSION=3
+ROS_VERSION=2
+SHLVL=1
+TERM=xterm
+_=/usr/bin/colcon
+_colcon_cd_root=/opt/ros/foxy/
diff --git a/workspace/src/build/joint_info/joint_info b/workspace/src/build/joint_info/joint_info
new file mode 120000
index 0000000..698f2e1
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info
@@ -0,0 +1 @@
+/BA/workspace/src/joint_info/joint_info
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/PKG-INFO b/workspace/src/build/joint_info/joint_info.egg-info/PKG-INFO
new file mode 100644
index 0000000..4d1f1fd
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/PKG-INFO
@@ -0,0 +1,12 @@
+Metadata-Version: 2.1
+Name: joint-info
+Version: 0.0.0
+Summary: TODO: Package description
+Home-page: UNKNOWN
+Maintainer: root
+Maintainer-email: root@todo.todo
+License: TODO: License declaration
+Platform: UNKNOWN
+
+UNKNOWN
+
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/SOURCES.txt b/workspace/src/build/joint_info/joint_info.egg-info/SOURCES.txt
new file mode 100644
index 0000000..d7cdacc
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/SOURCES.txt
@@ -0,0 +1,15 @@
+package.xml
+setup.cfg
+setup.py
+joint_info/__init__.py
+joint_info/osc_joint_states_pub.py
+joint_info/osc_joint_states_sub.py
+joint_info/tcp_cart_pos.py
+joint_info.egg-info/PKG-INFO
+joint_info.egg-info/SOURCES.txt
+joint_info.egg-info/dependency_links.txt
+joint_info.egg-info/entry_points.txt
+joint_info.egg-info/requires.txt
+joint_info.egg-info/top_level.txt
+joint_info.egg-info/zip-safe
+resource/joint_info
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/dependency_links.txt b/workspace/src/build/joint_info/joint_info.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/entry_points.txt b/workspace/src/build/joint_info/joint_info.egg-info/entry_points.txt
new file mode 100644
index 0000000..a5d186b
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/entry_points.txt
@@ -0,0 +1,5 @@
+[console_scripts]
+joint_states_pub = joint_info.osc_joint_states_pub:main
+joint_states_sub = joint_info.osc_joint_states_sub:main
+tcp_cart_pos = joint_info.tcp_cart_pos:main
+
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/requires.txt b/workspace/src/build/joint_info/joint_info.egg-info/requires.txt
new file mode 100644
index 0000000..8a4b440
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/requires.txt
@@ -0,0 +1 @@
+setuptoolsosc4py3
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/top_level.txt b/workspace/src/build/joint_info/joint_info.egg-info/top_level.txt
new file mode 100644
index 0000000..3e0e8ec
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/top_level.txt
@@ -0,0 +1 @@
+joint_info
diff --git a/workspace/src/build/joint_info/joint_info.egg-info/zip-safe b/workspace/src/build/joint_info/joint_info.egg-info/zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/workspace/src/build/joint_info/joint_info.egg-info/zip-safe
@@ -0,0 +1 @@
+
diff --git a/workspace/src/build/joint_info/package.xml b/workspace/src/build/joint_info/package.xml
new file mode 120000
index 0000000..e4180f4
--- /dev/null
+++ b/workspace/src/build/joint_info/package.xml
@@ -0,0 +1 @@
+/BA/workspace/src/joint_info/package.xml
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc b/workspace/src/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc
new file mode 100644
index 0000000..f549fa6
Binary files /dev/null and b/workspace/src/build/joint_info/prefix_override/__pycache__/sitecustomize.cpython-310.pyc differ
diff --git a/workspace/src/build/joint_info/prefix_override/sitecustomize.py b/workspace/src/build/joint_info/prefix_override/sitecustomize.py
new file mode 100644
index 0000000..b502e36
--- /dev/null
+++ b/workspace/src/build/joint_info/prefix_override/sitecustomize.py
@@ -0,0 +1,4 @@
+import sys
+if sys.prefix == '/usr':
+ sys.real_prefix = sys.prefix
+ sys.prefix = sys.exec_prefix = '/BA/workspace/src/install/joint_info'
diff --git a/workspace/src/build/joint_info/resource/joint_info b/workspace/src/build/joint_info/resource/joint_info
new file mode 120000
index 0000000..273851b
--- /dev/null
+++ b/workspace/src/build/joint_info/resource/joint_info
@@ -0,0 +1 @@
+/BA/workspace/src/joint_info/resource/joint_info
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/setup.cfg b/workspace/src/build/joint_info/setup.cfg
new file mode 120000
index 0000000..24d3a04
--- /dev/null
+++ b/workspace/src/build/joint_info/setup.cfg
@@ -0,0 +1 @@
+/BA/workspace/src/joint_info/setup.cfg
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/setup.py b/workspace/src/build/joint_info/setup.py
new file mode 120000
index 0000000..73ef96c
--- /dev/null
+++ b/workspace/src/build/joint_info/setup.py
@@ -0,0 +1 @@
+/BA/workspace/src/joint_info/setup.py
\ No newline at end of file
diff --git a/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv
new file mode 100644
index 0000000..8844ee7
--- /dev/null
+++ b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;/BA/workspace/src/build/joint_info
diff --git a/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1 b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1
new file mode 100644
index 0000000..173ef2e
--- /dev/null
+++ b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.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\/BA/workspace/src/build/joint_info"
diff --git a/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh
new file mode 100644
index 0000000..f57a23a
--- /dev/null
+++ b/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh
@@ -0,0 +1,3 @@
+# generated from colcon_core/shell/template/hook_prepend_value.sh.em
+
+_colcon_prepend_unique_value PYTHONPATH "/BA/workspace/src/build/joint_info"
diff --git a/workspace/src/cart_coords.py b/workspace/src/cart_coords.py
new file mode 100644
index 0000000..00b6e42
--- /dev/null
+++ b/workspace/src/cart_coords.py
@@ -0,0 +1,38 @@
+from osc4py3.as_eventloop import *
+from osc4py3 import oscmethod as osm
+import time
+
+def joint_states_handler(*args):
+ """Handler function to process incoming joint states."""
+ print(args)
+
+def main():
+ ip = "0.0.0.0" # IP address to listen on
+ port = 8000 # Port to listen on
+
+ # Start the OSC system
+ osc_startup()
+
+ # Make server channels to receive packets
+ osc_udp_server(ip, port, "osc_server")
+
+ # Associate Python functions with message address patterns
+ osc_method("/tcp_position", joint_states_handler, argscheme=osm.OSCARG_DATAUNPACK)
+
+ print(f"Listening for OSC messages on {ip}:{port}...")
+
+ try:
+ # Run the event loop
+ while True:
+ osc_process() # Process OSC messages
+ time.sleep(0.01) # Sleep to avoid high CPU usage
+
+ except KeyboardInterrupt:
+ print("")
+
+ finally:
+ # Properly close the system
+ osc_terminate()
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/workspace/src/install/.colcon_install_layout b/workspace/src/install/.colcon_install_layout
new file mode 100644
index 0000000..3aad533
--- /dev/null
+++ b/workspace/src/install/.colcon_install_layout
@@ -0,0 +1 @@
+isolated
diff --git a/workspace/src/install/COLCON_IGNORE b/workspace/src/install/COLCON_IGNORE
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/install/_local_setup_util_ps1.py b/workspace/src/install/_local_setup_util_ps1.py
new file mode 100644
index 0000000..3c6d9e8
--- /dev/null
+++ b/workspace/src/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/workspace/src/install/_local_setup_util_sh.py b/workspace/src/install/_local_setup_util_sh.py
new file mode 100644
index 0000000..f67eaa9
--- /dev/null
+++ b/workspace/src/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/workspace/src/install/joint_control/lib/joint_control/joint_control b/workspace/src/install/joint_control/lib/joint_control/joint_control
new file mode 100755
index 0000000..41f313f
--- /dev/null
+++ b/workspace/src/install/joint_control/lib/joint_control/joint_control
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-control','console_scripts','joint_control'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-control'
+
+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('joint-control', 'console_scripts', 'joint_control')())
diff --git a/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link b/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link
new file mode 100644
index 0000000..52ba7a3
--- /dev/null
+++ b/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link
@@ -0,0 +1,2 @@
+/BA/workspace/src/build/joint_control
+.
\ No newline at end of file
diff --git a/workspace/src/install/joint_control/share/ament_index/resource_index/packages/joint_control b/workspace/src/install/joint_control/share/ament_index/resource_index/packages/joint_control
new file mode 120000
index 0000000..637b59d
--- /dev/null
+++ b/workspace/src/install/joint_control/share/ament_index/resource_index/packages/joint_control
@@ -0,0 +1 @@
+/BA/workspace/src/build/joint_control/resource/joint_control
\ No newline at end of file
diff --git a/workspace/src/install/joint_control/share/colcon-core/packages/joint_control b/workspace/src/install/joint_control/share/colcon-core/packages/joint_control
new file mode 100644
index 0000000..122cb1f
--- /dev/null
+++ b/workspace/src/install/joint_control/share/colcon-core/packages/joint_control
@@ -0,0 +1 @@
+osc4py3:trajectory_msgs:xml
\ No newline at end of file
diff --git a/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv b/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv
new file mode 100644
index 0000000..79d4c95
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;AMENT_PREFIX_PATH;
diff --git a/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1 b/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1
new file mode 100644
index 0000000..26b9997
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh b/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh
new file mode 100644
index 0000000..f3041f6
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv b/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv
new file mode 100644
index 0000000..257067d
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;lib/python3.10/site-packages
diff --git a/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1 b/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1
new file mode 100644
index 0000000..caffe83
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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.10/site-packages"
diff --git a/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh b/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh
new file mode 100644
index 0000000..660c348
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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.10/site-packages"
diff --git a/workspace/src/install/joint_control/share/joint_control/package.bash b/workspace/src/install/joint_control/share/joint_control/package.bash
new file mode 100644
index 0000000..471a19f
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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/joint_control/package.sh"
+
+unset _colcon_package_bash_source_script
+unset _colcon_package_bash_COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/joint_control/share/joint_control/package.dsv b/workspace/src/install/joint_control/share/joint_control/package.dsv
new file mode 100644
index 0000000..bd99f6c
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/package.dsv
@@ -0,0 +1,9 @@
+source;share/joint_control/hook/pythonpath.ps1
+source;share/joint_control/hook/pythonpath.dsv
+source;share/joint_control/hook/pythonpath.sh
+source;share/joint_control/hook/ament_prefix_path.ps1
+source;share/joint_control/hook/ament_prefix_path.dsv
+source;share/joint_control/hook/ament_prefix_path.sh
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.ps1
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.dsv
+source;../../build/joint_control/share/joint_control/hook/pythonpath_develop.sh
diff --git a/workspace/src/install/joint_control/share/joint_control/package.ps1 b/workspace/src/install/joint_control/share/joint_control/package.ps1
new file mode 100644
index 0000000..40dd0a7
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/package.ps1
@@ -0,0 +1,117 @@
+# 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/joint_control/hook/pythonpath.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/joint_control/hook/ament_prefix_path.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\../../build/joint_control/share/joint_control/hook/pythonpath_develop.ps1"
+
+Remove-Item Env:\COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/joint_control/share/joint_control/package.sh b/workspace/src/install/joint_control/share/joint_control/package.sh
new file mode 100644
index 0000000..6195123
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/package.sh
@@ -0,0 +1,88 @@
+# 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="/BA/workspace/src/install/joint_control"
+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/joint_control/hook/pythonpath.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/joint_control/hook/ament_prefix_path.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/../../build/joint_control/share/joint_control/hook/pythonpath_develop.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/workspace/src/install/joint_control/share/joint_control/package.xml b/workspace/src/install/joint_control/share/joint_control/package.xml
new file mode 120000
index 0000000..cbba222
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/package.xml
@@ -0,0 +1 @@
+/BA/workspace/src/build/joint_control/package.xml
\ No newline at end of file
diff --git a/workspace/src/install/joint_control/share/joint_control/package.zsh b/workspace/src/install/joint_control/share/joint_control/package.zsh
new file mode 100644
index 0000000..5cf87e0
--- /dev/null
+++ b/workspace/src/install/joint_control/share/joint_control/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/joint_control/package.sh"
+unset convert_zsh_to_array
+
+unset _colcon_package_zsh_source_script
+unset _colcon_package_zsh_COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/joint_info/lib/joint_info/joint_states_pub b/workspace/src/install/joint_info/lib/joint_info/joint_states_pub
new file mode 100755
index 0000000..17c3520
--- /dev/null
+++ b/workspace/src/install/joint_info/lib/joint_info/joint_states_pub
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','joint_states_pub'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-info'
+
+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('joint-info', 'console_scripts', 'joint_states_pub')())
diff --git a/workspace/src/install/joint_info/lib/joint_info/joint_states_sub b/workspace/src/install/joint_info/lib/joint_info/joint_states_sub
new file mode 100755
index 0000000..d3813cd
--- /dev/null
+++ b/workspace/src/install/joint_info/lib/joint_info/joint_states_sub
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','joint_states_sub'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-info'
+
+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('joint-info', 'console_scripts', 'joint_states_sub')())
diff --git a/workspace/src/install/joint_info/lib/joint_info/tcp_cart_pos b/workspace/src/install/joint_info/lib/joint_info/tcp_cart_pos
new file mode 100755
index 0000000..15cc67e
--- /dev/null
+++ b/workspace/src/install/joint_info/lib/joint_info/tcp_cart_pos
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','tcp_cart_pos'
+import re
+import sys
+
+# for compatibility with easy_install; see #2198
+__requires__ = 'joint-info'
+
+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('joint-info', 'console_scripts', 'tcp_cart_pos')())
diff --git a/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link b/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link
new file mode 100644
index 0000000..f260405
--- /dev/null
+++ b/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link
@@ -0,0 +1,2 @@
+/BA/workspace/src/build/joint_info
+.
\ No newline at end of file
diff --git a/workspace/src/install/joint_info/share/ament_index/resource_index/packages/joint_info b/workspace/src/install/joint_info/share/ament_index/resource_index/packages/joint_info
new file mode 120000
index 0000000..8a69efe
--- /dev/null
+++ b/workspace/src/install/joint_info/share/ament_index/resource_index/packages/joint_info
@@ -0,0 +1 @@
+/BA/workspace/src/build/joint_info/resource/joint_info
\ No newline at end of file
diff --git a/workspace/src/install/joint_info/share/colcon-core/packages/joint_info b/workspace/src/install/joint_info/share/colcon-core/packages/joint_info
new file mode 100644
index 0000000..df80570
--- /dev/null
+++ b/workspace/src/install/joint_info/share/colcon-core/packages/joint_info
@@ -0,0 +1 @@
+osc4py3:rclpy:roboticstoolbox:sensor_msgs
\ No newline at end of file
diff --git a/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv b/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv
new file mode 100644
index 0000000..79d4c95
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;AMENT_PREFIX_PATH;
diff --git a/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1 b/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1
new file mode 100644
index 0000000..26b9997
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh b/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh
new file mode 100644
index 0000000..f3041f6
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv b/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv
new file mode 100644
index 0000000..257067d
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv
@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;lib/python3.10/site-packages
diff --git a/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1 b/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1
new file mode 100644
index 0000000..caffe83
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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.10/site-packages"
diff --git a/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh b/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh
new file mode 100644
index 0000000..660c348
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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.10/site-packages"
diff --git a/workspace/src/install/joint_info/share/joint_info/package.bash b/workspace/src/install/joint_info/share/joint_info/package.bash
new file mode 100644
index 0000000..8473059
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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/joint_info/package.sh"
+
+unset _colcon_package_bash_source_script
+unset _colcon_package_bash_COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/joint_info/share/joint_info/package.dsv b/workspace/src/install/joint_info/share/joint_info/package.dsv
new file mode 100644
index 0000000..2bd9b71
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/package.dsv
@@ -0,0 +1,9 @@
+source;share/joint_info/hook/pythonpath.ps1
+source;share/joint_info/hook/pythonpath.dsv
+source;share/joint_info/hook/pythonpath.sh
+source;share/joint_info/hook/ament_prefix_path.ps1
+source;share/joint_info/hook/ament_prefix_path.dsv
+source;share/joint_info/hook/ament_prefix_path.sh
+source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.ps1
+source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.dsv
+source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.sh
diff --git a/workspace/src/install/joint_info/share/joint_info/package.ps1 b/workspace/src/install/joint_info/share/joint_info/package.ps1
new file mode 100644
index 0000000..46204e6
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/package.ps1
@@ -0,0 +1,117 @@
+# 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/joint_info/hook/pythonpath.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/joint_info/hook/ament_prefix_path.ps1"
+colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\../../build/joint_info/share/joint_info/hook/pythonpath_develop.ps1"
+
+Remove-Item Env:\COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/joint_info/share/joint_info/package.sh b/workspace/src/install/joint_info/share/joint_info/package.sh
new file mode 100644
index 0000000..d8a902c
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/package.sh
@@ -0,0 +1,88 @@
+# 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="/BA/workspace/src/install/joint_info"
+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/joint_info/hook/pythonpath.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/joint_info/hook/ament_prefix_path.sh"
+_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/../../build/joint_info/share/joint_info/hook/pythonpath_develop.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/workspace/src/install/joint_info/share/joint_info/package.xml b/workspace/src/install/joint_info/share/joint_info/package.xml
new file mode 120000
index 0000000..284e302
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/package.xml
@@ -0,0 +1 @@
+/BA/workspace/src/build/joint_info/package.xml
\ No newline at end of file
diff --git a/workspace/src/install/joint_info/share/joint_info/package.zsh b/workspace/src/install/joint_info/share/joint_info/package.zsh
new file mode 100644
index 0000000..5bfe95e
--- /dev/null
+++ b/workspace/src/install/joint_info/share/joint_info/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/joint_info/package.sh"
+unset convert_zsh_to_array
+
+unset _colcon_package_zsh_source_script
+unset _colcon_package_zsh_COLCON_CURRENT_PREFIX
diff --git a/workspace/src/install/local_setup.bash b/workspace/src/install/local_setup.bash
new file mode 100644
index 0000000..03f0025
--- /dev/null
+++ b/workspace/src/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/workspace/src/install/local_setup.ps1 b/workspace/src/install/local_setup.ps1
new file mode 100644
index 0000000..6f68c8d
--- /dev/null
+++ b/workspace/src/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/workspace/src/install/local_setup.sh b/workspace/src/install/local_setup.sh
new file mode 100644
index 0000000..64bd247
--- /dev/null
+++ b/workspace/src/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="/BA/workspace/src/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/workspace/src/install/local_setup.zsh b/workspace/src/install/local_setup.zsh
new file mode 100644
index 0000000..b648710
--- /dev/null
+++ b/workspace/src/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/workspace/src/install/setup.bash b/workspace/src/install/setup.bash
new file mode 100644
index 0000000..10ea0f7
--- /dev/null
+++ b/workspace/src/install/setup.bash
@@ -0,0 +1,31 @@
+# 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/humble"
+_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/workspace/src/install/setup.ps1 b/workspace/src/install/setup.ps1
new file mode 100644
index 0000000..558e9b9
--- /dev/null
+++ b/workspace/src/install/setup.ps1
@@ -0,0 +1,29 @@
+# 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/humble\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/workspace/src/install/setup.sh b/workspace/src/install/setup.sh
new file mode 100644
index 0000000..c2c4890
--- /dev/null
+++ b/workspace/src/install/setup.sh
@@ -0,0 +1,45 @@
+# 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=/BA/workspace/src/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/humble"
+_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/workspace/src/install/setup.zsh b/workspace/src/install/setup.zsh
new file mode 100644
index 0000000..54799fd
--- /dev/null
+++ b/workspace/src/install/setup.zsh
@@ -0,0 +1,31 @@
+# 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/humble"
+_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/workspace/src/joint_angles.py b/workspace/src/joint_angles.py
new file mode 100644
index 0000000..8f48a84
--- /dev/null
+++ b/workspace/src/joint_angles.py
@@ -0,0 +1,26 @@
+from osc4py3.as_eventloop import *
+from osc4py3 import oscbuildparse
+import numpy as np
+
+def main():
+ # Start the OSC system
+ osc_startup()
+
+ # Make client channels to send packets
+ osc_udp_client("127.0.0.1", 8000, "osc_client")
+
+ # Example joint positions to send
+ joint_positions = [1.0,2.0, 3.0,4.0, 5.0, 6.0]
+
+
+ msg = oscbuildparse.OSCMessage("/joint_angles", None, joint_positions)
+
+ # Send the OSC message
+ osc_send(msg, "osc_client")
+ osc_process()
+
+ print(f"Sent joint positions: {joint_positions}")
+ osc_terminate()
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/workspace/src/joint_control/joint_control/__init__.py b/workspace/src/joint_control/joint_control/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/joint_control/joint_control/__pycache__/__init__.cpython-310.pyc b/workspace/src/joint_control/joint_control/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000..b9dd570
Binary files /dev/null and b/workspace/src/joint_control/joint_control/__pycache__/__init__.cpython-310.pyc differ
diff --git a/workspace/src/joint_control/joint_control/__pycache__/joint_angles_server.cpython-310.pyc b/workspace/src/joint_control/joint_control/__pycache__/joint_angles_server.cpython-310.pyc
new file mode 100644
index 0000000..b102ed7
Binary files /dev/null and b/workspace/src/joint_control/joint_control/__pycache__/joint_angles_server.cpython-310.pyc differ
diff --git a/workspace/src/joint_control/joint_control/joint_angles_server.py b/workspace/src/joint_control/joint_control/joint_angles_server.py
new file mode 100644
index 0000000..3c01da1
--- /dev/null
+++ b/workspace/src/joint_control/joint_control/joint_angles_server.py
@@ -0,0 +1,81 @@
+import rclpy
+from rclpy.node import Node
+from trajectory_msgs.msg import JointTrajectory, JointTrajectoryPoint
+from osc4py3.as_eventloop import *
+from osc4py3 import oscmethod as osm
+import xml.etree.ElementTree as ET
+import time
+
+class ScaledJointTrajectoryPublisher(Node):
+ """Node to publish joint trajectories based on OSC messages."""
+ def __init__(self, joint_names):
+ super().__init__('scaled_joint_trajectory_publisher')
+
+ # ROS2 Publisher
+ self.publisher = self.create_publisher(
+ JointTrajectory,
+ '/scaled_joint_trajectory_controller/joint_trajectory',
+ 10
+ )
+
+ # Store received joint positions
+ self.joint_positions = [0.0] * len(joint_names)
+ self.joint_names = joint_names
+
+ osc_startup()
+ osc_udp_server("0.0.0.0", 8000, "osc_server")
+ print("Server started on 0.0.0.0:8000 ready to receive messages in the following format: /joint_angles [joint_positions] optional: duration as second argument")
+ # Register OSC handler
+ osc_method("/joint_angles", self.joint_angles_handler, argscheme=osm.OSCARG_DATAUNPACK)
+
+ def joint_angles_handler(self, *args):
+ """Handles incoming OSC messages for joint positions."""
+ if len(args) == len(self.joint_positions):
+ self.joint_positions = args
+ self.send_trajectory(self.joint_positions)
+ else:
+ self.joint_positions = args[0]
+ self.send_trajectory(self.joint_positions, args[1])
+ print(f'Duration: {args[1]}')
+
+
+
+ def send_trajectory(self, joint_positions, duration=3.0):
+ """Publish a joint trajectory command to move the robot."""
+ msg = JointTrajectory()
+ msg.joint_names = self.joint_names
+ point = JointTrajectoryPoint()
+ point.positions = joint_positions # Updated joint positions
+ point.time_from_start.sec = int(duration)
+ point.time_from_start.nanosec = int((duration - int(duration)) * 1e9)
+
+ msg.points.append(point)
+ self.publisher.publish(msg)
+ print(f"Updated joint positions: {self.joint_positions}")
+
+
+def main():
+ """Main function to get joint names and start the ROS 2 & OSC system."""
+
+ tree = ET.parse('/BA/robot.urdf')
+ root = tree.getroot()
+ joint_names = [joint.get('name') for joint in root.findall('joint') if joint.get('type') == 'revolute' or joint.get('type') == 'continuous' or joint.get('type') == 'prismatic']
+
+ rclpy.init()
+
+ node = ScaledJointTrajectoryPublisher(joint_names)
+
+ # Run both ROS 2 and OSC Server together
+ try:
+ while rclpy.ok():
+ osc_process() # Handle one OSC request at a time
+ rclpy.spin_once(node, timeout_sec=0.1) # Process ROS callbacks
+ except KeyboardInterrupt:
+ print("")
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+ osc_terminate()
+
+if __name__ == '__main__':
+ main()
diff --git a/workspace/src/joint_control/package.xml b/workspace/src/joint_control/package.xml
new file mode 100644
index 0000000..13fa1a2
--- /dev/null
+++ b/workspace/src/joint_control/package.xml
@@ -0,0 +1,21 @@
+
+
+
+ joint_control
+ 0.0.0
+ TODO: Package description
+ root
+ TODO: License declaration
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+ osc4py3
+ trajectory_msgs
+ xml
+
+ ament_python
+
+
diff --git a/workspace/src/joint_control/resource/joint_control b/workspace/src/joint_control/resource/joint_control
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/joint_control/setup.cfg b/workspace/src/joint_control/setup.cfg
new file mode 100644
index 0000000..be0c3da
--- /dev/null
+++ b/workspace/src/joint_control/setup.cfg
@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/joint_control
+[install]
+install_scripts=$base/lib/joint_control
diff --git a/workspace/src/joint_control/setup.py b/workspace/src/joint_control/setup.py
new file mode 100644
index 0000000..f362d46
--- /dev/null
+++ b/workspace/src/joint_control/setup.py
@@ -0,0 +1,27 @@
+from setuptools import find_packages, setup
+
+package_name = 'joint_control'
+
+setup(
+ name=package_name,
+ version='0.0.0',
+ packages=find_packages(exclude=['test']),
+ data_files=[
+ ('share/ament_index/resource_index/packages',
+ ['resource/' + package_name]),
+ ('share/' + package_name, ['package.xml']),
+ ],
+ install_requires=['setuptools'
+ 'osc4py3'],
+ zip_safe=True,
+ maintainer='root',
+ maintainer_email='root@todo.todo',
+ description='TODO: Package description',
+ license='TODO: License declaration',
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ 'joint_control = joint_control.joint_angles_server:main',
+ ],
+ },
+)
diff --git a/workspace/src/joint_control/test/test_copyright.py b/workspace/src/joint_control/test/test_copyright.py
new file mode 100644
index 0000000..97a3919
--- /dev/null
+++ b/workspace/src/joint_control/test/test_copyright.py
@@ -0,0 +1,25 @@
+# Copyright 2015 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_copyright.main import main
+import pytest
+
+
+# Remove the `skip` decorator once the source file(s) have a copyright header
+@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.')
+@pytest.mark.copyright
+@pytest.mark.linter
+def test_copyright():
+ rc = main(argv=['.', 'test'])
+ assert rc == 0, 'Found errors'
diff --git a/workspace/src/joint_control/test/test_flake8.py b/workspace/src/joint_control/test/test_flake8.py
new file mode 100644
index 0000000..27ee107
--- /dev/null
+++ b/workspace/src/joint_control/test/test_flake8.py
@@ -0,0 +1,25 @@
+# Copyright 2017 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_flake8.main import main_with_errors
+import pytest
+
+
+@pytest.mark.flake8
+@pytest.mark.linter
+def test_flake8():
+ rc, errors = main_with_errors(argv=[])
+ assert rc == 0, \
+ 'Found %d code style errors / warnings:\n' % len(errors) + \
+ '\n'.join(errors)
diff --git a/workspace/src/joint_control/test/test_pep257.py b/workspace/src/joint_control/test/test_pep257.py
new file mode 100644
index 0000000..b234a38
--- /dev/null
+++ b/workspace/src/joint_control/test/test_pep257.py
@@ -0,0 +1,23 @@
+# Copyright 2015 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_pep257.main import main
+import pytest
+
+
+@pytest.mark.linter
+@pytest.mark.pep257
+def test_pep257():
+ rc = main(argv=['.', 'test'])
+ assert rc == 0, 'Found code style errors / warnings'
diff --git a/workspace/src/joint_info/joint_info/__pycache__/osc_joint_states_pub.cpython-310.pyc b/workspace/src/joint_info/joint_info/__pycache__/osc_joint_states_pub.cpython-310.pyc
index 2d3a0b2..298e375 100644
Binary files a/workspace/src/joint_info/joint_info/__pycache__/osc_joint_states_pub.cpython-310.pyc and b/workspace/src/joint_info/joint_info/__pycache__/osc_joint_states_pub.cpython-310.pyc differ
diff --git a/workspace/src/joint_info/joint_info/__pycache__/tcp_cart_pos.cpython-310.pyc b/workspace/src/joint_info/joint_info/__pycache__/tcp_cart_pos.cpython-310.pyc
new file mode 100644
index 0000000..e3499b2
Binary files /dev/null and b/workspace/src/joint_info/joint_info/__pycache__/tcp_cart_pos.cpython-310.pyc differ
diff --git a/workspace/src/joint_info/joint_info/osc_joint_states_pub.py b/workspace/src/joint_info/joint_info/osc_joint_states_pub.py
index e11b39d..b27a8b1 100755
--- a/workspace/src/joint_info/joint_info/osc_joint_states_pub.py
+++ b/workspace/src/joint_info/joint_info/osc_joint_states_pub.py
@@ -19,7 +19,6 @@ class JointStateOSC(Node):
# Open Sound Control (OSC) Client settings
self.osc_ip = "127.0.0.1" # Replace with the target IP
self.osc_port = 8000 # Replace with the target port
-
# Start the OSC system
osc_startup()
diff --git a/workspace/src/joint_info/joint_info/tcp_cart_pos.py b/workspace/src/joint_info/joint_info/tcp_cart_pos.py
new file mode 100644
index 0000000..f5b73db
--- /dev/null
+++ b/workspace/src/joint_info/joint_info/tcp_cart_pos.py
@@ -0,0 +1,69 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import JointState
+from osc4py3.as_eventloop import *
+from osc4py3 import oscbuildparse
+import roboticstoolbox as rtb
+import xml.etree.ElementTree as ET
+
+class JointStateOSC(Node):
+ def __init__(self, robot, joint_names):
+ super().__init__('joint_states_osc')
+
+ self.joint_names_urdf = joint_names
+ self.robot = robot
+
+ # Create a ROS 2 subscriber to /joint_states topic
+ self.subscription = self.create_subscription(
+ JointState,
+ '/joint_states',
+ self.joint_states_callback,
+ 1 # Queue size
+ )
+
+ # Open Sound Control (OSC) Client settings
+ self.osc_ip = "127.0.0.1" # Replace with the target IP
+ self.osc_port = 8000 # Replace with the target port
+
+ # Start the OSC system
+ osc_startup()
+
+ # Make client channels to send packets
+ osc_udp_client(self.osc_ip, self.osc_port, "osc_client")
+
+ def joint_states_callback(self, msg):
+ """Callback function to handle incoming joint states."""
+ header = msg.header
+ joint_names = msg.name
+ joint_positions = msg.position
+ joint_positions = [joint_positions[joint_names.index(joint)] for joint in self.joint_names_urdf]
+ tcp_pos = self.robot.fkine(joint_positions).t
+ print(type(tcp_pos))
+ msg = oscbuildparse.OSCMessage("/tcp_position", None, tcp_pos.tolist())
+ osc_send(msg, "osc_client")
+ osc_process()
+ #print(f"Published TCP position: {tcp_pos}")
+
+
+
+def main():
+ rclpy.init()
+ robot = rtb.ERobot.URDF('/BA/robot.urdf')
+ tree = ET.parse('/BA/robot.urdf')
+ root = tree.getroot()
+ joint_names = [joint.get('name') for joint in root.findall('joint') if joint.get('type') == 'revolute' or joint.get('type') == 'continuous' or joint.get('type') == 'prismatic']
+
+ node = JointStateOSC(robot, joint_names)
+
+ print(f"Publishing TCP coordinates to OSC on {node.osc_ip}:{node.osc_port}...")
+ try:
+ rclpy.spin(node)
+ except KeyboardInterrupt:
+ print("shutting down...")
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+ osc_terminate()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/workspace/src/joint_info/package.xml b/workspace/src/joint_info/package.xml
index c189f5b..fd86926 100644
--- a/workspace/src/joint_info/package.xml
+++ b/workspace/src/joint_info/package.xml
@@ -9,14 +9,15 @@
rclpy
sensor_msgs
+ osc4py3
+ roboticstoolbox
ament_copyright
ament_flake8
ament_pep257
python3-pytest
- osc4py3
-
+
ament_python
diff --git a/workspace/src/joint_info/setup.py b/workspace/src/joint_info/setup.py
index 3df8742..f79d415 100644
--- a/workspace/src/joint_info/setup.py
+++ b/workspace/src/joint_info/setup.py
@@ -24,6 +24,7 @@ setup(
'console_scripts': [
"joint_states_pub = joint_info.osc_joint_states_pub:main",
"joint_states_sub = joint_info.osc_joint_states_sub:main",
+ "tcp_cart_pos = joint_info.tcp_cart_pos:main",
],
},
)
diff --git a/workspace/src/log/COLCON_IGNORE b/workspace/src/log/COLCON_IGNORE
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/events.log b/workspace/src/log/build_2025-03-20_10-07-35/events.log
new file mode 100644
index 0000000..de87528
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/events.log
@@ -0,0 +1,70 @@
+[0.000000] (-) TimerEvent: {}
+[0.002475] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.002841] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.003773] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.013984] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098001] (-) TimerEvent: {}
+[0.199044] (-) TimerEvent: {}
+[0.302873] (-) TimerEvent: {}
+[0.403983] (-) TimerEvent: {}
+[0.540135] (-) TimerEvent: {}
+[0.646535] (-) TimerEvent: {}
+[0.747814] (-) TimerEvent: {}
+[0.849975] (-) TimerEvent: {}
+[0.951806] (-) TimerEvent: {}
+[1.016658] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.038956] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.052790] (-) TimerEvent: {}
+[1.153807] (-) TimerEvent: {}
+[1.256811] (-) TimerEvent: {}
+[1.316889] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.319481] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.358035] (-) TimerEvent: {}
+[1.420732] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.424341] (joint_info) StdoutLine: {'line': b'creating joint_info.egg-info\n'}
+[1.425448] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.426049] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.427293] (joint_control) StdoutLine: {'line': b'creating joint_control.egg-info\n'}
+[1.428157] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.428646] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.429348] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.430218] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.431546] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.432450] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.433302] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.433917] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.434751] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.435899] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.437535] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.443001] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.443395] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.445758] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.446293] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.447562] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.448014] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.448527] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.449597] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.451463] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.452351] (joint_control) StdoutLine: {'line': b'\n'}
+[1.452938] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_control\n'}
+[1.453674] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.454083] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_control/share/ament_index\n'}
+[1.454418] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index\n'}
+[1.455123] (joint_control) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages\n'}
+[1.456365] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.458379] (-) TimerEvent: {}
+[1.459269] (joint_control) StdoutLine: {'line': b'symbolically linking /BA/workspace/src/build/joint_control/resource/joint_control -> /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages\n'}
+[1.461618] (joint_control) StdoutLine: {'line': b'symbolically linking /BA/workspace/src/build/joint_control/package.xml -> /BA/workspace/src/install/joint_control/share/joint_control\n'}
+[1.463419] (joint_info) StdoutLine: {'line': b'\n'}
+[1.465691] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_info\n'}
+[1.466848] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.469504] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_info/share/ament_index\n'}
+[1.472950] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index\n'}
+[1.475353] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages\n'}
+[1.478125] (joint_info) StdoutLine: {'line': b'symbolically linking /BA/workspace/src/build/joint_info/resource/joint_info -> /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages\n'}
+[1.479451] (joint_info) StdoutLine: {'line': b'symbolically linking /BA/workspace/src/build/joint_info/package.xml -> /BA/workspace/src/install/joint_info/share/joint_info\n'}
+[1.483390] (joint_control) CommandEnded: {'returncode': 0}
+[1.514784] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.517069] (joint_info) CommandEnded: {'returncode': 0}
+[1.535716] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.539220] (-) EventReactorShutdown: {}
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_control/command.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/command.log
new file mode 100644
index 0000000..eead094
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stderr.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout.log
new file mode 100644
index 0000000..d7a3d49
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout.log
@@ -0,0 +1,21 @@
+running develop
+running egg_info
+creating joint_control.egg-info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
+creating /BA/workspace/src/install/joint_control/share/ament_index
+creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index
+creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_control/resource/joint_control -> /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_control/package.xml -> /BA/workspace/src/install/joint_control/share/joint_control
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..d7a3d49
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/stdout_stderr.log
@@ -0,0 +1,21 @@
+running develop
+running egg_info
+creating joint_control.egg-info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
+creating /BA/workspace/src/install/joint_control/share/ament_index
+creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index
+creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_control/resource/joint_control -> /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_control/package.xml -> /BA/workspace/src/install/joint_control/share/joint_control
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_control/streams.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/streams.log
new file mode 100644
index 0000000..45e999c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_control/streams.log
@@ -0,0 +1,23 @@
+[1.023s] Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.316s] running develop
+[1.423s] running egg_info
+[1.424s] creating joint_control.egg-info
+[1.425s] writing joint_control.egg-info/PKG-INFO
+[1.428s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.430s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.432s] writing requirements to joint_control.egg-info/requires.txt
+[1.432s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.435s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.440s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.442s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.446s] running build_ext
+[1.446s] Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.449s]
+[1.450s] Installed /BA/workspace/src/build/joint_control
+[1.450s] running symlink_data
+[1.450s] creating /BA/workspace/src/install/joint_control/share/ament_index
+[1.451s] creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index
+[1.452s] creating /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+[1.456s] symbolically linking /BA/workspace/src/build/joint_control/resource/joint_control -> /BA/workspace/src/install/joint_control/share/ament_index/resource_index/packages
+[1.459s] symbolically linking /BA/workspace/src/build/joint_control/package.xml -> /BA/workspace/src/install/joint_control/share/joint_control
+[1.481s] Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_info/command.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/command.log
new file mode 100644
index 0000000..722c725
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stderr.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout.log
new file mode 100644
index 0000000..802ba2c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout.log
@@ -0,0 +1,23 @@
+running develop
+running egg_info
+creating joint_info.egg-info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
+creating /BA/workspace/src/install/joint_info/share/ament_index
+creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index
+creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_info/resource/joint_info -> /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_info/package.xml -> /BA/workspace/src/install/joint_info/share/joint_info
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..802ba2c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/stdout_stderr.log
@@ -0,0 +1,23 @@
+running develop
+running egg_info
+creating joint_info.egg-info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
+creating /BA/workspace/src/install/joint_info/share/ament_index
+creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index
+creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_info/resource/joint_info -> /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+symbolically linking /BA/workspace/src/build/joint_info/package.xml -> /BA/workspace/src/install/joint_info/share/joint_info
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/joint_info/streams.log b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/streams.log
new file mode 100644
index 0000000..af15997
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/joint_info/streams.log
@@ -0,0 +1,25 @@
+[1.028s] Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.305s] running develop
+[1.410s] running egg_info
+[1.411s] creating joint_info.egg-info
+[1.412s] writing joint_info.egg-info/PKG-INFO
+[1.415s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.416s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.417s] writing requirements to joint_info.egg-info/requires.txt
+[1.419s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.420s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.429s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.433s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.434s] running build_ext
+[1.434s] Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.438s] Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.444s] Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.451s]
+[1.452s] Installed /BA/workspace/src/build/joint_info
+[1.455s] running symlink_data
+[1.458s] creating /BA/workspace/src/install/joint_info/share/ament_index
+[1.460s] creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index
+[1.462s] creating /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+[1.465s] symbolically linking /BA/workspace/src/build/joint_info/resource/joint_info -> /BA/workspace/src/install/joint_info/share/ament_index/resource_index/packages
+[1.466s] symbolically linking /BA/workspace/src/build/joint_info/package.xml -> /BA/workspace/src/install/joint_info/share/joint_info
+[1.503s] Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-07-35/logger_all.log b/workspace/src/log/build_2025-03-20_10-07-35/logger_all.log
new file mode 100644
index 0000000..ad8abe2
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-07-35/logger_all.log
@@ -0,0 +1,170 @@
+[0.092s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.093s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.199s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.199s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.200s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace/src'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
+[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
+[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
+[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.243s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.243s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_control', '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': '/BA/workspace/src/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.244s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.244s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_info', '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': '/BA/workspace/src/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.244s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.247s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.248s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.248s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.250s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.251s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.254s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.254s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.255s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.255s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.262s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.263s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.266s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.272s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.273s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.273s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.274s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.554s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.555s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.555s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.854s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.855s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.855s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.275s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.290s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.732s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.732s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.734s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.737s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.740s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.745s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake module files
+[1.747s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake config files
+[1.750s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib'
+[1.751s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.751s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.751s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/python3.10/site-packages'
+[1.751s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.752s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.752s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.753s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.754s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.754s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.754s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.ps1'
+[1.755s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_control/share/joint_control/package.dsv'
+[1.757s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.sh'
+[1.760s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.bash'
+[1.761s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.zsh'
+[1.762s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_control/share/colcon-core/packages/joint_control)
+[1.764s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.764s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.766s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.767s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.769s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.770s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake module files
+[1.772s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake config files
+[1.774s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib'
+[1.774s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.774s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.775s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/python3.10/site-packages'
+[1.775s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.775s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.776s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.776s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.777s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.777s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.778s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.ps1'
+[1.778s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_info/share/joint_info/package.dsv'
+[1.780s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.sh'
+[1.781s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.bash'
+[1.781s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.zsh'
+[1.782s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_info/share/colcon-core/packages/joint_info)
+[1.784s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.784s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.785s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.785s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.800s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.801s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.801s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.801s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.803s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.804s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.804s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.ps1'
+[1.806s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_ps1.py'
+[1.808s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.ps1'
+[1.813s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.sh'
+[1.815s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_sh.py'
+[1.817s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.sh'
+[1.820s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.bash'
+[1.821s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.bash'
+[1.822s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.zsh'
+[1.824s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.zsh'
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/events.log b/workspace/src/log/build_2025-03-20_10-12-33/events.log
new file mode 100644
index 0000000..f8fe7b8
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/events.log
@@ -0,0 +1,57 @@
+[0.000000] (-) TimerEvent: {}
+[0.001633] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.001984] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.002265] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.012192] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098174] (-) TimerEvent: {}
+[0.200918] (-) TimerEvent: {}
+[0.301921] (-) TimerEvent: {}
+[0.406099] (-) TimerEvent: {}
+[0.507937] (-) TimerEvent: {}
+[0.608960] (-) TimerEvent: {}
+[0.711971] (-) TimerEvent: {}
+[0.814018] (-) TimerEvent: {}
+[0.916942] (-) TimerEvent: {}
+[0.968916] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[0.996686] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.017900] (-) TimerEvent: {}
+[1.118918] (-) TimerEvent: {}
+[1.219913] (-) TimerEvent: {}
+[1.263253] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.288859] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.320913] (-) TimerEvent: {}
+[1.370763] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.371241] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.373157] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.374156] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.374620] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.374972] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.378376] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.388039] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.391455] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.391602] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.392960] (joint_control) StdoutLine: {'line': b'Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control\n'}
+[1.394151] (joint_control) StdoutLine: {'line': b'\n'}
+[1.394359] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_control\n'}
+[1.394615] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.412999] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.413406] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.414017] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.414600] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.415282] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.415681] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.418259] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.420669] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.423455] (-) TimerEvent: {}
+[1.423710] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.424358] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.425193] (joint_control) CommandEnded: {'returncode': 0}
+[1.426203] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.427119] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.431136] (joint_info) StdoutLine: {'line': b'\n'}
+[1.431758] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_info\n'}
+[1.432162] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.457062] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.459411] (joint_info) CommandEnded: {'returncode': 0}
+[1.471507] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.473156] (-) EventReactorShutdown: {}
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_control/command.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/command.log
new file mode 100644
index 0000000..eead094
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stderr.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/stdout_stderr.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_control/streams.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/streams.log
new file mode 100644
index 0000000..6735b69
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_control/streams.log
@@ -0,0 +1,17 @@
+[0.970s] Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.261s] running develop
+[1.369s] running egg_info
+[1.369s] writing joint_control.egg-info/PKG-INFO
+[1.371s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.372s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.372s] writing requirements to joint_control.egg-info/requires.txt
+[1.373s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.376s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.389s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.389s] running build_ext
+[1.389s] Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.391s] Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+[1.392s]
+[1.392s] Installed /BA/workspace/src/build/joint_control
+[1.393s] running symlink_data
+[1.424s] Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_info/command.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/command.log
new file mode 100644
index 0000000..722c725
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stderr.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/stdout_stderr.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/joint_info/streams.log b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/streams.log
new file mode 100644
index 0000000..6e4ba6c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/joint_info/streams.log
@@ -0,0 +1,18 @@
+[0.989s] Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.278s] running develop
+[1.400s] running egg_info
+[1.401s] writing joint_info.egg-info/PKG-INFO
+[1.401s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.402s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.402s] writing requirements to joint_info.egg-info/requires.txt
+[1.403s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.405s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.410s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.411s] running build_ext
+[1.412s] Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.414s] Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.414s] Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.419s]
+[1.419s] Installed /BA/workspace/src/build/joint_info
+[1.419s] running symlink_data
+[1.447s] Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-12-33/logger_all.log b/workspace/src/log/build_2025-03-20_10-12-33/logger_all.log
new file mode 100644
index 0000000..d573e0c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-12-33/logger_all.log
@@ -0,0 +1,170 @@
+[0.106s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.107s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.211s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.212s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.212s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.213s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.213s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.213s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.213s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.213s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.213s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace/src'
+[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
+[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
+[0.231s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
+[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
+[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
+[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.234s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.234s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.235s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.235s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.235s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.250s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.250s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.250s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.250s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.250s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.251s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_control', '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': '/BA/workspace/src/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.251s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.252s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.252s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.252s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.252s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_info', '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': '/BA/workspace/src/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.252s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.255s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.256s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.256s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.258s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.258s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.261s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.261s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.263s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.263s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.268s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.269s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.269s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.272s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.273s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.274s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.274s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.572s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.572s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.572s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.833s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.833s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.833s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.229s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.258s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.678s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.679s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.681s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.682s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.683s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.687s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake module files
+[1.692s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake config files
+[1.697s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib'
+[1.701s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.701s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.701s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/python3.10/site-packages'
+[1.702s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.702s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.706s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.707s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.708s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.708s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.708s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.ps1'
+[1.709s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_control/share/joint_control/package.dsv'
+[1.710s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.sh'
+[1.711s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.bash'
+[1.712s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.zsh'
+[1.712s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_control/share/colcon-core/packages/joint_control)
+[1.715s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.715s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.716s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.716s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.716s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.717s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake module files
+[1.719s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake config files
+[1.721s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib'
+[1.721s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.721s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.722s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/python3.10/site-packages'
+[1.722s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.722s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.722s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.723s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.723s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.724s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.724s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.ps1'
+[1.725s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_info/share/joint_info/package.dsv'
+[1.725s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.sh'
+[1.726s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.bash'
+[1.726s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.zsh'
+[1.727s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_info/share/colcon-core/packages/joint_info)
+[1.727s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.728s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.728s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.728s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.741s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.741s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.741s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.741s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.743s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.743s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.743s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.ps1'
+[1.744s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_ps1.py'
+[1.746s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.ps1'
+[1.747s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.sh'
+[1.748s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_sh.py'
+[1.748s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.sh'
+[1.749s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.bash'
+[1.750s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.bash'
+[1.751s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.zsh'
+[1.751s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.zsh'
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/events.log b/workspace/src/log/build_2025-03-20_10-14-39/events.log
new file mode 100644
index 0000000..2bb6faa
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/events.log
@@ -0,0 +1,57 @@
+[0.000000] (-) TimerEvent: {}
+[0.002002] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.002331] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.002454] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.012602] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098465] (-) TimerEvent: {}
+[0.199532] (-) TimerEvent: {}
+[0.303568] (-) TimerEvent: {}
+[0.407426] (-) TimerEvent: {}
+[0.508422] (-) TimerEvent: {}
+[0.609452] (-) TimerEvent: {}
+[0.713395] (-) TimerEvent: {}
+[0.814418] (-) TimerEvent: {}
+[0.915401] (-) TimerEvent: {}
+[0.958366] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[0.983003] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.016413] (-) TimerEvent: {}
+[1.117397] (-) TimerEvent: {}
+[1.218399] (-) TimerEvent: {}
+[1.265200] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.283742] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.319391] (-) TimerEvent: {}
+[1.386220] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.387581] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.388190] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.388901] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.389543] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.389956] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.393184] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.396238] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.397833] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.398498] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.399225] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.399701] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.400269] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.400880] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.401603] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.402056] (joint_control) StdoutLine: {'line': b'Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control\n'}
+[1.402449] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.403325] (joint_control) StdoutLine: {'line': b'\n'}
+[1.403948] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_control\n'}
+[1.404424] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.410082] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.419474] (-) TimerEvent: {}
+[1.422838] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.424580] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.425002] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.426190] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.428061] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.429228] (joint_control) CommandEnded: {'returncode': 0}
+[1.430133] (joint_info) StdoutLine: {'line': b'\n'}
+[1.430642] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_info\n'}
+[1.431106] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.457042] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.459411] (joint_info) CommandEnded: {'returncode': 0}
+[1.474148] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.475790] (-) EventReactorShutdown: {}
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_control/command.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/command.log
new file mode 100644
index 0000000..eead094
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stderr.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/stdout_stderr.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_control/streams.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/streams.log
new file mode 100644
index 0000000..f09cc60
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_control/streams.log
@@ -0,0 +1,17 @@
+[0.968s] Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.266s] running develop
+[1.384s] running egg_info
+[1.385s] writing joint_control.egg-info/PKG-INFO
+[1.386s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.387s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.387s] writing requirements to joint_control.egg-info/requires.txt
+[1.388s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.391s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.394s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.396s] running build_ext
+[1.397s] Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.400s] Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+[1.401s]
+[1.402s] Installed /BA/workspace/src/build/joint_control
+[1.402s] running symlink_data
+[1.427s] Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_info/command.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/command.log
new file mode 100644
index 0000000..722c725
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stderr.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/stdout_stderr.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/joint_info/streams.log b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/streams.log
new file mode 100644
index 0000000..1bf8b44
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/joint_info/streams.log
@@ -0,0 +1,18 @@
+[0.978s] Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.271s] running develop
+[1.385s] running egg_info
+[1.385s] writing joint_info.egg-info/PKG-INFO
+[1.386s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.387s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.387s] writing requirements to joint_info.egg-info/requires.txt
+[1.388s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.399s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.410s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.410s] running build_ext
+[1.411s] Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.412s] Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.414s] Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.416s]
+[1.416s] Installed /BA/workspace/src/build/joint_info
+[1.417s] running symlink_data
+[1.445s] Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-14-39/logger_all.log b/workspace/src/log/build_2025-03-20_10-14-39/logger_all.log
new file mode 100644
index 0000000..76c2451
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-14-39/logger_all.log
@@ -0,0 +1,170 @@
+[0.099s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.099s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.195s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.196s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.196s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.197s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace/src'
+[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
+[0.214s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
+[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
+[0.216s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.233s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.233s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_control', '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': '/BA/workspace/src/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.234s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.234s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_info', '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': '/BA/workspace/src/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.234s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.237s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.238s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.238s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.240s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.241s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.242s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.243s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.244s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.244s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.250s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.253s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.253s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.257s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.258s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.259s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.260s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.528s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.529s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.529s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.783s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.784s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.784s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.209s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.231s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.667s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.667s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.668s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.669s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.670s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.674s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake module files
+[1.678s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake config files
+[1.684s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib'
+[1.684s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.685s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.685s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/python3.10/site-packages'
+[1.686s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.687s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.688s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.688s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.689s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.690s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.690s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.ps1'
+[1.691s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_control/share/joint_control/package.dsv'
+[1.692s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.sh'
+[1.693s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.bash'
+[1.694s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.zsh'
+[1.694s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_control/share/colcon-core/packages/joint_control)
+[1.696s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.696s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.698s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.698s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.698s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.701s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake module files
+[1.702s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake config files
+[1.704s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib'
+[1.705s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.705s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.705s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/python3.10/site-packages'
+[1.705s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.705s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.706s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.706s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.707s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.707s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.708s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.ps1'
+[1.708s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_info/share/joint_info/package.dsv'
+[1.709s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.sh'
+[1.710s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.bash'
+[1.711s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.zsh'
+[1.712s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_info/share/colcon-core/packages/joint_info)
+[1.712s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.713s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.713s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.713s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.727s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.727s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.727s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.727s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.728s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.728s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.729s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.ps1'
+[1.730s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_ps1.py'
+[1.732s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.ps1'
+[1.732s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.sh'
+[1.733s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_sh.py'
+[1.734s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.sh'
+[1.735s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.bash'
+[1.739s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.bash'
+[1.740s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.zsh'
+[1.741s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.zsh'
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/events.log b/workspace/src/log/build_2025-03-20_10-18-20/events.log
new file mode 100644
index 0000000..4e634ae
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/events.log
@@ -0,0 +1,58 @@
+[0.000000] (-) TimerEvent: {}
+[0.002263] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.002624] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.002762] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.016660] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098481] (-) TimerEvent: {}
+[0.199345] (-) TimerEvent: {}
+[0.304285] (-) TimerEvent: {}
+[0.406488] (-) TimerEvent: {}
+[0.507344] (-) TimerEvent: {}
+[0.609336] (-) TimerEvent: {}
+[0.714304] (-) TimerEvent: {}
+[0.818293] (-) TimerEvent: {}
+[0.919220] (-) TimerEvent: {}
+[0.988336] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.020185] (-) TimerEvent: {}
+[1.044700] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src/joint_control', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.121219] (-) TimerEvent: {}
+[1.222205] (-) TimerEvent: {}
+[1.290528] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.323259] (-) TimerEvent: {}
+[1.342545] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.401815] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.402423] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.403344] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.404067] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.404594] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.405058] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.412873] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.418315] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.420053] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.420789] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.422308] (joint_control) StdoutLine: {'line': b'Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control\n'}
+[1.423928] (joint_control) StdoutLine: {'line': b'\n'}
+[1.424565] (-) TimerEvent: {}
+[1.424811] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_control\n'}
+[1.425509] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.446483] (joint_control) CommandEnded: {'returncode': 0}
+[1.475655] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.478020] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.478530] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.478948] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.479502] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.479954] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.480519] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.484832] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.486711] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.488113] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.488483] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.489583] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.490891] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.492068] (joint_info) StdoutLine: {'line': b'\n'}
+[1.492410] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_info\n'}
+[1.492661] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.512909] (joint_info) CommandEnded: {'returncode': 0}
+[1.525210] (-) TimerEvent: {}
+[1.528450] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.529685] (-) EventReactorShutdown: {}
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_control/command.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/command.log
new file mode 100644
index 0000000..eead094
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stderr.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/stdout_stderr.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_control/streams.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/streams.log
new file mode 100644
index 0000000..f59d044
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_control/streams.log
@@ -0,0 +1,17 @@
+[0.992s] Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.289s] running develop
+[1.400s] running egg_info
+[1.400s] writing joint_control.egg-info/PKG-INFO
+[1.401s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.402s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.402s] writing requirements to joint_control.egg-info/requires.txt
+[1.402s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.411s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.416s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.418s] running build_ext
+[1.418s] Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.420s] Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+[1.421s]
+[1.423s] Installed /BA/workspace/src/build/joint_control
+[1.424s] running symlink_data
+[1.444s] Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_info/command.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/command.log
new file mode 100644
index 0000000..722c725
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stderr.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout_stderr.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..69f5429
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/stdout_stderr.log
@@ -0,0 +1,16 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/joint_info/streams.log b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/streams.log
new file mode 100644
index 0000000..bdad586
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/joint_info/streams.log
@@ -0,0 +1,18 @@
+[1.029s] Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.328s] running develop
+[1.460s] running egg_info
+[1.461s] writing joint_info.egg-info/PKG-INFO
+[1.461s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.462s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.462s] writing requirements to joint_info.egg-info/requires.txt
+[1.463s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.467s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.470s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.470s] running build_ext
+[1.470s] Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.472s] Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.473s] Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.474s]
+[1.474s] Installed /BA/workspace/src/build/joint_info
+[1.475s] running symlink_data
+[1.495s] Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_10-18-20/logger_all.log b/workspace/src/log/build_2025-03-20_10-18-20/logger_all.log
new file mode 100644
index 0000000..ed74109
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_10-18-20/logger_all.log
@@ -0,0 +1,170 @@
+[0.107s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.108s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.217s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.218s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.218s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.218s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.219s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.219s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.219s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.219s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.219s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace/src'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
+[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
+[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
+[0.237s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
+[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
+[0.239s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.240s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.240s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.240s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.240s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.240s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.256s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.256s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.256s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.257s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_control', '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': '/BA/workspace/src/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.257s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.258s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.258s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.258s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.258s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.258s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.258s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_info', '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': '/BA/workspace/src/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.258s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.261s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.262s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.262s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.263s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.264s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.267s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.268s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.269s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.269s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.278s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.279s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.280s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.284s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.285s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.289s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.290s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.568s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.569s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.569s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.839s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.839s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.840s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.257s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.309s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.708s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.709s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.709s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.710s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.711s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.723s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake module files
+[1.726s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake config files
+[1.729s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib'
+[1.729s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.730s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.730s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/python3.10/site-packages'
+[1.730s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.730s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.731s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.732s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.733s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.733s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.733s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.ps1'
+[1.734s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_control/share/joint_control/package.dsv'
+[1.735s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.sh'
+[1.735s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.bash'
+[1.736s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.zsh'
+[1.737s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_control/share/colcon-core/packages/joint_control)
+[1.775s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.775s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.775s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.776s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.777s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.778s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake module files
+[1.779s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake config files
+[1.781s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib'
+[1.781s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.781s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.782s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/python3.10/site-packages'
+[1.782s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.782s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.782s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.783s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.784s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.784s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.784s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.ps1'
+[1.784s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_info/share/joint_info/package.dsv'
+[1.785s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.sh'
+[1.786s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.bash'
+[1.787s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.zsh'
+[1.788s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_info/share/colcon-core/packages/joint_info)
+[1.790s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.790s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.791s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.791s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.796s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.796s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.797s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.797s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.798s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.798s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.799s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.ps1'
+[1.800s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_ps1.py'
+[1.802s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.ps1'
+[1.803s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.sh'
+[1.804s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_sh.py'
+[1.804s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.sh'
+[1.805s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.bash'
+[1.806s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.bash'
+[1.808s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.zsh'
+[1.808s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.zsh'
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/events.log b/workspace/src/log/build_2025-03-20_14-16-29/events.log
new file mode 100644
index 0000000..1141bd1
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/events.log
@@ -0,0 +1,58 @@
+[0.000000] (-) TimerEvent: {}
+[0.001986] (joint_control) JobQueued: {'identifier': 'joint_control', 'dependencies': OrderedDict()}
+[0.002382] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
+[0.003053] (joint_control) JobStarted: {'identifier': 'joint_control'}
+[0.012573] (joint_info) JobStarted: {'identifier': 'joint_info'}
+[0.098413] (-) TimerEvent: {}
+[0.201340] (-) TimerEvent: {}
+[0.302203] (-) TimerEvent: {}
+[0.403283] (-) TimerEvent: {}
+[0.506326] (-) TimerEvent: {}
+[0.608296] (-) TimerEvent: {}
+[0.709257] (-) TimerEvent: {}
+[0.811172] (-) TimerEvent: {}
+[0.912248] (-) TimerEvent: {}
+[0.959561] (joint_control) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_control/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_control', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_control', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.013155] (-) TimerEvent: {}
+[1.020864] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'develop', '--editable', '--build-directory', '/BA/workspace/src/build/joint_info/build', '--no-deps', 'symlink_data'], 'cwd': '/BA/workspace/src/build/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/workspace/src/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '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=30;41: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:*.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:', 'AMENT_PREFIX_PATH': '/BA/workspace/src/install/joint_info:/BA/workspace/src/install/joint_control:/opt/ros/humble', 'PWD': '/BA/workspace/src/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_info:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:/BA/workspace/src/build/joint_control:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
+[1.114159] (-) TimerEvent: {}
+[1.219152] (-) TimerEvent: {}
+[1.246522] (joint_control) StdoutLine: {'line': b'running develop\n'}
+[1.314896] (joint_info) StdoutLine: {'line': b'running develop\n'}
+[1.320155] (-) TimerEvent: {}
+[1.385781] (joint_control) StdoutLine: {'line': b'running egg_info\n'}
+[1.386859] (joint_control) StdoutLine: {'line': b'writing joint_control.egg-info/PKG-INFO\n'}
+[1.387396] (joint_control) StdoutLine: {'line': b'writing dependency_links to joint_control.egg-info/dependency_links.txt\n'}
+[1.387952] (joint_control) StdoutLine: {'line': b'writing entry points to joint_control.egg-info/entry_points.txt\n'}
+[1.388446] (joint_control) StdoutLine: {'line': b'writing requirements to joint_control.egg-info/requires.txt\n'}
+[1.388788] (joint_control) StdoutLine: {'line': b'writing top-level names to joint_control.egg-info/top_level.txt\n'}
+[1.396877] (joint_control) StdoutLine: {'line': b"reading manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.401842] (joint_control) StdoutLine: {'line': b"writing manifest file 'joint_control.egg-info/SOURCES.txt'\n"}
+[1.405250] (joint_control) StdoutLine: {'line': b'running build_ext\n'}
+[1.405613] (joint_control) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)\n'}
+[1.406929] (joint_control) StdoutLine: {'line': b'Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control\n'}
+[1.408098] (joint_control) StdoutLine: {'line': b'\n'}
+[1.408536] (joint_control) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_control\n'}
+[1.408815] (joint_control) StdoutLine: {'line': b'running symlink_data\n'}
+[1.421346] (-) TimerEvent: {}
+[1.431561] (joint_control) CommandEnded: {'returncode': 0}
+[1.453014] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
+[1.453791] (joint_info) StdoutLine: {'line': b'writing joint_info.egg-info/PKG-INFO\n'}
+[1.455225] (joint_info) StdoutLine: {'line': b'writing dependency_links to joint_info.egg-info/dependency_links.txt\n'}
+[1.455612] (joint_info) StdoutLine: {'line': b'writing entry points to joint_info.egg-info/entry_points.txt\n'}
+[1.456501] (joint_info) StdoutLine: {'line': b'writing requirements to joint_info.egg-info/requires.txt\n'}
+[1.457592] (joint_info) StdoutLine: {'line': b'writing top-level names to joint_info.egg-info/top_level.txt\n'}
+[1.460761] (joint_control) JobEnded: {'identifier': 'joint_control', 'rc': 0}
+[1.462340] (joint_info) StdoutLine: {'line': b"reading manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.464092] (joint_info) StdoutLine: {'line': b"writing manifest file 'joint_info.egg-info/SOURCES.txt'\n"}
+[1.465646] (joint_info) StdoutLine: {'line': b'running build_ext\n'}
+[1.466109] (joint_info) StdoutLine: {'line': b'Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)\n'}
+[1.467321] (joint_info) StdoutLine: {'line': b'Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.468432] (joint_info) StdoutLine: {'line': b'Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.469369] (joint_info) StdoutLine: {'line': b'Installing tcp_cart_pos script to /BA/workspace/src/install/joint_info/lib/joint_info\n'}
+[1.470437] (joint_info) StdoutLine: {'line': b'\n'}
+[1.470811] (joint_info) StdoutLine: {'line': b'Installed /BA/workspace/src/build/joint_info\n'}
+[1.470975] (joint_info) StdoutLine: {'line': b'running symlink_data\n'}
+[1.490438] (joint_info) CommandEnded: {'returncode': 0}
+[1.505701] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
+[1.507090] (-) EventReactorShutdown: {}
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_control/command.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/command.log
new file mode 100644
index 0000000..eead094
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stderr.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout_stderr.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout_stderr.log
new file mode 100644
index 0000000..18446e3
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/stdout_stderr.log
@@ -0,0 +1,15 @@
+running develop
+running egg_info
+writing joint_control.egg-info/PKG-INFO
+writing dependency_links to joint_control.egg-info/dependency_links.txt
+writing entry points to joint_control.egg-info/entry_points.txt
+writing requirements to joint_control.egg-info/requires.txt
+writing top-level names to joint_control.egg-info/top_level.txt
+reading manifest file 'joint_control.egg-info/SOURCES.txt'
+writing manifest file 'joint_control.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+
+Installed /BA/workspace/src/build/joint_control
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_control/streams.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/streams.log
new file mode 100644
index 0000000..6d3df8c
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_control/streams.log
@@ -0,0 +1,17 @@
+[0.960s] Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.244s] running develop
+[1.383s] running egg_info
+[1.384s] writing joint_control.egg-info/PKG-INFO
+[1.384s] writing dependency_links to joint_control.egg-info/dependency_links.txt
+[1.385s] writing entry points to joint_control.egg-info/entry_points.txt
+[1.386s] writing requirements to joint_control.egg-info/requires.txt
+[1.386s] writing top-level names to joint_control.egg-info/top_level.txt
+[1.395s] reading manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.401s] writing manifest file 'joint_control.egg-info/SOURCES.txt'
+[1.402s] running build_ext
+[1.403s] Creating /BA/workspace/src/install/joint_control/lib/python3.10/site-packages/joint-control.egg-link (link to .)
+[1.404s] Installing joint_control script to /BA/workspace/src/install/joint_control/lib/joint_control
+[1.405s]
+[1.406s] Installed /BA/workspace/src/build/joint_control
+[1.406s] running symlink_data
+[1.429s] Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_info/command.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/command.log
new file mode 100644
index 0000000..722c725
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/command.log
@@ -0,0 +1,2 @@
+Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stderr.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stderr.log
new file mode 100644
index 0000000..e69de29
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout.log
new file mode 100644
index 0000000..58efa60
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout.log
@@ -0,0 +1,17 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing tcp_cart_pos script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout_stderr.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout_stderr.log
new file mode 100644
index 0000000..58efa60
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/stdout_stderr.log
@@ -0,0 +1,17 @@
+running develop
+running egg_info
+writing joint_info.egg-info/PKG-INFO
+writing dependency_links to joint_info.egg-info/dependency_links.txt
+writing entry points to joint_info.egg-info/entry_points.txt
+writing requirements to joint_info.egg-info/requires.txt
+writing top-level names to joint_info.egg-info/top_level.txt
+reading manifest file 'joint_info.egg-info/SOURCES.txt'
+writing manifest file 'joint_info.egg-info/SOURCES.txt'
+running build_ext
+Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+Installing tcp_cart_pos script to /BA/workspace/src/install/joint_info/lib/joint_info
+
+Installed /BA/workspace/src/build/joint_info
+running symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/joint_info/streams.log b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/streams.log
new file mode 100644
index 0000000..b452112
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/joint_info/streams.log
@@ -0,0 +1,19 @@
+[1.015s] Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.303s] running develop
+[1.441s] running egg_info
+[1.442s] writing joint_info.egg-info/PKG-INFO
+[1.443s] writing dependency_links to joint_info.egg-info/dependency_links.txt
+[1.444s] writing entry points to joint_info.egg-info/entry_points.txt
+[1.444s] writing requirements to joint_info.egg-info/requires.txt
+[1.445s] writing top-level names to joint_info.egg-info/top_level.txt
+[1.450s] reading manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.452s] writing manifest file 'joint_info.egg-info/SOURCES.txt'
+[1.453s] running build_ext
+[1.454s] Creating /BA/workspace/src/install/joint_info/lib/python3.10/site-packages/joint-info.egg-link (link to .)
+[1.455s] Installing joint_states_pub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.456s] Installing joint_states_sub script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.457s] Installing tcp_cart_pos script to /BA/workspace/src/install/joint_info/lib/joint_info
+[1.458s]
+[1.458s] Installed /BA/workspace/src/build/joint_info
+[1.458s] running symlink_data
+[1.478s] Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
diff --git a/workspace/src/log/build_2025-03-20_14-16-29/logger_all.log b/workspace/src/log/build_2025-03-20_14-16-29/logger_all.log
new file mode 100644
index 0000000..a751c72
--- /dev/null
+++ b/workspace/src/log/build_2025-03-20_14-16-29/logger_all.log
@@ -0,0 +1,170 @@
+[0.095s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
+[0.096s] 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=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, 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=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, 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, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',))
+[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
+[0.198s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
+[0.198s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
+[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
+[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
+[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
+[0.199s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace/src'
+[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
+[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
+[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
+[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
+[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
+[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
+[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
+[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
+[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
+[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
+[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
+[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_control' with type 'ros.ament_python' and name 'joint_control'
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
+[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
+[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
+[0.219s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_info' with type 'ros.ament_python' and name 'joint_info'
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
+[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
+[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
+[0.220s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
+[0.220s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
+[0.220s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
+[0.220s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
+[0.220s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_args' from command line to 'None'
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target' from command line to 'None'
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_cache' from command line to 'False'
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_clean_first' from command line to 'False'
+[0.235s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'cmake_force_configure' from command line to 'False'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'ament_cmake_args' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_cmake_args' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_control' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.236s] DEBUG:colcon.colcon_core.verb:Building package 'joint_control' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_control', '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': '/BA/workspace/src/install/joint_control', 'merge_install': False, 'path': '/BA/workspace/src/joint_control', 'symlink_install': True, 'test_result_base': None}
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
+[0.236s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
+[0.237s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/src/build/joint_info', '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': '/BA/workspace/src/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': True, 'test_result_base': None}
+[0.237s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
+[0.239s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
+[0.240s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_control' with build type 'ament_python'
+[0.241s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'ament_prefix_path')
+[0.242s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
+[0.243s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.ps1'
+[0.245s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.dsv'
+[0.245s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/ament_prefix_path.sh'
+[0.246s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.246s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.253s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
+[0.253s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
+[0.254s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
+[0.255s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
+[0.255s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
+[0.256s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.256s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.541s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_control'
+[0.542s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.542s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[0.811s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
+[0.811s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
+[0.812s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
+[1.204s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_control': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.268s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/build/joint_info': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.672s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath_develop')
+[1.672s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.ps1'
+[1.673s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_control' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_control/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_control/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_control/build --no-deps symlink_data
+[1.674s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.dsv'
+[1.675s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_control/share/joint_control/hook/pythonpath_develop.sh'
+[1.684s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake module files
+[1.687s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control' for CMake config files
+[1.691s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib'
+[1.691s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.691s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/pkgconfig/joint_control.pc'
+[1.691s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/lib/python3.10/site-packages'
+[1.692s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_control', 'pythonpath')
+[1.692s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.ps1'
+[1.693s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.dsv'
+[1.693s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_control/share/joint_control/hook/pythonpath.sh'
+[1.694s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_control/bin'
+[1.694s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_control)
+[1.695s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.ps1'
+[1.696s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_control/share/joint_control/package.dsv'
+[1.697s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.sh'
+[1.699s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.bash'
+[1.700s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_control/share/joint_control/package.zsh'
+[1.701s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_control/share/colcon-core/packages/joint_control)
+[1.731s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath_develop')
+[1.731s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.ps1'
+[1.732s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/build/joint_info' returned '0': PYTHONPATH=/BA/workspace/src/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/src/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py develop --editable --build-directory /BA/workspace/src/build/joint_info/build --no-deps symlink_data
+[1.733s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.dsv'
+[1.733s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/build/joint_info/share/joint_info/hook/pythonpath_develop.sh'
+[1.734s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake module files
+[1.737s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info' for CMake config files
+[1.739s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib'
+[1.739s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.739s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/pkgconfig/joint_info.pc'
+[1.740s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/lib/python3.10/site-packages'
+[1.740s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
+[1.740s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.ps1'
+[1.741s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.dsv'
+[1.741s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/src/install/joint_info/share/joint_info/hook/pythonpath.sh'
+[1.742s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/src/install/joint_info/bin'
+[1.742s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
+[1.742s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.ps1'
+[1.744s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/src/install/joint_info/share/joint_info/package.dsv'
+[1.745s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.sh'
+[1.745s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.bash'
+[1.746s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/src/install/joint_info/share/joint_info/package.zsh'
+[1.746s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/src/install/joint_info/share/colcon-core/packages/joint_info)
+[1.746s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
+[1.747s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
+[1.747s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
+[1.747s] DEBUG:colcon.colcon_core.event_reactor:joining thread
+[1.752s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
+[1.752s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
+[1.752s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
+[1.752s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
+[1.754s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
+[1.754s] DEBUG:colcon.colcon_core.event_reactor:joined thread
+[1.754s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.ps1'
+[1.755s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_ps1.py'
+[1.757s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.ps1'
+[1.758s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.sh'
+[1.759s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/src/install/_local_setup_util_sh.py'
+[1.759s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.sh'
+[1.761s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.bash'
+[1.761s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.bash'
+[1.762s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/src/install/local_setup.zsh'
+[1.763s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/src/install/setup.zsh'
diff --git a/workspace/src/log/latest b/workspace/src/log/latest
new file mode 120000
index 0000000..b57d247
--- /dev/null
+++ b/workspace/src/log/latest
@@ -0,0 +1 @@
+latest_build
\ No newline at end of file
diff --git a/workspace/src/log/latest_build b/workspace/src/log/latest_build
new file mode 120000
index 0000000..3ab2127
--- /dev/null
+++ b/workspace/src/log/latest_build
@@ -0,0 +1 @@
+build_2025-03-20_14-16-29
\ No newline at end of file