Jelajahi Sumber

初始化ROS2工作空间

liurunjie 5 hari lalu
melakukan
4985feed53
100 mengubah file dengan 9197 tambahan dan 0 penghapusan
  1. TEMPAT SAMPAH
      -
  2. 3 0
      =1.11.0
  3. 1 0
      PulseAudio-AEC-Script
  4. 1 0
      build/.built_by
  5. 0 0
      build/COLCON_IGNORE
  6. 0 0
      build/eye_ros/.cmake/api/v1/query/client-colcon-cmake/codemodel-v2
  7. 88 0
      build/eye_ros/.cmake/api/v1/reply/codemodel-v2-71076bfefd7324213e4e.json
  8. 533 0
      build/eye_ros/.cmake/api/v1/reply/directory-.-ff713a1b3d7a68d4fa95.json
  9. 54 0
      build/eye_ros/.cmake/api/v1/reply/index-2026-04-14T02-15-09-0018.json
  10. 87 0
      build/eye_ros/.cmake/api/v1/reply/target-ament_cmake_python_build_eye_ros_egg-3bc2ec23fde912e19b2e.json
  11. 81 0
      build/eye_ros/.cmake/api/v1/reply/target-ament_cmake_python_copy_eye_ros-d2f1df38b74f4e6104a3.json
  12. 112 0
      build/eye_ros/.cmake/api/v1/reply/target-eye_ros_uninstall-0199c77247e74954924a.json
  13. 95 0
      build/eye_ros/.cmake/api/v1/reply/target-uninstall-f4c86afa7ec3bcee04b8.json
  14. 532 0
      build/eye_ros/CMakeCache.txt
  15. 72 0
      build/eye_ros/CMakeFiles/3.22.1/CMakeCCompiler.cmake
  16. 83 0
      build/eye_ros/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
  17. TEMPAT SAMPAH
      build/eye_ros/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin
  18. TEMPAT SAMPAH
      build/eye_ros/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
  19. 15 0
      build/eye_ros/CMakeFiles/3.22.1/CMakeSystem.cmake
  20. 803 0
      build/eye_ros/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c
  21. TEMPAT SAMPAH
      build/eye_ros/CMakeFiles/3.22.1/CompilerIdC/a.out
  22. 791 0
      build/eye_ros/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
  23. TEMPAT SAMPAH
      build/eye_ros/CMakeFiles/3.22.1/CompilerIdCXX/a.out
  24. 16 0
      build/eye_ros/CMakeFiles/CMakeDirectoryInformation.cmake
  25. 437 0
      build/eye_ros/CMakeFiles/CMakeOutput.log
  26. 4 0
      build/eye_ros/CMakeFiles/CMakeRuleHashes.txt
  27. 511 0
      build/eye_ros/CMakeFiles/Makefile.cmake
  28. 193 0
      build/eye_ros/CMakeFiles/Makefile2
  29. 11 0
      build/eye_ros/CMakeFiles/TargetDirectories.txt
  30. 18 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/DependInfo.cmake
  31. 87 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make
  32. 8 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/cmake_clean.cmake
  33. 2 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/compiler_depend.make
  34. 2 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/compiler_depend.ts
  35. 1 0
      build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/progress.make
  36. 18 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/DependInfo.cmake
  37. 87 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make
  38. 8 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/cmake_clean.cmake
  39. 2 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/compiler_depend.make
  40. 2 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/compiler_depend.ts
  41. 1 0
      build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/progress.make
  42. 1 0
      build/eye_ros/CMakeFiles/cmake.check_cache
  43. 18 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/DependInfo.cmake
  44. 87 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/build.make
  45. 8 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/cmake_clean.cmake
  46. 2 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/compiler_depend.make
  47. 2 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/compiler_depend.ts
  48. 1 0
      build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/progress.make
  49. 1 0
      build/eye_ros/CMakeFiles/progress.marks
  50. 18 0
      build/eye_ros/CMakeFiles/uninstall.dir/DependInfo.cmake
  51. 83 0
      build/eye_ros/CMakeFiles/uninstall.dir/build.make
  52. 5 0
      build/eye_ros/CMakeFiles/uninstall.dir/cmake_clean.cmake
  53. 2 0
      build/eye_ros/CMakeFiles/uninstall.dir/compiler_depend.make
  54. 2 0
      build/eye_ros/CMakeFiles/uninstall.dir/compiler_depend.ts
  55. 1 0
      build/eye_ros/CMakeFiles/uninstall.dir/progress.make
  56. 105 0
      build/eye_ros/CTestConfiguration.ini
  57. 2 0
      build/eye_ros/CTestCustom.cmake
  58. 6 0
      build/eye_ros/CTestTestfile.cmake
  59. 256 0
      build/eye_ros/Makefile
  60. 14 0
      build/eye_ros/ament_cmake_core/eye_rosConfig-version.cmake
  61. 42 0
      build/eye_ros/ament_cmake_core/eye_rosConfig.cmake
  62. 14 0
      build/eye_ros/ament_cmake_core/package.cmake
  63. 4 0
      build/eye_ros/ament_cmake_core/stamps/ament_prefix_path.sh.stamp
  64. 14 0
      build/eye_ros/ament_cmake_core/stamps/nameConfig-version.cmake.in.stamp
  65. 42 0
      build/eye_ros/ament_cmake_core/stamps/nameConfig.cmake.in.stamp
  66. 23 0
      build/eye_ros/ament_cmake_core/stamps/package.xml.stamp
  67. 150 0
      build/eye_ros/ament_cmake_core/stamps/package_xml_2_cmake.py.stamp
  68. 5 0
      build/eye_ros/ament_cmake_core/stamps/path.sh.stamp
  69. 3 0
      build/eye_ros/ament_cmake_core/stamps/pythonpath.sh.in.stamp
  70. 112 0
      build/eye_ros/ament_cmake_core/stamps/templates_2_cmake.py.stamp
  71. 1 0
      build/eye_ros/ament_cmake_environment_hooks/ament_prefix_path.dsv
  72. 46 0
      build/eye_ros/ament_cmake_environment_hooks/local_setup.bash
  73. 3 0
      build/eye_ros/ament_cmake_environment_hooks/local_setup.dsv
  74. 185 0
      build/eye_ros/ament_cmake_environment_hooks/local_setup.sh
  75. 59 0
      build/eye_ros/ament_cmake_environment_hooks/local_setup.zsh
  76. 4 0
      build/eye_ros/ament_cmake_environment_hooks/package.dsv
  77. 1 0
      build/eye_ros/ament_cmake_environment_hooks/path.dsv
  78. 1 0
      build/eye_ros/ament_cmake_environment_hooks/pythonpath.dsv
  79. 3 0
      build/eye_ros/ament_cmake_environment_hooks/pythonpath.sh
  80. 1 0
      build/eye_ros/ament_cmake_index/share/ament_index/resource_index/package_run_dependencies/eye_ros
  81. 0 0
      build/eye_ros/ament_cmake_index/share/ament_index/resource_index/packages/eye_ros
  82. 1 0
      build/eye_ros/ament_cmake_index/share/ament_index/resource_index/parent_prefix_path/eye_ros
  83. 14 0
      build/eye_ros/ament_cmake_package_templates/templates.cmake
  84. 10 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/PKG-INFO
  85. 17 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/SOURCES.txt
  86. 1 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/dependency_links.txt
  87. 1 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/top_level.txt
  88. 0 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/__init__.py
  89. TEMPAT SAMPAH
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/__pycache__/llm_node.cpython-310.pyc
  90. 324 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/asr_node.py
  91. 94 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/asr_test.py
  92. 1 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/build/.built_by
  93. 0 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/build/COLCON_IGNORE
  94. 57 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/detect_node.py
  95. 235 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/distance_node.py
  96. 891 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/face_recognition.py
  97. 1057 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/face_recognition_node.py
  98. 1 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/install/.colcon_install_layout
  99. 0 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/install/COLCON_IGNORE
  100. 407 0
      build/eye_ros/ament_cmake_python/eye_ros/eye_ros/install/_local_setup_util_ps1.py

TEMPAT SAMPAH
-


+ 3 - 0
=1.11.0

@@ -0,0 +1,3 @@
+Defaulting to user installation because normal site-packages is not writeable
+Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
+Requirement already satisfied: scipy in /usr/lib/python3/dist-packages (1.8.0)

+ 1 - 0
PulseAudio-AEC-Script

@@ -0,0 +1 @@
+Subproject commit 1b3563f0b32e24163f7d38e49b9a77d122646cb7

+ 1 - 0
build/.built_by

@@ -0,0 +1 @@
+colcon

+ 0 - 0
build/COLCON_IGNORE


+ 0 - 0
build/eye_ros/.cmake/api/v1/query/client-colcon-cmake/codemodel-v2


+ 88 - 0
build/eye_ros/.cmake/api/v1/reply/codemodel-v2-71076bfefd7324213e4e.json

@@ -0,0 +1,88 @@
+{
+	"configurations" : 
+	[
+		{
+			"directories" : 
+			[
+				{
+					"build" : ".",
+					"hasInstallRule" : true,
+					"jsonFile" : "directory-.-ff713a1b3d7a68d4fa95.json",
+					"minimumCMakeVersion" : 
+					{
+						"string" : "3.12"
+					},
+					"projectIndex" : 0,
+					"source" : ".",
+					"targetIndexes" : 
+					[
+						0,
+						1,
+						2,
+						3
+					]
+				}
+			],
+			"name" : "",
+			"projects" : 
+			[
+				{
+					"directoryIndexes" : 
+					[
+						0
+					],
+					"name" : "eye_ros",
+					"targetIndexes" : 
+					[
+						0,
+						1,
+						2,
+						3
+					]
+				}
+			],
+			"targets" : 
+			[
+				{
+					"directoryIndex" : 0,
+					"id" : "ament_cmake_python_build_eye_ros_egg::@6890427a1f51a3e7e1df",
+					"jsonFile" : "target-ament_cmake_python_build_eye_ros_egg-3bc2ec23fde912e19b2e.json",
+					"name" : "ament_cmake_python_build_eye_ros_egg",
+					"projectIndex" : 0
+				},
+				{
+					"directoryIndex" : 0,
+					"id" : "ament_cmake_python_copy_eye_ros::@6890427a1f51a3e7e1df",
+					"jsonFile" : "target-ament_cmake_python_copy_eye_ros-d2f1df38b74f4e6104a3.json",
+					"name" : "ament_cmake_python_copy_eye_ros",
+					"projectIndex" : 0
+				},
+				{
+					"directoryIndex" : 0,
+					"id" : "eye_ros_uninstall::@6890427a1f51a3e7e1df",
+					"jsonFile" : "target-eye_ros_uninstall-0199c77247e74954924a.json",
+					"name" : "eye_ros_uninstall",
+					"projectIndex" : 0
+				},
+				{
+					"directoryIndex" : 0,
+					"id" : "uninstall::@6890427a1f51a3e7e1df",
+					"jsonFile" : "target-uninstall-f4c86afa7ec3bcee04b8.json",
+					"name" : "uninstall",
+					"projectIndex" : 0
+				}
+			]
+		}
+	],
+	"kind" : "codemodel",
+	"paths" : 
+	{
+		"build" : "/home/ubuntu/ws_eye/build/eye_ros",
+		"source" : "/home/ubuntu/ws_eye/src/eye_ros"
+	},
+	"version" : 
+	{
+		"major" : 2,
+		"minor" : 3
+	}
+}

+ 533 - 0
build/eye_ros/.cmake/api/v1/reply/directory-.-ff713a1b3d7a68d4fa95.json

@@ -0,0 +1,533 @@
+{
+	"backtraceGraph" : 
+	{
+		"commands" : 
+		[
+			"install",
+			"ament_environment_hooks",
+			"_ament_cmake_python_register_environment_hook",
+			"ament_python_install_package",
+			"_ament_cmake_python_install_package",
+			"ament_index_register_resource",
+			"ament_cmake_environment_generate_package_run_dependencies_marker",
+			"include",
+			"ament_execute_extensions",
+			"ament_package",
+			"ament_cmake_environment_generate_parent_prefix_path_marker",
+			"ament_generate_package_environment",
+			"ament_index_register_package",
+			"_ament_package"
+		],
+		"files" : 
+		[
+			"/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_environment_hooks.cmake",
+			"/opt/ros/humble/share/ament_cmake_python/cmake/ament_cmake_python-extras.cmake",
+			"/opt/ros/humble/share/ament_cmake_python/cmake/ament_python_install_package.cmake",
+			"CMakeLists.txt",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_register_resource.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/environment/ament_cmake_environment_package_hook.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_package.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_cmake_environment_hooks_package_hook.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_generate_package_environment.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_register_package.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_cmake_index_package_hook.cmake"
+		],
+		"nodes" : 
+		[
+			{
+				"file" : 3
+			},
+			{
+				"command" : 3,
+				"file" : 3,
+				"line" : 16,
+				"parent" : 0
+			},
+			{
+				"command" : 2,
+				"file" : 2,
+				"line" : 38,
+				"parent" : 1
+			},
+			{
+				"command" : 1,
+				"file" : 1,
+				"line" : 36,
+				"parent" : 2
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 70,
+				"parent" : 3
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 87,
+				"parent" : 3
+			},
+			{
+				"command" : 4,
+				"file" : 2,
+				"line" : 39,
+				"parent" : 1
+			},
+			{
+				"command" : 0,
+				"file" : 2,
+				"line" : 154,
+				"parent" : 6
+			},
+			{
+				"command" : 0,
+				"file" : 2,
+				"line" : 181,
+				"parent" : 6
+			},
+			{
+				"command" : 0,
+				"file" : 2,
+				"line" : 191,
+				"parent" : 6
+			},
+			{
+				"command" : 0,
+				"file" : 3,
+				"line" : 26,
+				"parent" : 0
+			},
+			{
+				"command" : 0,
+				"file" : 3,
+				"line" : 34,
+				"parent" : 0
+			},
+			{
+				"command" : 0,
+				"file" : 3,
+				"line" : 48,
+				"parent" : 0
+			},
+			{
+				"command" : 9,
+				"file" : 3,
+				"line" : 53,
+				"parent" : 0
+			},
+			{
+				"command" : 8,
+				"file" : 7,
+				"line" : 66,
+				"parent" : 13
+			},
+			{
+				"command" : 7,
+				"file" : 6,
+				"line" : 48,
+				"parent" : 14
+			},
+			{
+				"file" : 5,
+				"parent" : 15
+			},
+			{
+				"command" : 6,
+				"file" : 5,
+				"line" : 47,
+				"parent" : 16
+			},
+			{
+				"command" : 5,
+				"file" : 5,
+				"line" : 29,
+				"parent" : 17
+			},
+			{
+				"command" : 0,
+				"file" : 4,
+				"line" : 105,
+				"parent" : 18
+			},
+			{
+				"command" : 10,
+				"file" : 5,
+				"line" : 48,
+				"parent" : 16
+			},
+			{
+				"command" : 5,
+				"file" : 5,
+				"line" : 43,
+				"parent" : 20
+			},
+			{
+				"command" : 0,
+				"file" : 4,
+				"line" : 105,
+				"parent" : 21
+			},
+			{
+				"command" : 7,
+				"file" : 6,
+				"line" : 48,
+				"parent" : 14
+			},
+			{
+				"file" : 8,
+				"parent" : 23
+			},
+			{
+				"command" : 1,
+				"file" : 8,
+				"line" : 20,
+				"parent" : 24
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 70,
+				"parent" : 25
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 87,
+				"parent" : 25
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 70,
+				"parent" : 25
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 87,
+				"parent" : 25
+			},
+			{
+				"command" : 11,
+				"file" : 8,
+				"line" : 26,
+				"parent" : 24
+			},
+			{
+				"command" : 0,
+				"file" : 9,
+				"line" : 91,
+				"parent" : 30
+			},
+			{
+				"command" : 0,
+				"file" : 9,
+				"line" : 91,
+				"parent" : 30
+			},
+			{
+				"command" : 0,
+				"file" : 9,
+				"line" : 91,
+				"parent" : 30
+			},
+			{
+				"command" : 0,
+				"file" : 9,
+				"line" : 107,
+				"parent" : 30
+			},
+			{
+				"command" : 0,
+				"file" : 9,
+				"line" : 119,
+				"parent" : 30
+			},
+			{
+				"command" : 7,
+				"file" : 6,
+				"line" : 48,
+				"parent" : 14
+			},
+			{
+				"file" : 11,
+				"parent" : 36
+			},
+			{
+				"command" : 12,
+				"file" : 11,
+				"line" : 16,
+				"parent" : 37
+			},
+			{
+				"command" : 5,
+				"file" : 10,
+				"line" : 29,
+				"parent" : 38
+			},
+			{
+				"command" : 0,
+				"file" : 4,
+				"line" : 105,
+				"parent" : 39
+			},
+			{
+				"command" : 13,
+				"file" : 7,
+				"line" : 68,
+				"parent" : 13
+			},
+			{
+				"command" : 0,
+				"file" : 7,
+				"line" : 150,
+				"parent" : 41
+			},
+			{
+				"command" : 0,
+				"file" : 7,
+				"line" : 157,
+				"parent" : 41
+			}
+		]
+	},
+	"installers" : 
+	[
+		{
+			"backtrace" : 4,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/pythonpath.sh"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 5,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/pythonpath.dsv"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 7,
+			"component" : "Unspecified",
+			"destination" : "local/lib/python3.10/dist-packages/eye_ros-0.0.1-py3.10.egg-info",
+			"paths" : 
+			[
+				{
+					"from" : "/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info",
+					"to" : "."
+				}
+			],
+			"type" : "directory"
+		},
+		{
+			"backtrace" : 8,
+			"component" : "Unspecified",
+			"destination" : "local/lib/python3.10/dist-packages/eye_ros",
+			"paths" : 
+			[
+				{
+					"from" : "eye_ros",
+					"to" : "."
+				}
+			],
+			"type" : "directory"
+		},
+		{
+			"backtrace" : 9,
+			"component" : "Unspecified",
+			"type" : "code"
+		},
+		{
+			"backtrace" : 10,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/ros2run",
+			"paths" : 
+			[
+				"ros2run/executables.yaml"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 11,
+			"component" : "Unspecified",
+			"destination" : "lib/eye_ros",
+			"paths" : 
+			[
+				"eye_ros/face_recognition_node.py",
+				"eye_ros/asr_node.py",
+				"eye_ros/llm_node.py",
+				"eye_ros/tts_node.py",
+				"eye_ros/test_text.py",
+				"eye_ros/open3d_node.py",
+				"eye_ros/distance_node.py",
+				"eye_ros/detect_node.py",
+				"eye_ros/wake_word_node.py"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 12,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"launch"
+			],
+			"type" : "directory"
+		},
+		{
+			"backtrace" : 19,
+			"component" : "Unspecified",
+			"destination" : "share/ament_index/resource_index/package_run_dependencies",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_index/share/ament_index/resource_index/package_run_dependencies/eye_ros"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 22,
+			"component" : "Unspecified",
+			"destination" : "share/ament_index/resource_index/parent_prefix_path",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_index/share/ament_index/resource_index/parent_prefix_path/eye_ros"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 26,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/environment/ament_prefix_path.sh"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 27,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/ament_prefix_path.dsv"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 28,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/environment/path.sh"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 29,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/environment",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/path.dsv"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 31,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/local_setup.bash"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 32,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/local_setup.sh"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 33,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/local_setup.zsh"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 34,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/local_setup.dsv"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 35,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_environment_hooks/package.dsv"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 40,
+			"component" : "Unspecified",
+			"destination" : "share/ament_index/resource_index/packages",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_index/share/ament_index/resource_index/packages/eye_ros"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 42,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros/cmake",
+			"paths" : 
+			[
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_core/eye_rosConfig.cmake",
+				"/home/ubuntu/ws_eye/build/eye_ros/ament_cmake_core/eye_rosConfig-version.cmake"
+			],
+			"type" : "file"
+		},
+		{
+			"backtrace" : 43,
+			"component" : "Unspecified",
+			"destination" : "share/eye_ros",
+			"paths" : 
+			[
+				"package.xml"
+			],
+			"type" : "file"
+		}
+	],
+	"paths" : 
+	{
+		"build" : ".",
+		"source" : "."
+	}
+}

+ 54 - 0
build/eye_ros/.cmake/api/v1/reply/index-2026-04-14T02-15-09-0018.json

@@ -0,0 +1,54 @@
+{
+	"cmake" : 
+	{
+		"generator" : 
+		{
+			"multiConfig" : false,
+			"name" : "Unix Makefiles"
+		},
+		"paths" : 
+		{
+			"cmake" : "/usr/bin/cmake",
+			"cpack" : "/usr/bin/cpack",
+			"ctest" : "/usr/bin/ctest",
+			"root" : "/usr/share/cmake-3.22"
+		},
+		"version" : 
+		{
+			"isDirty" : false,
+			"major" : 3,
+			"minor" : 22,
+			"patch" : 1,
+			"string" : "3.22.1",
+			"suffix" : ""
+		}
+	},
+	"objects" : 
+	[
+		{
+			"jsonFile" : "codemodel-v2-71076bfefd7324213e4e.json",
+			"kind" : "codemodel",
+			"version" : 
+			{
+				"major" : 2,
+				"minor" : 3
+			}
+		}
+	],
+	"reply" : 
+	{
+		"client-colcon-cmake" : 
+		{
+			"codemodel-v2" : 
+			{
+				"jsonFile" : "codemodel-v2-71076bfefd7324213e4e.json",
+				"kind" : "codemodel",
+				"version" : 
+				{
+					"major" : 2,
+					"minor" : 3
+				}
+			}
+		}
+	}
+}

+ 87 - 0
build/eye_ros/.cmake/api/v1/reply/target-ament_cmake_python_build_eye_ros_egg-3bc2ec23fde912e19b2e.json

@@ -0,0 +1,87 @@
+{
+	"backtrace" : 3,
+	"backtraceGraph" : 
+	{
+		"commands" : 
+		[
+			"add_custom_target",
+			"_ament_cmake_python_install_package",
+			"ament_python_install_package"
+		],
+		"files" : 
+		[
+			"/opt/ros/humble/share/ament_cmake_python/cmake/ament_python_install_package.cmake",
+			"CMakeLists.txt"
+		],
+		"nodes" : 
+		[
+			{
+				"file" : 1
+			},
+			{
+				"command" : 2,
+				"file" : 1,
+				"line" : 16,
+				"parent" : 0
+			},
+			{
+				"command" : 1,
+				"file" : 0,
+				"line" : 39,
+				"parent" : 1
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 141,
+				"parent" : 2
+			}
+		]
+	},
+	"dependencies" : 
+	[
+		{
+			"id" : "ament_cmake_python_copy_eye_ros::@6890427a1f51a3e7e1df"
+		}
+	],
+	"id" : "ament_cmake_python_build_eye_ros_egg::@6890427a1f51a3e7e1df",
+	"name" : "ament_cmake_python_build_eye_ros_egg",
+	"paths" : 
+	{
+		"build" : ".",
+		"source" : "."
+	},
+	"sourceGroups" : 
+	[
+		{
+			"name" : "",
+			"sourceIndexes" : 
+			[
+				0
+			]
+		},
+		{
+			"name" : "CMake Rules",
+			"sourceIndexes" : 
+			[
+				1
+			]
+		}
+	],
+	"sources" : 
+	[
+		{
+			"backtrace" : 3,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 0,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.rule",
+			"sourceGroupIndex" : 1
+		}
+	],
+	"type" : "UTILITY"
+}

+ 81 - 0
build/eye_ros/.cmake/api/v1/reply/target-ament_cmake_python_copy_eye_ros-d2f1df38b74f4e6104a3.json

@@ -0,0 +1,81 @@
+{
+	"backtrace" : 3,
+	"backtraceGraph" : 
+	{
+		"commands" : 
+		[
+			"add_custom_target",
+			"_ament_cmake_python_install_package",
+			"ament_python_install_package"
+		],
+		"files" : 
+		[
+			"/opt/ros/humble/share/ament_cmake_python/cmake/ament_python_install_package.cmake",
+			"CMakeLists.txt"
+		],
+		"nodes" : 
+		[
+			{
+				"file" : 1
+			},
+			{
+				"command" : 2,
+				"file" : 1,
+				"line" : 16,
+				"parent" : 0
+			},
+			{
+				"command" : 1,
+				"file" : 0,
+				"line" : 39,
+				"parent" : 1
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 122,
+				"parent" : 2
+			}
+		]
+	},
+	"id" : "ament_cmake_python_copy_eye_ros::@6890427a1f51a3e7e1df",
+	"name" : "ament_cmake_python_copy_eye_ros",
+	"paths" : 
+	{
+		"build" : ".",
+		"source" : "."
+	},
+	"sourceGroups" : 
+	[
+		{
+			"name" : "",
+			"sourceIndexes" : 
+			[
+				0
+			]
+		},
+		{
+			"name" : "CMake Rules",
+			"sourceIndexes" : 
+			[
+				1
+			]
+		}
+	],
+	"sources" : 
+	[
+		{
+			"backtrace" : 3,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 0,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.rule",
+			"sourceGroupIndex" : 1
+		}
+	],
+	"type" : "UTILITY"
+}

+ 112 - 0
build/eye_ros/.cmake/api/v1/reply/target-eye_ros_uninstall-0199c77247e74954924a.json

@@ -0,0 +1,112 @@
+{
+	"backtrace" : 9,
+	"backtraceGraph" : 
+	{
+		"commands" : 
+		[
+			"add_custom_target",
+			"include",
+			"find_package"
+		],
+		"files" : 
+		[
+			"/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_uninstall_target-extras.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_coreConfig.cmake",
+			"/opt/ros/humble/share/ament_cmake/cmake/ament_cmake_export_dependencies-extras.cmake",
+			"/opt/ros/humble/share/ament_cmake/cmake/ament_cmakeConfig.cmake",
+			"CMakeLists.txt"
+		],
+		"nodes" : 
+		[
+			{
+				"file" : 4
+			},
+			{
+				"command" : 2,
+				"file" : 4,
+				"line" : 9,
+				"parent" : 0
+			},
+			{
+				"file" : 3,
+				"parent" : 1
+			},
+			{
+				"command" : 1,
+				"file" : 3,
+				"line" : 41,
+				"parent" : 2
+			},
+			{
+				"file" : 2,
+				"parent" : 3
+			},
+			{
+				"command" : 2,
+				"file" : 2,
+				"line" : 15,
+				"parent" : 4
+			},
+			{
+				"file" : 1,
+				"parent" : 5
+			},
+			{
+				"command" : 1,
+				"file" : 1,
+				"line" : 41,
+				"parent" : 6
+			},
+			{
+				"file" : 0,
+				"parent" : 7
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 40,
+				"parent" : 8
+			}
+		]
+	},
+	"id" : "eye_ros_uninstall::@6890427a1f51a3e7e1df",
+	"name" : "eye_ros_uninstall",
+	"paths" : 
+	{
+		"build" : ".",
+		"source" : "."
+	},
+	"sourceGroups" : 
+	[
+		{
+			"name" : "",
+			"sourceIndexes" : 
+			[
+				0
+			]
+		},
+		{
+			"name" : "CMake Rules",
+			"sourceIndexes" : 
+			[
+				1
+			]
+		}
+	],
+	"sources" : 
+	[
+		{
+			"backtrace" : 9,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/eye_ros_uninstall",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 0,
+			"isGenerated" : true,
+			"path" : "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/eye_ros_uninstall.rule",
+			"sourceGroupIndex" : 1
+		}
+	],
+	"type" : "UTILITY"
+}

+ 95 - 0
build/eye_ros/.cmake/api/v1/reply/target-uninstall-f4c86afa7ec3bcee04b8.json

@@ -0,0 +1,95 @@
+{
+	"backtrace" : 9,
+	"backtraceGraph" : 
+	{
+		"commands" : 
+		[
+			"add_custom_target",
+			"include",
+			"find_package",
+			"add_dependencies"
+		],
+		"files" : 
+		[
+			"/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_uninstall_target-extras.cmake",
+			"/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_coreConfig.cmake",
+			"/opt/ros/humble/share/ament_cmake/cmake/ament_cmake_export_dependencies-extras.cmake",
+			"/opt/ros/humble/share/ament_cmake/cmake/ament_cmakeConfig.cmake",
+			"CMakeLists.txt"
+		],
+		"nodes" : 
+		[
+			{
+				"file" : 4
+			},
+			{
+				"command" : 2,
+				"file" : 4,
+				"line" : 9,
+				"parent" : 0
+			},
+			{
+				"file" : 3,
+				"parent" : 1
+			},
+			{
+				"command" : 1,
+				"file" : 3,
+				"line" : 41,
+				"parent" : 2
+			},
+			{
+				"file" : 2,
+				"parent" : 3
+			},
+			{
+				"command" : 2,
+				"file" : 2,
+				"line" : 15,
+				"parent" : 4
+			},
+			{
+				"file" : 1,
+				"parent" : 5
+			},
+			{
+				"command" : 1,
+				"file" : 1,
+				"line" : 41,
+				"parent" : 6
+			},
+			{
+				"file" : 0,
+				"parent" : 7
+			},
+			{
+				"command" : 0,
+				"file" : 0,
+				"line" : 35,
+				"parent" : 8
+			},
+			{
+				"command" : 3,
+				"file" : 0,
+				"line" : 42,
+				"parent" : 8
+			}
+		]
+	},
+	"dependencies" : 
+	[
+		{
+			"backtrace" : 10,
+			"id" : "eye_ros_uninstall::@6890427a1f51a3e7e1df"
+		}
+	],
+	"id" : "uninstall::@6890427a1f51a3e7e1df",
+	"name" : "uninstall",
+	"paths" : 
+	{
+		"build" : ".",
+		"source" : "."
+	},
+	"sources" : [],
+	"type" : "UTILITY"
+}

+ 532 - 0
build/eye_ros/CMakeCache.txt

@@ -0,0 +1,532 @@
+# This is the CMakeCache file.
+# For build in directory: /home/ubuntu/ws_eye/build/eye_ros
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Generate environment files in the CMAKE_INSTALL_PREFIX
+AMENT_CMAKE_ENVIRONMENT_GENERATION:BOOL=OFF
+
+//Generate environment files in the package share folder
+AMENT_CMAKE_ENVIRONMENT_PACKAGE_GENERATION:BOOL=ON
+
+//Generate marker file containing the parent prefix path
+AMENT_CMAKE_ENVIRONMENT_PARENT_PREFIX_PATH_GENERATION:BOOL=ON
+
+//Replace the CMake install command with a custom implementation
+// using symlinks instead of copying resources
+AMENT_CMAKE_SYMLINK_INSTALL:BOOL=OFF
+
+//Generate an uninstall target to revert the effects of the install
+// step
+AMENT_CMAKE_UNINSTALL_TARGET:BOOL=ON
+
+//The path where test results are generated
+AMENT_TEST_RESULTS_DIR:PATH=/home/ubuntu/ws_eye/build/eye_ros/test_results
+
+//Build the testing tree.
+BUILD_TESTING:BOOL=ON
+
+//Path to a program.
+CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None Debug Release RelWithDebInfo
+// MinSizeRel ...
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Path to a program.
+CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/home/ubuntu/ws_eye/install/eye_ros
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=eye_ros
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Path to a program.
+CMAKE_READELF:FILEPATH=/usr/bin/readelf
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to a program.
+Python3_EXECUTABLE:FILEPATH=/usr/bin/python3
+
+//Name of the computer/site where compile is being run
+SITE:STRING=ubuntu
+
+//Path to a library.
+_lib:FILEPATH=/opt/ros/humble/lib/libsensor_msgs__rosidl_typesupport_fastrtps_cpp.so
+
+//The directory containing a CMake configuration file for ament_cmake.
+ament_cmake_DIR:PATH=/opt/ros/humble/share/ament_cmake/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_core.
+ament_cmake_core_DIR:PATH=/opt/ros/humble/share/ament_cmake_core/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_definitions.
+ament_cmake_export_definitions_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_definitions/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_dependencies.
+ament_cmake_export_dependencies_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_dependencies/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_include_directories.
+ament_cmake_export_include_directories_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_include_directories/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_interfaces.
+ament_cmake_export_interfaces_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_interfaces/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_libraries.
+ament_cmake_export_libraries_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_libraries/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_link_flags.
+ament_cmake_export_link_flags_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_link_flags/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_export_targets.
+ament_cmake_export_targets_DIR:PATH=/opt/ros/humble/share/ament_cmake_export_targets/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_gen_version_h.
+ament_cmake_gen_version_h_DIR:PATH=/opt/ros/humble/share/ament_cmake_gen_version_h/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_include_directories.
+ament_cmake_include_directories_DIR:PATH=/opt/ros/humble/share/ament_cmake_include_directories/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_libraries.
+ament_cmake_libraries_DIR:PATH=/opt/ros/humble/share/ament_cmake_libraries/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_python.
+ament_cmake_python_DIR:PATH=/opt/ros/humble/share/ament_cmake_python/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_target_dependencies.
+ament_cmake_target_dependencies_DIR:PATH=/opt/ros/humble/share/ament_cmake_target_dependencies/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_test.
+ament_cmake_test_DIR:PATH=/opt/ros/humble/share/ament_cmake_test/cmake
+
+//The directory containing a CMake configuration file for ament_cmake_version.
+ament_cmake_version_DIR:PATH=/opt/ros/humble/share/ament_cmake_version/cmake
+
+//The directory containing a CMake configuration file for builtin_interfaces.
+builtin_interfaces_DIR:PATH=/opt/ros/humble/share/builtin_interfaces/cmake
+
+//Value Computed by CMake
+eye_ros_BINARY_DIR:STATIC=/home/ubuntu/ws_eye/build/eye_ros
+
+//Value Computed by CMake
+eye_ros_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+eye_ros_SOURCE_DIR:STATIC=/home/ubuntu/ws_eye/src/eye_ros
+
+//The directory containing a CMake configuration file for fastcdr.
+fastcdr_DIR:PATH=/opt/ros/humble/lib/cmake/fastcdr
+
+//The directory containing a CMake configuration file for fastrtps_cmake_module.
+fastrtps_cmake_module_DIR:PATH=/opt/ros/humble/share/fastrtps_cmake_module/cmake
+
+//The directory containing a CMake configuration file for geometry_msgs.
+geometry_msgs_DIR:PATH=/opt/ros/humble/share/geometry_msgs/cmake
+
+//The directory containing a CMake configuration file for rclpy.
+rclpy_DIR:PATH=/opt/ros/humble/share/rclpy/cmake
+
+//The directory containing a CMake configuration file for rcpputils.
+rcpputils_DIR:PATH=/opt/ros/humble/share/rcpputils/cmake
+
+//The directory containing a CMake configuration file for rcutils.
+rcutils_DIR:PATH=/opt/ros/humble/share/rcutils/cmake
+
+//The directory containing a CMake configuration file for rmw.
+rmw_DIR:PATH=/opt/ros/humble/share/rmw/cmake
+
+//The directory containing a CMake configuration file for rosidl_adapter.
+rosidl_adapter_DIR:PATH=/opt/ros/humble/share/rosidl_adapter/cmake
+
+//The directory containing a CMake configuration file for rosidl_cmake.
+rosidl_cmake_DIR:PATH=/opt/ros/humble/share/rosidl_cmake/cmake
+
+//The directory containing a CMake configuration file for rosidl_default_runtime.
+rosidl_default_runtime_DIR:PATH=/opt/ros/humble/share/rosidl_default_runtime/cmake
+
+//The directory containing a CMake configuration file for rosidl_generator_c.
+rosidl_generator_c_DIR:PATH=/opt/ros/humble/share/rosidl_generator_c/cmake
+
+//The directory containing a CMake configuration file for rosidl_generator_cpp.
+rosidl_generator_cpp_DIR:PATH=/opt/ros/humble/share/rosidl_generator_cpp/cmake
+
+//The directory containing a CMake configuration file for rosidl_runtime_c.
+rosidl_runtime_c_DIR:PATH=/opt/ros/humble/share/rosidl_runtime_c/cmake
+
+//The directory containing a CMake configuration file for rosidl_runtime_cpp.
+rosidl_runtime_cpp_DIR:PATH=/opt/ros/humble/share/rosidl_runtime_cpp/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_c.
+rosidl_typesupport_c_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_c/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_cpp.
+rosidl_typesupport_cpp_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_cpp/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_fastrtps_c.
+rosidl_typesupport_fastrtps_c_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_fastrtps_cpp.
+rosidl_typesupport_fastrtps_cpp_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_interface.
+rosidl_typesupport_interface_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_interface/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_introspection_c.
+rosidl_typesupport_introspection_c_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake
+
+//The directory containing a CMake configuration file for rosidl_typesupport_introspection_cpp.
+rosidl_typesupport_introspection_cpp_DIR:PATH=/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake
+
+//The directory containing a CMake configuration file for sensor_msgs.
+sensor_msgs_DIR:PATH=/opt/ros/humble/share/sensor_msgs/cmake
+
+//The directory containing a CMake configuration file for std_msgs.
+std_msgs_DIR:PATH=/opt/ros/humble/share/std_msgs/cmake
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_ADDR2LINE
+CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/ubuntu/ws_eye/build/eye_ros
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=22
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_DLLTOOL
+CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/cmake-gui
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/ubuntu/ws_eye/src/eye_ros
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_READELF
+CMAKE_READELF-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.22
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//Details about finding Python3
+FIND_PACKAGE_MESSAGE_DETAILS_Python3:INTERNAL=[/usr/bin/python3][cfound components: Interpreter ][v3.10.12()]
+//The directory for Python library installation. This needs to
+// be in PYTHONPATH when 'setup.py install' is called.
+PYTHON_INSTALL_DIR:INTERNAL=local/lib/python3.10/dist-packages
+_Python3_EXECUTABLE:INTERNAL=/usr/bin/python3
+//Python3 Properties
+_Python3_INTERPRETER_PROPERTIES:INTERNAL=Python;3;10;12;64;;cpython-310-aarch64-linux-gnu;/usr/lib/python3.10;/usr/lib/python3.10;/usr/lib/python3/dist-packages;/usr/lib/python3/dist-packages
+_Python3_INTERPRETER_SIGNATURE:INTERNAL=0f3e53742e142b1d9e50e4ca5b901dd8
+

+ 72 - 0
build/eye_ros/CMakeFiles/3.22.1/CMakeCCompiler.cmake

@@ -0,0 +1,72 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "11.4.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
+set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-11")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_MT "")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/aarch64-linux-gnu/11/include;/usr/local/include;/usr/include/aarch64-linux-gnu;/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-linux-gnu/11;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

+ 83 - 0
build/eye_ros/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake

@@ -0,0 +1,83 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "11.4.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_MT "")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang C OBJC OBJCXX)
+  if (CMAKE_${lang}_COMPILER_ID_RUN)
+    foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+      list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+    endforeach()
+  endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/11;/usr/include/aarch64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/aarch64-linux-gnu/11/include;/usr/local/include;/usr/include/aarch64-linux-gnu;/usr/include")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-linux-gnu/11;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

TEMPAT SAMPAH
build/eye_ros/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin


TEMPAT SAMPAH
build/eye_ros/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin


+ 15 - 0
build/eye_ros/CMakeFiles/3.22.1/CMakeSystem.cmake

@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-5.15.148-2-engine-tegra")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "5.15.148-2-engine-tegra")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "aarch64")
+
+
+
+set(CMAKE_SYSTEM "Linux-5.15.148-2-engine-tegra")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "5.15.148-2-engine-tegra")
+set(CMAKE_SYSTEM_PROCESSOR "aarch64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)

+ 803 - 0
build/eye_ros/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c

@@ -0,0 +1,803 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+   always no.  */
+#  define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_ID "GNU"
+# endif
+  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+     except that a few beta releases use the old format with V=2021.  */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+#  if defined(__INTEL_COMPILER_UPDATE)
+#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+#  else
+#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+#  endif
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+   /* The third version component from --version is an update index,
+      but no macro is provided for it.  */
+#  define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
+#endif
+#if defined(_MSC_VER)
+  /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+#   define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
+# endif
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+#  define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+#  define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+#  define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+#  define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+#  define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+#  define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+#  define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+#  define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+#  define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+#  define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+#  define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+#  define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+#  define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+#  define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+#  define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#if !defined(__STDC__) && !defined(__clang__)
+# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
+#  define C_VERSION "90"
+# else
+#  define C_VERSION
+# endif
+#elif __STDC_VERSION__ > 201710L
+# define C_VERSION "23"
+#elif __STDC_VERSION__ >= 201710L
+# define C_VERSION "17"
+#elif __STDC_VERSION__ >= 201000L
+# define C_VERSION "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_VERSION "99"
+#else
+# define C_VERSION "90"
+#endif
+const char* info_language_standard_default =
+  "INFO" ":" "standard_default[" C_VERSION "]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
+#if (defined(__clang__) || defined(__GNUC__) ||                               \
+     defined(__TI_COMPILER_VERSION__)) &&                                     \
+  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
+  "ON"
+#else
+  "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+  require += info_cray[argc];
+#endif
+  require += info_language_standard_default[argc];
+  require += info_language_extensions_default[argc];
+  (void)argv;
+  return require;
+}
+#endif

TEMPAT SAMPAH
build/eye_ros/CMakeFiles/3.22.1/CompilerIdC/a.out


+ 791 - 0
build/eye_ros/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp

@@ -0,0 +1,791 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+   always no.  */
+#  define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_ID "GNU"
+# endif
+  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+     except that a few beta releases use the old format with V=2021.  */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+#  if defined(__INTEL_COMPILER_UPDATE)
+#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+#  else
+#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+#  endif
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+   /* The third version component from --version is an update index,
+      but no macro is provided for it.  */
+#  define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
+#endif
+#if defined(_MSC_VER)
+  /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+#   define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
+# endif
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+#  define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+#  define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+#  define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+#  define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+#  define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+#  define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+#  define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+#  define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+#  define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+#  define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+#  define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+#  define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+#  define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+#  define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+#  define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
+#  if defined(__INTEL_CXX11_MODE__)
+#    if defined(__cpp_aggregate_nsdmi)
+#      define CXX_STD 201402L
+#    else
+#      define CXX_STD 201103L
+#    endif
+#  else
+#    define CXX_STD 199711L
+#  endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+#  define CXX_STD _MSVC_LANG
+#else
+#  define CXX_STD __cplusplus
+#endif
+
+const char* info_language_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > 202002L
+  "23"
+#elif CXX_STD > 201703L
+  "20"
+#elif CXX_STD >= 201703L
+  "17"
+#elif CXX_STD >= 201402L
+  "14"
+#elif CXX_STD >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
+#if (defined(__clang__) || defined(__GNUC__) ||                               \
+     defined(__TI_COMPILER_VERSION__)) &&                                     \
+  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
+  "ON"
+#else
+  "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+  require += info_cray[argc];
+#endif
+  require += info_language_standard_default[argc];
+  require += info_language_extensions_default[argc];
+  (void)argv;
+  return require;
+}

TEMPAT SAMPAH
build/eye_ros/CMakeFiles/3.22.1/CompilerIdCXX/a.out


+ 16 - 0
build/eye_ros/CMakeFiles/CMakeDirectoryInformation.cmake

@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ubuntu/ws_eye/src/eye_ros")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ubuntu/ws_eye/build/eye_ros")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

+ 437 - 0
build/eye_ros/CMakeFiles/CMakeOutput.log

@@ -0,0 +1,437 @@
+The system is: Linux - 5.15.148-2-engine-tegra - aarch64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/3.22.1/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/3.22.1/CompilerIdCXX/a.out"
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_147be/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_147be.dir/build.make CMakeFiles/cmTC_147be.dir/build
+gmake[1]: Entering directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc   -v -o CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+Target: aarch64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/'
+ /usr/lib/gcc/aarch64-linux-gnu/11/cc1 -quiet -v -imultiarch aarch64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_147be.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mlittle-endian -mabi=lp64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/ccRgMzlv.s
+GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include/aarch64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/lib/gcc/aarch64-linux-gnu/11/include
+ /usr/local/include
+ /usr/include/aarch64-linux-gnu
+ /usr/include
+End of search list.
+GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 52ed857e9cd110e5efaa797811afcfbb
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/'
+ as -v -EL -mabi=lp64 -o CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o /tmp/ccRgMzlv.s
+GNU assembler version 2.38 (aarch64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
+COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.'
+Linking C executable cmTC_147be
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_147be.dir/link.txt --verbose=1
+/usr/bin/cc  -v CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -o cmTC_147be 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper
+Target: aarch64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_147be' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_147be.'
+ /usr/lib/gcc/aarch64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc2STFBU.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_147be /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/11 -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/11/../../.. CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_147be' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_147be.'
+gmake[1]: Leaving directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp'
+
+
+
+Parsed C implicit include dir info from above output: rv=done
+  found start of include info
+  found start of implicit include info
+    add: [/usr/lib/gcc/aarch64-linux-gnu/11/include]
+    add: [/usr/local/include]
+    add: [/usr/include/aarch64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/lib/gcc/aarch64-linux-gnu/11/include] ==> [/usr/lib/gcc/aarch64-linux-gnu/11/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/aarch64-linux-gnu] ==> [/usr/include/aarch64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/lib/gcc/aarch64-linux-gnu/11/include;/usr/local/include;/usr/include/aarch64-linux-gnu;/usr/include]
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_147be/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_147be.dir/build.make CMakeFiles/cmTC_147be.dir/build]
+  ignore line: [gmake[1]: Entering directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [Target: aarch64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/']
+  ignore line: [ /usr/lib/gcc/aarch64-linux-gnu/11/cc1 -quiet -v -imultiarch aarch64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_147be.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mlittle-endian -mabi=lp64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/ccRgMzlv.s]
+  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/aarch64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/lib/gcc/aarch64-linux-gnu/11/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/aarch64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: 52ed857e9cd110e5efaa797811afcfbb]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/']
+  ignore line: [ as -v -EL -mabi=lp64 -o CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o /tmp/ccRgMzlv.s]
+  ignore line: [GNU assembler version 2.38 (aarch64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o' '-c' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.']
+  ignore line: [Linking C executable cmTC_147be]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_147be.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc  -v CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -o cmTC_147be ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper]
+  ignore line: [Target: aarch64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_147be' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_147be.']
+  link line: [ /usr/lib/gcc/aarch64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc2STFBU.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_147be /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/11 -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/11/../../.. CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cc2STFBU.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib/ld-linux-aarch64.so.1] ==> ignore
+    arg [-X] ==> ignore
+    arg [-EL] ==> ignore
+    arg [-maarch64linux] ==> ignore
+    arg [--fix-cortex-a53-843419] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_147be] ==> ignore
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib]
+    arg [-L/lib/aarch64-linux-gnu] ==> dir [/lib/aarch64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/aarch64-linux-gnu] ==> dir [/usr/lib/aarch64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../..]
+    arg [CMakeFiles/cmTC_147be.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o] ==> [/usr/lib/aarch64-linux-gnu/Scrt1.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o] ==> [/usr/lib/aarch64-linux-gnu/crti.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o] ==> [/usr/lib/aarch64-linux-gnu/crtn.o]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11] ==> [/usr/lib/gcc/aarch64-linux-gnu/11]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/aarch64-linux-gnu] ==> [/lib/aarch64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../..] ==> [/usr/lib]
+  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+  implicit objs: [/usr/lib/aarch64-linux-gnu/Scrt1.o;/usr/lib/aarch64-linux-gnu/crti.o;/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o;/usr/lib/aarch64-linux-gnu/crtn.o]
+  implicit dirs: [/usr/lib/gcc/aarch64-linux-gnu/11;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_ec616/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_ec616.dir/build.make CMakeFiles/cmTC_ec616.dir/build
+gmake[1]: Entering directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++   -v -o CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+Target: aarch64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/'
+ /usr/lib/gcc/aarch64-linux-gnu/11/cc1plus -quiet -v -imultiarch aarch64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_ec616.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mlittle-endian -mabi=lp64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/ccEtk1cQ.s
+GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring duplicate directory "/usr/include/aarch64-linux-gnu/c++/11"
+ignoring nonexistent directory "/usr/local/include/aarch64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/include/c++/11
+ /usr/include/aarch64-linux-gnu/c++/11
+ /usr/include/c++/11/backward
+ /usr/lib/gcc/aarch64-linux-gnu/11/include
+ /usr/local/include
+ /usr/include/aarch64-linux-gnu
+ /usr/include
+End of search list.
+GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 3e6e780af1232722b47e0979fda82402
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/'
+ as -v -EL -mabi=lp64 -o CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccEtk1cQ.s
+GNU assembler version 2.38 (aarch64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
+COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.'
+Linking CXX executable cmTC_ec616
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ec616.dir/link.txt --verbose=1
+/usr/bin/c++  -v CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_ec616 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper
+Target: aarch64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ec616' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ec616.'
+ /usr/lib/gcc/aarch64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4M5cWJ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_ec616 /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/11 -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/11/../../.. CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ec616' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ec616.'
+gmake[1]: Leaving directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp'
+
+
+
+Parsed CXX implicit include dir info from above output: rv=done
+  found start of include info
+  found start of implicit include info
+    add: [/usr/include/c++/11]
+    add: [/usr/include/aarch64-linux-gnu/c++/11]
+    add: [/usr/include/c++/11/backward]
+    add: [/usr/lib/gcc/aarch64-linux-gnu/11/include]
+    add: [/usr/local/include]
+    add: [/usr/include/aarch64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11]
+  collapse include dir [/usr/include/aarch64-linux-gnu/c++/11] ==> [/usr/include/aarch64-linux-gnu/c++/11]
+  collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward]
+  collapse include dir [/usr/lib/gcc/aarch64-linux-gnu/11/include] ==> [/usr/lib/gcc/aarch64-linux-gnu/11/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/aarch64-linux-gnu] ==> [/usr/include/aarch64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/include/c++/11;/usr/include/aarch64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/aarch64-linux-gnu/11/include;/usr/local/include;/usr/include/aarch64-linux-gnu;/usr/include]
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_ec616/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_ec616.dir/build.make CMakeFiles/cmTC_ec616.dir/build]
+  ignore line: [gmake[1]: Entering directory '/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++   -v -o CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [Target: aarch64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/']
+  ignore line: [ /usr/lib/gcc/aarch64-linux-gnu/11/cc1plus -quiet -v -imultiarch aarch64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_ec616.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mlittle-endian -mabi=lp64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/ccEtk1cQ.s]
+  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring duplicate directory "/usr/include/aarch64-linux-gnu/c++/11"]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/aarch64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/include/c++/11]
+  ignore line: [ /usr/include/aarch64-linux-gnu/c++/11]
+  ignore line: [ /usr/include/c++/11/backward]
+  ignore line: [ /usr/lib/gcc/aarch64-linux-gnu/11/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/aarch64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (aarch64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: 3e6e780af1232722b47e0979fda82402]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/']
+  ignore line: [ as -v -EL -mabi=lp64 -o CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccEtk1cQ.s]
+  ignore line: [GNU assembler version 2.38 (aarch64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.']
+  ignore line: [Linking CXX executable cmTC_ec616]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ec616.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++  -v CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_ec616 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper]
+  ignore line: [Target: aarch64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/11/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ec616' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ec616.']
+  link line: [ /usr/lib/gcc/aarch64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4M5cWJ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_ec616 /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/11 -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/11/../../.. CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/11/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cc4M5cWJ.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib/ld-linux-aarch64.so.1] ==> ignore
+    arg [-X] ==> ignore
+    arg [-EL] ==> ignore
+    arg [-maarch64linux] ==> ignore
+    arg [--fix-cortex-a53-843419] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_ec616] ==> ignore
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib]
+    arg [-L/lib/aarch64-linux-gnu] ==> dir [/lib/aarch64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/aarch64-linux-gnu] ==> dir [/usr/lib/aarch64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/aarch64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../..]
+    arg [CMakeFiles/cmTC_ec616.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o]
+    arg [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/Scrt1.o] ==> [/usr/lib/aarch64-linux-gnu/Scrt1.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crti.o] ==> [/usr/lib/aarch64-linux-gnu/crti.o]
+  collapse obj [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu/crtn.o] ==> [/usr/lib/aarch64-linux-gnu/crtn.o]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11] ==> [/usr/lib/gcc/aarch64-linux-gnu/11]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/aarch64-linux-gnu] ==> [/lib/aarch64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/11/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+  implicit objs: [/usr/lib/aarch64-linux-gnu/Scrt1.o;/usr/lib/aarch64-linux-gnu/crti.o;/usr/lib/gcc/aarch64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/aarch64-linux-gnu/11/crtendS.o;/usr/lib/aarch64-linux-gnu/crtn.o]
+  implicit dirs: [/usr/lib/gcc/aarch64-linux-gnu/11;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib]
+  implicit fwks: []
+
+

+ 4 - 0
build/eye_ros/CMakeFiles/CMakeRuleHashes.txt

@@ -0,0 +1,4 @@
+# Hashes of file build rules.
+2380d75b8c4ad5e53413e7b984684eae CMakeFiles/ament_cmake_python_build_eye_ros_egg
+08ed59705f5d8f61762a5c37a2dab388 CMakeFiles/ament_cmake_python_copy_eye_ros
+803abd024857d0c5d000a61eb4e93394 CMakeFiles/eye_ros_uninstall

+ 511 - 0
build/eye_ros/CMakeFiles/Makefile.cmake

@@ -0,0 +1,511 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeSystem.cmake"
+  "ament_cmake_core/package.cmake"
+  "ament_cmake_package_templates/templates.cmake"
+  "/home/ubuntu/ws_eye/src/eye_ros/CMakeLists.txt"
+  "/home/ubuntu/ws_eye/src/eye_ros/package.xml"
+  "/opt/ros/humble/lib/cmake/fastcdr/fastcdr-config-version.cmake"
+  "/opt/ros/humble/lib/cmake/fastcdr/fastcdr-config.cmake"
+  "/opt/ros/humble/lib/cmake/fastcdr/fastcdr-dynamic-targets-none.cmake"
+  "/opt/ros/humble/lib/cmake/fastcdr/fastcdr-dynamic-targets.cmake"
+  "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/environment_hook/pythonpath.sh.in"
+  "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.bash.in"
+  "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.sh.in"
+  "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.zsh.in"
+  "/opt/ros/humble/share/ament_cmake/cmake/ament_cmakeConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake/cmake/ament_cmakeConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_core-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_coreConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_coreConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_environment-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_environment_hooks-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_index-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_package_templates-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_symlink_install-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/ament_cmake_uninstall_target-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/all.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_package.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_package_xml.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/ament_register_extension.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/assert_file_exists.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/get_executable_path.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/list_append_unique.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/normalize_path.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/python.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/stamp.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/string_ends_with.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/templates/nameConfig-version.cmake.in"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/core/templates/nameConfig.cmake.in"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment/ament_cmake_environment_package_hook.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment/ament_generate_environment.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_cmake_environment_hooks_package_hook.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_environment_hooks.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/ament_generate_package_environment.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/environment/ament_prefix_path.sh"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/environment_hooks/environment/path.sh"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_cmake_index_package_hook.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_get_prefix_path.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_get_resource.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_get_resources.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_has_resource.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_register_package.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/index/ament_index_register_resource.cmake"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/package_templates/templates_2_cmake.py"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/uninstall_target/ament_cmake_uninstall_target.cmake.in"
+  "/opt/ros/humble/share/ament_cmake_core/cmake/uninstall_target/ament_cmake_uninstall_target_append_uninstall_code.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_definitions/cmake/ament_cmake_export_definitions-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_definitions/cmake/ament_cmake_export_definitionsConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_definitions/cmake/ament_cmake_export_definitionsConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_definitions/cmake/ament_export_definitions.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependenciesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependenciesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_dependencies/cmake/ament_export_dependencies.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_include_directories/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_include_directories/cmake/ament_cmake_export_include_directoriesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_include_directories/cmake/ament_cmake_export_include_directoriesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_include_directories/cmake/ament_export_include_directories.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_interfaces/cmake/ament_cmake_export_interfaces-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_interfaces/cmake/ament_cmake_export_interfacesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_interfaces/cmake/ament_cmake_export_interfacesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_interfaces/cmake/ament_export_interfaces.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_libraries/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_libraries/cmake/ament_cmake_export_librariesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_libraries/cmake/ament_cmake_export_librariesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_libraries/cmake/ament_export_libraries.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_libraries/cmake/ament_export_library_names.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_link_flags/cmake/ament_cmake_export_link_flags-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_link_flags/cmake/ament_cmake_export_link_flagsConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_link_flags/cmake/ament_cmake_export_link_flagsConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_link_flags/cmake/ament_export_link_flags.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_targets/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_targets/cmake/ament_cmake_export_targetsConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_targets/cmake/ament_cmake_export_targetsConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_export_targets/cmake/ament_export_targets.cmake"
+  "/opt/ros/humble/share/ament_cmake_gen_version_h/cmake/ament_cmake_gen_version_h-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_gen_version_h/cmake/ament_cmake_gen_version_h.cmake"
+  "/opt/ros/humble/share/ament_cmake_gen_version_h/cmake/ament_cmake_gen_version_hConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_gen_version_h/cmake/ament_cmake_gen_version_hConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_gen_version_h/cmake/ament_generate_version_header.cmake"
+  "/opt/ros/humble/share/ament_cmake_include_directories/cmake/ament_cmake_include_directories-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_include_directories/cmake/ament_cmake_include_directoriesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_include_directories/cmake/ament_cmake_include_directoriesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_include_directories/cmake/ament_include_directories_order.cmake"
+  "/opt/ros/humble/share/ament_cmake_libraries/cmake/ament_cmake_libraries-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_libraries/cmake/ament_cmake_librariesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_libraries/cmake/ament_cmake_librariesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_libraries/cmake/ament_libraries_deduplicate.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_cmake_python-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_cmake_pythonConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_cmake_pythonConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_get_python_install_dir.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_python_install_module.cmake"
+  "/opt/ros/humble/share/ament_cmake_python/cmake/ament_python_install_package.cmake"
+  "/opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependencies-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependenciesConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_cmake_target_dependenciesConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_get_recursive_properties.cmake"
+  "/opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake"
+  "/opt/ros/humble/share/ament_cmake_test/cmake/ament_add_test.cmake"
+  "/opt/ros/humble/share/ament_cmake_test/cmake/ament_add_test_label.cmake"
+  "/opt/ros/humble/share/ament_cmake_test/cmake/ament_cmake_test-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_test/cmake/ament_cmake_testConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_test/cmake/ament_cmake_testConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_version/cmake/ament_cmake_version-extras.cmake"
+  "/opt/ros/humble/share/ament_cmake_version/cmake/ament_cmake_versionConfig-version.cmake"
+  "/opt/ros/humble/share/ament_cmake_version/cmake/ament_cmake_versionConfig.cmake"
+  "/opt/ros/humble/share/ament_cmake_version/cmake/ament_export_development_version_if_higher_than_manifest.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfacesConfig-version.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_cExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_cExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_cppExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_cppExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_introspection_cExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_introspection_cExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_introspection_cppExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfaces__rosidl_typesupport_introspection_cppExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_generator_cExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_generator_cExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_generator_cppExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_generator_pyExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_generator_pyExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_typesupport_fastrtps_cExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_typesupport_fastrtps_cExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_typesupport_fastrtps_cppExport-none.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/export_builtin_interfaces__rosidl_typesupport_fastrtps_cppExport.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/rosidl_cmake_export_typesupport_libraries-extras.cmake"
+  "/opt/ros/humble/share/builtin_interfaces/cmake/rosidl_cmake_export_typesupport_targets-extras.cmake"
+  "/opt/ros/humble/share/fastrtps_cmake_module/cmake/fastrtps_cmake_module-extras.cmake"
+  "/opt/ros/humble/share/fastrtps_cmake_module/cmake/fastrtps_cmake_moduleConfig-version.cmake"
+  "/opt/ros/humble/share/fastrtps_cmake_module/cmake/fastrtps_cmake_moduleConfig.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_generator_cExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_generator_cExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_generator_cppExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_generator_pyExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_generator_pyExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_typesupport_fastrtps_cExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_typesupport_fastrtps_cExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_typesupport_fastrtps_cppExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/export_geometry_msgs__rosidl_typesupport_fastrtps_cppExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgsConfig-version.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgsConfig.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_cExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_cExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_cppExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_cppExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_introspection_cExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_introspection_cExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_introspection_cppExport-none.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/geometry_msgs__rosidl_typesupport_introspection_cppExport.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/rosidl_cmake_export_typesupport_libraries-extras.cmake"
+  "/opt/ros/humble/share/geometry_msgs/cmake/rosidl_cmake_export_typesupport_targets-extras.cmake"
+  "/opt/ros/humble/share/rclpy/cmake/rclpyConfig-version.cmake"
+  "/opt/ros/humble/share/rclpy/cmake/rclpyConfig.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/rcpputilsConfig-version.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/rcpputilsConfig.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/rcpputilsExport-none.cmake"
+  "/opt/ros/humble/share/rcpputils/cmake/rcpputilsExport.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/ament_cmake_export_link_flags-extras.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/rcutilsConfig-version.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/rcutilsConfig.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/rcutilsExport-none.cmake"
+  "/opt/ros/humble/share/rcutils/cmake/rcutilsExport.cmake"
+  "/opt/ros/humble/share/rmw/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rmw/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rmw/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rmw/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rmw/cmake/configure_rmw_library.cmake"
+  "/opt/ros/humble/share/rmw/cmake/get_rmw_typesupport.cmake"
+  "/opt/ros/humble/share/rmw/cmake/register_rmw_implementation.cmake"
+  "/opt/ros/humble/share/rmw/cmake/rmw-extras.cmake"
+  "/opt/ros/humble/share/rmw/cmake/rmwConfig-version.cmake"
+  "/opt/ros/humble/share/rmw/cmake/rmwConfig.cmake"
+  "/opt/ros/humble/share/rmw/cmake/rmwExport-none.cmake"
+  "/opt/ros/humble/share/rmw/cmake/rmwExport.cmake"
+  "/opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake"
+  "/opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapter-extras.cmake"
+  "/opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapterConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapterConfig.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_cmakeConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_cmakeConfig.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_export_typesupport_libraries.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_export_typesupport_targets.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_get_typesupport_target.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_target_interfaces.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/rosidl_write_generator_arguments.cmake"
+  "/opt/ros/humble/share/rosidl_cmake/cmake/string_camel_case_to_lower_case_underscore.cmake"
+  "/opt/ros/humble/share/rosidl_default_runtime/cmake/rosidl_default_runtime-extras.cmake"
+  "/opt/ros/humble/share/rosidl_default_runtime/cmake/rosidl_default_runtimeConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_default_runtime/cmake/rosidl_default_runtimeConfig.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/register_c.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/rosidl_generator_c-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/rosidl_generator_cConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_generator_c/cmake/rosidl_generator_cConfig.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/register_cpp.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/rosidl_generator_cpp-extras.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/rosidl_generator_cppConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_generator_cpp/cmake/rosidl_generator_cppConfig.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/rosidl_runtime_cConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/rosidl_runtime_cConfig.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/rosidl_runtime_cExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_c/cmake/rosidl_runtime_cExport.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/rosidl_runtime_cppConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/rosidl_runtime_cppConfig.cmake"
+  "/opt/ros/humble/share/rosidl_runtime_cpp/cmake/rosidl_runtime_cppExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/get_used_typesupports.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cppConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cppConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cppExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cppExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_c-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/rosidl_typesupport_fastrtps_cpp-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/rosidl_typesupport_fastrtps_cppConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/rosidl_typesupport_fastrtps_cppConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/rosidl_typesupport_fastrtps_cppExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_fastrtps_cpp/cmake/rosidl_typesupport_fastrtps_cppExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_interface/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_interface/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_interface/cmake/rosidl_typesupport_interfaceConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_interface/cmake/rosidl_typesupport_interfaceConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_interface/cmake/rosidl_typesupport_interfaceExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_cConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_cConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_cExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_cExport.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp-extras.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cppConfig-version.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cppConfig.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cppExport-none.cmake"
+  "/opt/ros/humble/share/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cppExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgsExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_generator_cExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_generator_cExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_generator_cppExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_generator_pyExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_generator_pyExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_typesupport_fastrtps_cExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_typesupport_fastrtps_cExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_typesupport_fastrtps_cppExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/export_sensor_msgs__rosidl_typesupport_fastrtps_cppExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/rosidl_cmake_export_typesupport_libraries-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/rosidl_cmake_export_typesupport_targets-extras.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgsConfig-version.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgsConfig.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_cExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_cExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_cppExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_cppExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_introspection_cExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_introspection_cExport.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_introspection_cppExport-none.cmake"
+  "/opt/ros/humble/share/sensor_msgs/cmake/sensor_msgs__rosidl_typesupport_introspection_cppExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/ament_cmake_export_dependencies-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/ament_cmake_export_include_directories-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/ament_cmake_export_libraries-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/ament_cmake_export_targets-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_generator_cExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_generator_cExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_generator_cppExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_generator_pyExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_generator_pyExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_typesupport_fastrtps_cExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_typesupport_fastrtps_cExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_typesupport_fastrtps_cppExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/export_std_msgs__rosidl_typesupport_fastrtps_cppExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/rosidl_cmake-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/rosidl_cmake_export_typesupport_libraries-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/rosidl_cmake_export_typesupport_targets-extras.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgsConfig-version.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgsConfig.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_cExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_cExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_cppExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_cppExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_introspection_cExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_introspection_cExport.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_introspection_cppExport-none.cmake"
+  "/opt/ros/humble/share/std_msgs/cmake/std_msgs__rosidl_typesupport_introspection_cppExport.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
+  "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeUnixFindMake.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-FindBinUtils.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/DartConfiguration.tcl.in"
+  "/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake"
+  "/usr/share/cmake-3.22/Modules/FindPackageMessage.cmake"
+  "/usr/share/cmake-3.22/Modules/FindPython/Support.cmake"
+  "/usr/share/cmake-3.22/Modules/FindPython3.cmake"
+  "/usr/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-Determine-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/3.22.1/CMakeSystem.cmake"
+  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "ament_cmake_core/stamps/templates_2_cmake.py.stamp"
+  "ament_cmake_uninstall_target/ament_cmake_uninstall_target.cmake"
+  "CTestConfiguration.ini"
+  "ament_cmake_core/stamps/pythonpath.sh.in.stamp"
+  "ament_cmake_environment_hooks/pythonpath.sh"
+  "ament_cmake_core/stamps/package.xml.stamp"
+  "ament_cmake_core/stamps/package_xml_2_cmake.py.stamp"
+  "ament_cmake_core/stamps/package.xml.stamp"
+  "ament_cmake_core/stamps/package_xml_2_cmake.py.stamp"
+  "ament_cmake_core/stamps/ament_prefix_path.sh.stamp"
+  "ament_cmake_core/stamps/path.sh.stamp"
+  "ament_cmake_environment_hooks/local_setup.bash"
+  "ament_cmake_environment_hooks/local_setup.sh"
+  "ament_cmake_environment_hooks/local_setup.zsh"
+  "ament_cmake_core/stamps/nameConfig.cmake.in.stamp"
+  "ament_cmake_core/eye_rosConfig.cmake"
+  "ament_cmake_core/stamps/nameConfig-version.cmake.in.stamp"
+  "ament_cmake_core/eye_rosConfig-version.cmake"
+  "ament_cmake_python/eye_ros/setup.py"
+  "ament_cmake_index/share/ament_index/resource_index/package_run_dependencies/eye_ros"
+  "ament_cmake_index/share/ament_index/resource_index/parent_prefix_path/eye_ros"
+  "ament_cmake_index/share/ament_index/resource_index/packages/eye_ros"
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "CMakeFiles/uninstall.dir/DependInfo.cmake"
+  "CMakeFiles/eye_ros_uninstall.dir/DependInfo.cmake"
+  "CMakeFiles/ament_cmake_python_copy_eye_ros.dir/DependInfo.cmake"
+  "CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/DependInfo.cmake"
+  )

+ 193 - 0
build/eye_ros/CMakeFiles/Makefile2

@@ -0,0 +1,193 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Default target executed when no arguments are given to make.
+default_target: all
+.PHONY : default_target
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+#=============================================================================
+# Directory level rules for the build root directory
+
+# The main recursive "all" target.
+all: CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/all
+.PHONY : all
+
+# The main recursive "preinstall" target.
+preinstall:
+.PHONY : preinstall
+
+# The main recursive "clean" target.
+clean: CMakeFiles/uninstall.dir/clean
+clean: CMakeFiles/eye_ros_uninstall.dir/clean
+clean: CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean
+clean: CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/uninstall.dir
+
+# All Build rule for target.
+CMakeFiles/uninstall.dir/all: CMakeFiles/eye_ros_uninstall.dir/all
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/depend
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles --progress-num= "Built target uninstall"
+.PHONY : CMakeFiles/uninstall.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/uninstall.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/uninstall.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+.PHONY : CMakeFiles/uninstall.dir/rule
+
+# Convenience name for target.
+uninstall: CMakeFiles/uninstall.dir/rule
+.PHONY : uninstall
+
+# clean rule for target.
+CMakeFiles/uninstall.dir/clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/clean
+.PHONY : CMakeFiles/uninstall.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/eye_ros_uninstall.dir
+
+# All Build rule for target.
+CMakeFiles/eye_ros_uninstall.dir/all:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/eye_ros_uninstall.dir/build.make CMakeFiles/eye_ros_uninstall.dir/depend
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/eye_ros_uninstall.dir/build.make CMakeFiles/eye_ros_uninstall.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles --progress-num= "Built target eye_ros_uninstall"
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/eye_ros_uninstall.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/eye_ros_uninstall.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/rule
+
+# Convenience name for target.
+eye_ros_uninstall: CMakeFiles/eye_ros_uninstall.dir/rule
+.PHONY : eye_ros_uninstall
+
+# clean rule for target.
+CMakeFiles/eye_ros_uninstall.dir/clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/eye_ros_uninstall.dir/build.make CMakeFiles/eye_ros_uninstall.dir/clean
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/ament_cmake_python_copy_eye_ros.dir
+
+# All Build rule for target.
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/all:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make CMakeFiles/ament_cmake_python_copy_eye_ros.dir/depend
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles --progress-num= "Built target ament_cmake_python_copy_eye_ros"
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ament_cmake_python_copy_eye_ros.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/rule
+
+# Convenience name for target.
+ament_cmake_python_copy_eye_ros: CMakeFiles/ament_cmake_python_copy_eye_ros.dir/rule
+.PHONY : ament_cmake_python_copy_eye_ros
+
+# clean rule for target.
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir
+
+# All Build rule for target.
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/all: CMakeFiles/ament_cmake_python_copy_eye_ros.dir/all
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/depend
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles --progress-num= "Built target ament_cmake_python_build_eye_ros_egg"
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/rule
+
+# Convenience name for target.
+ament_cmake_python_build_eye_ros_egg: CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/rule
+.PHONY : ament_cmake_python_build_eye_ros_egg
+
+# clean rule for target.
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 11 - 0
build/eye_ros/CMakeFiles/TargetDirectories.txt

@@ -0,0 +1,11 @@
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/uninstall.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/eye_ros_uninstall.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/test.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/edit_cache.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/rebuild_cache.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/list_install_components.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/install.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/install/local.dir
+/home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/install/strip.dir

+ 18 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/DependInfo.cmake

@@ -0,0 +1,18 @@
+
+# Consider dependencies only in project.
+set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
+
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+
+# The set of dependency files which are needed:
+set(CMAKE_DEPENDS_DEPENDENCY_FILES
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 87 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make

@@ -0,0 +1,87 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+# Utility rule file for ament_cmake_python_build_eye_ros_egg.
+
+# Include any custom commands dependencies for this target.
+include CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/compiler_depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/progress.make
+
+CMakeFiles/ament_cmake_python_build_eye_ros_egg:
+	cd /home/ubuntu/ws_eye/build/eye_ros/ament_cmake_python/eye_ros && /usr/bin/python3 setup.py egg_info
+
+ament_cmake_python_build_eye_ros_egg: CMakeFiles/ament_cmake_python_build_eye_ros_egg
+ament_cmake_python_build_eye_ros_egg: CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make
+.PHONY : ament_cmake_python_build_eye_ros_egg
+
+# Rule to build all files generated by this target.
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build: ament_cmake_python_build_eye_ros_egg
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build
+
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/clean
+
+CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/depend:
+	cd /home/ubuntu/ws_eye/build/eye_ros && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/depend
+

+ 8 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/cmake_clean.cmake

@@ -0,0 +1,8 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/ament_cmake_python_build_eye_ros_egg"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()

+ 2 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/compiler_depend.make

@@ -0,0 +1,2 @@
+# Empty custom commands generated dependencies file for ament_cmake_python_build_eye_ros_egg.
+# This may be replaced when dependencies are built.

+ 2 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/compiler_depend.ts

@@ -0,0 +1,2 @@
+# CMAKE generated file: DO NOT EDIT!
+# Timestamp file for custom commands dependencies management for ament_cmake_python_build_eye_ros_egg.

+ 1 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/progress.make

@@ -0,0 +1 @@
+

+ 18 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/DependInfo.cmake

@@ -0,0 +1,18 @@
+
+# Consider dependencies only in project.
+set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
+
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+
+# The set of dependency files which are needed:
+set(CMAKE_DEPENDS_DEPENDENCY_FILES
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 87 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make

@@ -0,0 +1,87 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+# Utility rule file for ament_cmake_python_copy_eye_ros.
+
+# Include any custom commands dependencies for this target.
+include CMakeFiles/ament_cmake_python_copy_eye_ros.dir/compiler_depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/ament_cmake_python_copy_eye_ros.dir/progress.make
+
+CMakeFiles/ament_cmake_python_copy_eye_ros:
+	/usr/bin/cmake -E copy_directory /home/ubuntu/ws_eye/src/eye_ros/eye_ros /home/ubuntu/ws_eye/build/eye_ros/ament_cmake_python/eye_ros/eye_ros
+
+ament_cmake_python_copy_eye_ros: CMakeFiles/ament_cmake_python_copy_eye_ros
+ament_cmake_python_copy_eye_ros: CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make
+.PHONY : ament_cmake_python_copy_eye_ros
+
+# Rule to build all files generated by this target.
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build: ament_cmake_python_copy_eye_ros
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build
+
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/ament_cmake_python_copy_eye_ros.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/clean
+
+CMakeFiles/ament_cmake_python_copy_eye_ros.dir/depend:
+	cd /home/ubuntu/ws_eye/build/eye_ros && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/ament_cmake_python_copy_eye_ros.dir/depend
+

+ 8 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/cmake_clean.cmake

@@ -0,0 +1,8 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/ament_cmake_python_copy_eye_ros"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/ament_cmake_python_copy_eye_ros.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()

+ 2 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/compiler_depend.make

@@ -0,0 +1,2 @@
+# Empty custom commands generated dependencies file for ament_cmake_python_copy_eye_ros.
+# This may be replaced when dependencies are built.

+ 2 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/compiler_depend.ts

@@ -0,0 +1,2 @@
+# CMAKE generated file: DO NOT EDIT!
+# Timestamp file for custom commands dependencies management for ament_cmake_python_copy_eye_ros.

+ 1 - 0
build/eye_ros/CMakeFiles/ament_cmake_python_copy_eye_ros.dir/progress.make

@@ -0,0 +1 @@
+

+ 1 - 0
build/eye_ros/CMakeFiles/cmake.check_cache

@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file

+ 18 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/DependInfo.cmake

@@ -0,0 +1,18 @@
+
+# Consider dependencies only in project.
+set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
+
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+
+# The set of dependency files which are needed:
+set(CMAKE_DEPENDS_DEPENDENCY_FILES
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 87 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/build.make

@@ -0,0 +1,87 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+# Utility rule file for eye_ros_uninstall.
+
+# Include any custom commands dependencies for this target.
+include CMakeFiles/eye_ros_uninstall.dir/compiler_depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/eye_ros_uninstall.dir/progress.make
+
+CMakeFiles/eye_ros_uninstall:
+	/usr/bin/cmake -P /home/ubuntu/ws_eye/build/eye_ros/ament_cmake_uninstall_target/ament_cmake_uninstall_target.cmake
+
+eye_ros_uninstall: CMakeFiles/eye_ros_uninstall
+eye_ros_uninstall: CMakeFiles/eye_ros_uninstall.dir/build.make
+.PHONY : eye_ros_uninstall
+
+# Rule to build all files generated by this target.
+CMakeFiles/eye_ros_uninstall.dir/build: eye_ros_uninstall
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/build
+
+CMakeFiles/eye_ros_uninstall.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/eye_ros_uninstall.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/clean
+
+CMakeFiles/eye_ros_uninstall.dir/depend:
+	cd /home/ubuntu/ws_eye/build/eye_ros && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/eye_ros_uninstall.dir/depend
+

+ 8 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/cmake_clean.cmake

@@ -0,0 +1,8 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/eye_ros_uninstall"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/eye_ros_uninstall.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()

+ 2 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/compiler_depend.make

@@ -0,0 +1,2 @@
+# Empty custom commands generated dependencies file for eye_ros_uninstall.
+# This may be replaced when dependencies are built.

+ 2 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/compiler_depend.ts

@@ -0,0 +1,2 @@
+# CMAKE generated file: DO NOT EDIT!
+# Timestamp file for custom commands dependencies management for eye_ros_uninstall.

+ 1 - 0
build/eye_ros/CMakeFiles/eye_ros_uninstall.dir/progress.make

@@ -0,0 +1 @@
+

+ 1 - 0
build/eye_ros/CMakeFiles/progress.marks

@@ -0,0 +1 @@
+0

+ 18 - 0
build/eye_ros/CMakeFiles/uninstall.dir/DependInfo.cmake

@@ -0,0 +1,18 @@
+
+# Consider dependencies only in project.
+set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
+
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+
+# The set of dependency files which are needed:
+set(CMAKE_DEPENDS_DEPENDENCY_FILES
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 83 - 0
build/eye_ros/CMakeFiles/uninstall.dir/build.make

@@ -0,0 +1,83 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+# Utility rule file for uninstall.
+
+# Include any custom commands dependencies for this target.
+include CMakeFiles/uninstall.dir/compiler_depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/uninstall.dir/progress.make
+
+uninstall: CMakeFiles/uninstall.dir/build.make
+.PHONY : uninstall
+
+# Rule to build all files generated by this target.
+CMakeFiles/uninstall.dir/build: uninstall
+.PHONY : CMakeFiles/uninstall.dir/build
+
+CMakeFiles/uninstall.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/uninstall.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/uninstall.dir/clean
+
+CMakeFiles/uninstall.dir/depend:
+	cd /home/ubuntu/ws_eye/build/eye_ros && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/src/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles/uninstall.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/uninstall.dir/depend
+

+ 5 - 0
build/eye_ros/CMakeFiles/uninstall.dir/cmake_clean.cmake

@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/uninstall.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()

+ 2 - 0
build/eye_ros/CMakeFiles/uninstall.dir/compiler_depend.make

@@ -0,0 +1,2 @@
+# Empty custom commands generated dependencies file for uninstall.
+# This may be replaced when dependencies are built.

+ 2 - 0
build/eye_ros/CMakeFiles/uninstall.dir/compiler_depend.ts

@@ -0,0 +1,2 @@
+# CMAKE generated file: DO NOT EDIT!
+# Timestamp file for custom commands dependencies management for uninstall.

+ 1 - 0
build/eye_ros/CMakeFiles/uninstall.dir/progress.make

@@ -0,0 +1 @@
+

+ 105 - 0
build/eye_ros/CTestConfiguration.ini

@@ -0,0 +1,105 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /home/ubuntu/ws_eye/src/eye_ros
+BuildDirectory: /home/ubuntu/ws_eye/build/eye_ros
+
+# Where to place the cost data store
+CostDataFile: 
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: ubuntu
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: 
+
+# Subprojects
+LabelsForSubprojects: 
+
+# Submission information
+SubmitURL: 
+
+# Dashboard start time
+NightlyStartTime: 
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" "/home/ubuntu/ws_eye/src/eye_ros"
+MakeCommand: 
+DefaultCTestConfigurationType: 
+
+# version control
+UpdateVersionOnly: 
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: 
+CVSUpdateOptions: 
+
+# Subversion options
+SVNCommand: 
+SVNOptions: 
+SVNUpdateOptions: 
+
+# Git options
+GITCommand: 
+GITInitSubmodules: 
+GITUpdateOptions: 
+GITUpdateCustom: 
+
+# Perforce options
+P4Command: 
+P4Client: 
+P4Options: 
+P4UpdateOptions: 
+P4UpdateCustom: 
+
+# Generic update command
+UpdateCommand: 
+UpdateOptions: 
+UpdateType: 
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 11.4.0
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: 
+ValgrindCommand: 
+ValgrindCommandOptions: 
+DrMemoryCommand: 
+DrMemoryCommandOptions: 
+CudaSanitizerCommand: 
+CudaSanitizerCommandOptions: 
+MemoryCheckType: 
+MemoryCheckSanitizerOptions: 
+MemoryCheckCommand: 
+MemoryCheckCommandOptions: 
+MemoryCheckSuppressionFile: 
+
+# Coverage
+CoverageCommand: 
+CoverageExtraFlags: 
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: 
+
+UseLaunchers: 
+CurlOptions: 
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 
+CTestSubmitRetryCount: 

+ 2 - 0
build/eye_ros/CTestCustom.cmake

@@ -0,0 +1,2 @@
+set(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 0)
+set(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 0)

+ 6 - 0
build/eye_ros/CTestTestfile.cmake

@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /home/ubuntu/ws_eye/src/eye_ros
+# Build directory: /home/ubuntu/ws_eye/build/eye_ros
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.

+ 256 - 0
build/eye_ros/Makefile

@@ -0,0 +1,256 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Default target executed when no arguments are given to make.
+default_target: all
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Disable VCS-based implicit rules.
+% : %,v
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/ubuntu/ws_eye/src/eye_ros
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/ubuntu/ws_eye/build/eye_ros
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target test
+test:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
+	/usr/bin/ctest --force-new-ctest-process $(ARGS)
+.PHONY : test
+
+# Special rule for the target test
+test/fast: test
+.PHONY : test/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/cmake-gui -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+.PHONY : list_install_components/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles /home/ubuntu/ws_eye/build/eye_ros//CMakeFiles/progress.marks
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/ws_eye/build/eye_ros/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named uninstall
+
+# Build rule for target.
+uninstall: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 uninstall
+.PHONY : uninstall
+
+# fast build rule for target.
+uninstall/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build
+.PHONY : uninstall/fast
+
+#=============================================================================
+# Target rules for targets named eye_ros_uninstall
+
+# Build rule for target.
+eye_ros_uninstall: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 eye_ros_uninstall
+.PHONY : eye_ros_uninstall
+
+# fast build rule for target.
+eye_ros_uninstall/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/eye_ros_uninstall.dir/build.make CMakeFiles/eye_ros_uninstall.dir/build
+.PHONY : eye_ros_uninstall/fast
+
+#=============================================================================
+# Target rules for targets named ament_cmake_python_copy_eye_ros
+
+# Build rule for target.
+ament_cmake_python_copy_eye_ros: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ament_cmake_python_copy_eye_ros
+.PHONY : ament_cmake_python_copy_eye_ros
+
+# fast build rule for target.
+ament_cmake_python_copy_eye_ros/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build.make CMakeFiles/ament_cmake_python_copy_eye_ros.dir/build
+.PHONY : ament_cmake_python_copy_eye_ros/fast
+
+#=============================================================================
+# Target rules for targets named ament_cmake_python_build_eye_ros_egg
+
+# Build rule for target.
+ament_cmake_python_build_eye_ros_egg: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ament_cmake_python_build_eye_ros_egg
+.PHONY : ament_cmake_python_build_eye_ros_egg
+
+# fast build rule for target.
+ament_cmake_python_build_eye_ros_egg/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build.make CMakeFiles/ament_cmake_python_build_eye_ros_egg.dir/build
+.PHONY : ament_cmake_python_build_eye_ros_egg/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... edit_cache"
+	@echo "... install"
+	@echo "... install/local"
+	@echo "... install/strip"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... test"
+	@echo "... ament_cmake_python_build_eye_ros_egg"
+	@echo "... ament_cmake_python_copy_eye_ros"
+	@echo "... eye_ros_uninstall"
+	@echo "... uninstall"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 14 - 0
build/eye_ros/ament_cmake_core/eye_rosConfig-version.cmake

@@ -0,0 +1,14 @@
+# generated from ament/cmake/core/templates/nameConfig-version.cmake.in
+set(PACKAGE_VERSION "0.0.1")
+
+set(PACKAGE_VERSION_EXACT False)
+set(PACKAGE_VERSION_COMPATIBLE False)
+
+if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_EXACT True)
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
+
+if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()

+ 42 - 0
build/eye_ros/ament_cmake_core/eye_rosConfig.cmake

@@ -0,0 +1,42 @@
+# generated from ament/cmake/core/templates/nameConfig.cmake.in
+
+# prevent multiple inclusion
+if(_eye_ros_CONFIG_INCLUDED)
+  # ensure to keep the found flag the same
+  if(NOT DEFINED eye_ros_FOUND)
+    # explicitly set it to FALSE, otherwise CMake will set it to TRUE
+    set(eye_ros_FOUND FALSE)
+  elseif(NOT eye_ros_FOUND)
+    # use separate condition to avoid uninitialized variable warning
+    set(eye_ros_FOUND FALSE)
+  endif()
+  return()
+endif()
+set(_eye_ros_CONFIG_INCLUDED TRUE)
+
+# output package information
+if(NOT eye_ros_FIND_QUIETLY)
+  message(STATUS "Found eye_ros: 0.0.1 (${eye_ros_DIR})")
+endif()
+
+# warn when using a deprecated package
+if(NOT "" STREQUAL "")
+  set(_msg "Package 'eye_ros' is deprecated")
+  # append custom deprecation text if available
+  if(NOT "" STREQUAL "TRUE")
+    set(_msg "${_msg} ()")
+  endif()
+  # optionally quiet the deprecation message
+  if(NOT ${eye_ros_DEPRECATED_QUIET})
+    message(DEPRECATION "${_msg}")
+  endif()
+endif()
+
+# flag package as ament-based to distinguish it after being find_package()-ed
+set(eye_ros_FOUND_AMENT_PACKAGE TRUE)
+
+# include all config extra files
+set(_extras "")
+foreach(_extra ${_extras})
+  include("${eye_ros_DIR}/${_extra}")
+endforeach()

+ 14 - 0
build/eye_ros/ament_cmake_core/package.cmake

@@ -0,0 +1,14 @@
+set(_AMENT_PACKAGE_NAME "eye_ros")
+set(eye_ros_VERSION "0.0.1")
+set(eye_ros_MAINTAINER "Jerry Liu <helloeath@163.com>")
+set(eye_ros_BUILD_DEPENDS "rclpy" "std_msgs" "sensor_msgs")
+set(eye_ros_BUILDTOOL_DEPENDS "ament_cmake" "ament_cmake_python")
+set(eye_ros_BUILD_EXPORT_DEPENDS "rclpy" "std_msgs" "sensor_msgs")
+set(eye_ros_BUILDTOOL_EXPORT_DEPENDS )
+set(eye_ros_EXEC_DEPENDS "rclpy" "std_msgs" "sensor_msgs")
+set(eye_ros_TEST_DEPENDS "ament_lint_auto" "ament_lint_common")
+set(eye_ros_GROUP_DEPENDS )
+set(eye_ros_MEMBER_OF_GROUPS )
+set(eye_ros_DEPRECATED "")
+set(eye_ros_EXPORT_TAGS)
+list(APPEND eye_ros_EXPORT_TAGS "<build_type>ament_cmake</build_type>")

+ 4 - 0
build/eye_ros/ament_cmake_core/stamps/ament_prefix_path.sh.stamp

@@ -0,0 +1,4 @@
+# copied from
+# ament_cmake_core/cmake/environment_hooks/environment/ament_prefix_path.sh
+
+ament_prepend_unique_value AMENT_PREFIX_PATH "$AMENT_CURRENT_PREFIX"

+ 14 - 0
build/eye_ros/ament_cmake_core/stamps/nameConfig-version.cmake.in.stamp

@@ -0,0 +1,14 @@
+# generated from ament/cmake/core/templates/nameConfig-version.cmake.in
+set(PACKAGE_VERSION "@PACKAGE_VERSION@")
+
+set(PACKAGE_VERSION_EXACT False)
+set(PACKAGE_VERSION_COMPATIBLE False)
+
+if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_EXACT True)
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
+
+if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()

+ 42 - 0
build/eye_ros/ament_cmake_core/stamps/nameConfig.cmake.in.stamp

@@ -0,0 +1,42 @@
+# generated from ament/cmake/core/templates/nameConfig.cmake.in
+
+# prevent multiple inclusion
+if(_@PROJECT_NAME@_CONFIG_INCLUDED)
+  # ensure to keep the found flag the same
+  if(NOT DEFINED @PROJECT_NAME@_FOUND)
+    # explicitly set it to FALSE, otherwise CMake will set it to TRUE
+    set(@PROJECT_NAME@_FOUND FALSE)
+  elseif(NOT @PROJECT_NAME@_FOUND)
+    # use separate condition to avoid uninitialized variable warning
+    set(@PROJECT_NAME@_FOUND FALSE)
+  endif()
+  return()
+endif()
+set(_@PROJECT_NAME@_CONFIG_INCLUDED TRUE)
+
+# output package information
+if(NOT @PROJECT_NAME@_FIND_QUIETLY)
+  message(STATUS "Found @PROJECT_NAME@: @PACKAGE_VERSION@ (${@PROJECT_NAME@_DIR})")
+endif()
+
+# warn when using a deprecated package
+if(NOT "@PACKAGE_DEPRECATED@" STREQUAL "")
+  set(_msg "Package '@PROJECT_NAME@' is deprecated")
+  # append custom deprecation text if available
+  if(NOT "@PACKAGE_DEPRECATED@" STREQUAL "TRUE")
+    set(_msg "${_msg} (@PACKAGE_DEPRECATED@)")
+  endif()
+  # optionally quiet the deprecation message
+  if(NOT ${@PROJECT_NAME@_DEPRECATED_QUIET})
+    message(DEPRECATION "${_msg}")
+  endif()
+endif()
+
+# flag package as ament-based to distinguish it after being find_package()-ed
+set(@PROJECT_NAME@_FOUND_AMENT_PACKAGE TRUE)
+
+# include all config extra files
+set(_extras "@PACKAGE_CONFIG_EXTRA_FILES@")
+foreach(_extra ${_extras})
+  include("${@PROJECT_NAME@_DIR}/${_extra}")
+endforeach()

+ 23 - 0
build/eye_ros/ament_cmake_core/stamps/package.xml.stamp

@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
+<package format="3">
+  <name>eye_ros</name>
+  <version>0.0.1</version>
+  <description>这是一个ROS2包,用于眼睛识别和语音交互</description>
+  <maintainer email="helloeath@163.com">Jerry Liu</maintainer>
+  <license>Apache-2.0</license>
+
+  <buildtool_depend>ament_cmake</buildtool_depend>
+  <buildtool_depend>ament_cmake_python</buildtool_depend>
+
+  <depend>rclpy</depend>
+  <depend>std_msgs</depend>
+  <depend>sensor_msgs</depend>
+
+  <test_depend>ament_lint_auto</test_depend>
+  <test_depend>ament_lint_common</test_depend>
+
+  <export>
+    <build_type>ament_cmake</build_type>
+  </export>
+</package>

+ 150 - 0
build/eye_ros/ament_cmake_core/stamps/package_xml_2_cmake.py.stamp

@@ -0,0 +1,150 @@
+#!/usr/bin/env python3
+
+# Copyright 2014-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.
+
+import argparse
+from collections import OrderedDict
+import os
+import sys
+
+from catkin_pkg.package import parse_package_string
+
+
+def main(argv=sys.argv[1:]):
+    """
+    Extract the information from package.xml and make them accessible to CMake.
+
+    Parse the given package.xml file and
+    print CMake code defining several variables containing the content.
+    """
+    parser = argparse.ArgumentParser(
+        description='Parse package.xml file and print CMake code defining '
+                    'several variables',
+    )
+    parser.add_argument(
+        'package_xml',
+        type=argparse.FileType('r', encoding='utf-8'),
+        help='The path to a package.xml file',
+    )
+    parser.add_argument(
+        'outfile',
+        nargs='?',
+        help='The filename where the output should be written to',
+    )
+    args = parser.parse_args(argv)
+
+    try:
+        package = parse_package_string(
+            args.package_xml.read(), filename=args.package_xml.name)
+    except Exception as e:
+        print("Error parsing '%s':" % args.package_xml.name, file=sys.stderr)
+        raise e
+    finally:
+        args.package_xml.close()
+
+    lines = generate_cmake_code(package)
+    if args.outfile:
+        with open(args.outfile, 'w', encoding='utf-8') as f:
+            for line in lines:
+                f.write('%s\n' % line)
+    else:
+        for line in lines:
+            print(line)
+
+
+def get_dependency_values(key, depends):
+    dependencies = []
+
+    # Filter the dependencies, checking for any condition attributes
+    dependencies.append((key, ' '.join([
+        '"%s"' % str(d) for d in depends
+        if d.condition is None or d.evaluate_condition(os.environ)
+    ])))
+
+    for d in depends:
+        comparisons = [
+            'version_lt',
+            'version_lte',
+            'version_eq',
+            'version_gte',
+            'version_gt']
+        for comp in comparisons:
+            value = getattr(d, comp, None)
+            if value is not None:
+                dependencies.append(('%s_%s_%s' % (key, str(d), comp.upper()),
+                                     '"%s"' % value))
+    return dependencies
+
+
+def generate_cmake_code(package):
+    """
+    Return a list of CMake set() commands containing the manifest information.
+
+    :param package: catkin_pkg.package.Package
+    :returns: list of str
+    """
+    variables = []
+    variables.append(('VERSION', '"%s"' % package.version))
+
+    variables.append((
+        'MAINTAINER',
+        '"%s"' % (', '.join([str(m) for m in package.maintainers]))))
+
+    variables.extend(get_dependency_values('BUILD_DEPENDS',
+                                           package.build_depends))
+    variables.extend(get_dependency_values('BUILDTOOL_DEPENDS',
+                                           package.buildtool_depends))
+    variables.extend(get_dependency_values('BUILD_EXPORT_DEPENDS',
+                                           package.build_export_depends))
+    variables.extend(get_dependency_values('BUILDTOOL_EXPORT_DEPENDS',
+                                           package.buildtool_export_depends))
+    variables.extend(get_dependency_values('EXEC_DEPENDS',
+                                           package.exec_depends))
+    variables.extend(get_dependency_values('TEST_DEPENDS',
+                                           package.test_depends))
+    variables.extend(get_dependency_values('GROUP_DEPENDS',
+                                           package.group_depends))
+    variables.extend(get_dependency_values('MEMBER_OF_GROUPS',
+                                           package.member_of_groups))
+
+    deprecated = [e.content for e in package.exports
+                  if e.tagname == 'deprecated']
+    variables.append(('DEPRECATED',
+                      '"%s"' % ((deprecated[0] if deprecated[0] else 'TRUE')
+                                if deprecated
+                                else '')))
+
+    lines = []
+    lines.append('set(_AMENT_PACKAGE_NAME "%s")' % package.name)
+    for (k, v) in variables:
+        lines.append('set(%s_%s %s)' % (package.name, k, v))
+
+    lines.append('set(%s_EXPORT_TAGS)' % package.name)
+    replaces = OrderedDict()
+    replaces['${prefix}/'] = ''
+    replaces['\\'] = '\\\\'  # escape backslashes
+    replaces['"'] = '\\"'  # prevent double quotes to end the CMake string
+    replaces[';'] = '\\;'  # prevent semicolons to be interpreted as list separators
+    for export in package.exports:
+        export = str(export)
+        for k, v in replaces.items():
+            export = export.replace(k, v)
+        lines.append('list(APPEND %s_EXPORT_TAGS "%s")' % (package.name, export))
+
+    return lines
+
+
+if __name__ == '__main__':
+    main()

+ 5 - 0
build/eye_ros/ament_cmake_core/stamps/path.sh.stamp

@@ -0,0 +1,5 @@
+# copied from ament_cmake_core/cmake/environment_hooks/environment/path.sh
+
+if [ -d "$AMENT_CURRENT_PREFIX/bin" ]; then
+  ament_prepend_unique_value PATH "$AMENT_CURRENT_PREFIX/bin"
+fi

+ 3 - 0
build/eye_ros/ament_cmake_core/stamps/pythonpath.sh.in.stamp

@@ -0,0 +1,3 @@
+# generated from ament_package/template/environment_hook/pythonpath.sh.in
+
+ament_prepend_unique_value PYTHONPATH "$AMENT_CURRENT_PREFIX/@PYTHON_INSTALL_DIR@"

+ 112 - 0
build/eye_ros/ament_cmake_core/stamps/templates_2_cmake.py.stamp

@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+# Copyright 2014-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.
+
+import argparse
+import os
+import sys
+
+from ament_package.templates import get_environment_hook_template_path
+from ament_package.templates import get_package_level_template_names
+from ament_package.templates import get_package_level_template_path
+from ament_package.templates import get_prefix_level_template_names
+from ament_package.templates import get_prefix_level_template_path
+
+IS_WINDOWS = os.name == 'nt'
+
+
+def main(argv=sys.argv[1:]):
+    """
+    Extract the information about templates provided by ament_package.
+
+    Call the API provided by ament_package and
+    print CMake code defining several variables containing information about
+    the available templates.
+    """
+    parser = argparse.ArgumentParser(
+        description='Extract information about templates provided by '
+                    'ament_package and print CMake code defining several '
+                    'variables',
+    )
+    parser.add_argument(
+        'outfile',
+        nargs='?',
+        help='The filename where the output should be written to',
+    )
+    args = parser.parse_args(argv)
+
+    lines = generate_cmake_code()
+    if args.outfile:
+        basepath = os.path.dirname(args.outfile)
+        if not os.path.exists(basepath):
+            os.makedirs(basepath)
+        with open(args.outfile, 'w') as f:
+            for line in lines:
+                f.write('%s\n' % line)
+    else:
+        for line in lines:
+            print(line)
+
+
+def generate_cmake_code():
+    """
+    Return a list of CMake set() commands containing the template information.
+
+    :returns: list of str
+    """
+    variables = []
+
+    if not IS_WINDOWS:
+        variables.append((
+            'ENVIRONMENT_HOOK_LIBRARY_PATH',
+            '"%s"' % get_environment_hook_template_path('library_path.sh')))
+    else:
+        variables.append(('ENVIRONMENT_HOOK_LIBRARY_PATH', ''))
+
+    ext = '.bat.in' if IS_WINDOWS else '.sh.in'
+    variables.append((
+        'ENVIRONMENT_HOOK_PYTHONPATH',
+        '"%s"' % get_environment_hook_template_path('pythonpath' + ext)))
+
+    templates = []
+    for name in get_package_level_template_names():
+        templates.append('"%s"' % get_package_level_template_path(name))
+    variables.append((
+        'PACKAGE_LEVEL',
+        templates))
+
+    templates = []
+    for name in get_prefix_level_template_names():
+        templates.append('"%s"' % get_prefix_level_template_path(name))
+    variables.append((
+        'PREFIX_LEVEL',
+        templates))
+
+    lines = []
+    for (k, v) in variables:
+        if isinstance(v, list):
+            lines.append('set(ament_cmake_package_templates_%s "")' % k)
+            for vv in v:
+                lines.append('list(APPEND ament_cmake_package_templates_%s %s)'
+                             % (k, vv))
+        else:
+            lines.append('set(ament_cmake_package_templates_%s %s)' % (k, v))
+    # Ensure backslashes are replaced with forward slashes because CMake cannot
+    # parse files with backslashes in it.
+    return [line.replace('\\', '/') for line in lines]
+
+
+if __name__ == '__main__':
+    main()

+ 1 - 0
build/eye_ros/ament_cmake_environment_hooks/ament_prefix_path.dsv

@@ -0,0 +1 @@
+prepend-non-duplicate;AMENT_PREFIX_PATH;

+ 46 - 0
build/eye_ros/ament_cmake_environment_hooks/local_setup.bash

@@ -0,0 +1,46 @@
+# generated from ament_package/template/package_level/local_setup.bash.in
+
+# source local_setup.sh from same directory as this file
+_this_path=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" && pwd)
+# provide AMENT_CURRENT_PREFIX to shell script
+AMENT_CURRENT_PREFIX=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." && pwd)
+# store AMENT_CURRENT_PREFIX to restore it before each environment hook
+_package_local_setup_AMENT_CURRENT_PREFIX=$AMENT_CURRENT_PREFIX
+
+# trace output
+if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
+  echo "# . \"$_this_path/local_setup.sh\""
+fi
+. "$_this_path/local_setup.sh"
+unset _this_path
+
+# unset AMENT_ENVIRONMENT_HOOKS
+# if not appending to them for return
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+# restore AMENT_CURRENT_PREFIX before evaluating the environment hooks
+AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
+# list all environment hooks of this package
+
+# source all shell-specific environment hooks of this package
+# if not returning them
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  _package_local_setup_IFS=$IFS
+  IFS=":"
+  for _hook in $AMENT_ENVIRONMENT_HOOKS; do
+    # restore AMENT_CURRENT_PREFIX for each environment hook
+    AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
+    # restore IFS before sourcing other files
+    IFS=$_package_local_setup_IFS
+    . "$_hook"
+  done
+  unset _hook
+  IFS=$_package_local_setup_IFS
+  unset _package_local_setup_IFS
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+unset _package_local_setup_AMENT_CURRENT_PREFIX
+unset AMENT_CURRENT_PREFIX

+ 3 - 0
build/eye_ros/ament_cmake_environment_hooks/local_setup.dsv

@@ -0,0 +1,3 @@
+source;share/eye_ros/environment/ament_prefix_path.sh
+source;share/eye_ros/environment/path.sh
+source;share/eye_ros/environment/pythonpath.sh

+ 185 - 0
build/eye_ros/ament_cmake_environment_hooks/local_setup.sh

@@ -0,0 +1,185 @@
+# generated from ament_package/template/package_level/local_setup.sh.in
+
+# since this file is sourced use either the provided AMENT_CURRENT_PREFIX
+# or fall back to the destination set at configure time
+: ${AMENT_CURRENT_PREFIX:="/home/ubuntu/ws_eye/install/eye_ros"}
+if [ ! -d "$AMENT_CURRENT_PREFIX" ]; then
+  if [ -z "$COLCON_CURRENT_PREFIX" ]; then
+    echo "The compile time prefix path '$AMENT_CURRENT_PREFIX' doesn't " \
+      "exist. Consider sourcing a different extension than '.sh'." 1>&2
+  else
+    AMENT_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX"
+  fi
+fi
+
+# function to append values to environment variables
+# using colons as separators and avoiding leading separators
+ament_append_value() {
+  # arguments
+  _listname="$1"
+  _value="$2"
+  #echo "listname $_listname"
+  #eval echo "list value \$$_listname"
+  #echo "value $_value"
+
+  # avoid leading separator
+  eval _values=\"\$$_listname\"
+  if [ -z "$_values" ]; then
+    eval export $_listname=\"$_value\"
+    #eval echo "set list \$$_listname"
+  else
+    # field separator must not be a colon
+    _ament_append_value_IFS=$IFS
+    unset IFS
+    eval export $_listname=\"\$$_listname:$_value\"
+    #eval echo "append list \$$_listname"
+    IFS=$_ament_append_value_IFS
+    unset _ament_append_value_IFS
+  fi
+  unset _values
+
+  unset _value
+  unset _listname
+}
+
+# function to append non-duplicate values to environment variables
+# using colons as separators and avoiding leading separators
+ament_append_unique_value() {
+  # arguments
+  _listname=$1
+  _value=$2
+  #echo "listname $_listname"
+  #eval echo "list value \$$_listname"
+  #echo "value $_value"
+
+  # check if the list contains the value
+  eval _values=\$$_listname
+  _duplicate=
+  _ament_append_unique_value_IFS=$IFS
+  IFS=":"
+  if [ "$AMENT_SHELL" = "zsh" ]; then
+    ament_zsh_to_array _values
+  fi
+  for _item in $_values; do
+    # ignore empty strings
+    if [ -z "$_item" ]; then
+      continue
+    fi
+    if [ $_item = $_value ]; then
+      _duplicate=1
+    fi
+  done
+  unset _item
+
+  # append only non-duplicates
+  if [ -z "$_duplicate" ]; then
+    # avoid leading separator
+    if [ -z "$_values" ]; then
+      eval $_listname=\"$_value\"
+      #eval echo "set list \$$_listname"
+    else
+      # field separator must not be a colon
+      unset IFS
+      eval $_listname=\"\$$_listname:$_value\"
+      #eval echo "append list \$$_listname"
+    fi
+  fi
+  IFS=$_ament_append_unique_value_IFS
+  unset _ament_append_unique_value_IFS
+  unset _duplicate
+  unset _values
+
+  unset _value
+  unset _listname
+}
+
+# function to prepend non-duplicate values to environment variables
+# using colons as separators and avoiding trailing separators
+ament_prepend_unique_value() {
+  # arguments
+  _listname="$1"
+  _value="$2"
+  #echo "listname $_listname"
+  #eval echo "list value \$$_listname"
+  #echo "value $_value"
+
+  # check if the list contains the value
+  eval _values=\"\$$_listname\"
+  _duplicate=
+  _ament_prepend_unique_value_IFS=$IFS
+  IFS=":"
+  if [ "$AMENT_SHELL" = "zsh" ]; then
+    ament_zsh_to_array _values
+  fi
+  for _item in $_values; do
+    # ignore empty strings
+    if [ -z "$_item" ]; then
+      continue
+    fi
+    if [ "$_item" = "$_value" ]; then
+      _duplicate=1
+    fi
+  done
+  unset _item
+
+  # prepend only non-duplicates
+  if [ -z "$_duplicate" ]; then
+    # avoid trailing separator
+    if [ -z "$_values" ]; then
+      eval export $_listname=\"$_value\"
+      #eval echo "set list \$$_listname"
+    else
+      # field separator must not be a colon
+      unset IFS
+      eval export $_listname=\"$_value:\$$_listname\"
+      #eval echo "prepend list \$$_listname"
+    fi
+  fi
+  IFS=$_ament_prepend_unique_value_IFS
+  unset _ament_prepend_unique_value_IFS
+  unset _duplicate
+  unset _values
+
+  unset _value
+  unset _listname
+}
+
+# unset AMENT_ENVIRONMENT_HOOKS
+# if not appending to them for return
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+# list all environment hooks of this package
+ament_append_value AMENT_ENVIRONMENT_HOOKS "$AMENT_CURRENT_PREFIX/share/eye_ros/environment/ament_prefix_path.sh"
+ament_append_value AMENT_ENVIRONMENT_HOOKS "$AMENT_CURRENT_PREFIX/share/eye_ros/environment/path.sh"
+ament_append_value AMENT_ENVIRONMENT_HOOKS "$AMENT_CURRENT_PREFIX/share/eye_ros/environment/pythonpath.sh"
+
+# source all shell-specific environment hooks of this package
+# if not returning them
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  _package_local_setup_IFS=$IFS
+  IFS=":"
+  if [ "$AMENT_SHELL" = "zsh" ]; then
+    ament_zsh_to_array AMENT_ENVIRONMENT_HOOKS
+  fi
+  for _hook in $AMENT_ENVIRONMENT_HOOKS; do
+    if [ -f "$_hook" ]; then
+      # restore IFS before sourcing other files
+      IFS=$_package_local_setup_IFS
+      # trace output
+      if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
+        echo "# . \"$_hook\""
+      fi
+      . "$_hook"
+    fi
+  done
+  unset _hook
+  IFS=$_package_local_setup_IFS
+  unset _package_local_setup_IFS
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+# reset AMENT_CURRENT_PREFIX after each package
+# allowing to source multiple package-level setup files
+unset AMENT_CURRENT_PREFIX

+ 59 - 0
build/eye_ros/ament_cmake_environment_hooks/local_setup.zsh

@@ -0,0 +1,59 @@
+# generated from ament_package/template/package_level/local_setup.zsh.in
+
+AMENT_SHELL=zsh
+
+# source local_setup.sh from same directory as this file
+_this_path=$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)
+# provide AMENT_CURRENT_PREFIX to shell script
+AMENT_CURRENT_PREFIX=$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)
+# store AMENT_CURRENT_PREFIX to restore it before each environment hook
+_package_local_setup_AMENT_CURRENT_PREFIX=$AMENT_CURRENT_PREFIX
+
+# function to convert array-like strings into arrays
+# to wordaround SH_WORD_SPLIT not being set
+ament_zsh_to_array() {
+  local _listname=$1
+  local _dollar="$"
+  local _split="{="
+  local _to_array="(\"$_dollar$_split$_listname}\")"
+  eval $_listname=$_to_array
+}
+
+# trace output
+if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
+  echo "# . \"$_this_path/local_setup.sh\""
+fi
+# the package-level local_setup file unsets AMENT_CURRENT_PREFIX
+. "$_this_path/local_setup.sh"
+unset _this_path
+
+# unset AMENT_ENVIRONMENT_HOOKS
+# if not appending to them for return
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+# restore AMENT_CURRENT_PREFIX before evaluating the environment hooks
+AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
+# list all environment hooks of this package
+
+# source all shell-specific environment hooks of this package
+# if not returning them
+if [ -z "$AMENT_RETURN_ENVIRONMENT_HOOKS" ]; then
+  _package_local_setup_IFS=$IFS
+  IFS=":"
+  for _hook in $AMENT_ENVIRONMENT_HOOKS; do
+    # restore AMENT_CURRENT_PREFIX for each environment hook
+    AMENT_CURRENT_PREFIX=$_package_local_setup_AMENT_CURRENT_PREFIX
+    # restore IFS before sourcing other files
+    IFS=$_package_local_setup_IFS
+    . "$_hook"
+  done
+  unset _hook
+  IFS=$_package_local_setup_IFS
+  unset _package_local_setup_IFS
+  unset AMENT_ENVIRONMENT_HOOKS
+fi
+
+unset _package_local_setup_AMENT_CURRENT_PREFIX
+unset AMENT_CURRENT_PREFIX

+ 4 - 0
build/eye_ros/ament_cmake_environment_hooks/package.dsv

@@ -0,0 +1,4 @@
+source;share/eye_ros/local_setup.bash
+source;share/eye_ros/local_setup.dsv
+source;share/eye_ros/local_setup.sh
+source;share/eye_ros/local_setup.zsh

+ 1 - 0
build/eye_ros/ament_cmake_environment_hooks/path.dsv

@@ -0,0 +1 @@
+prepend-non-duplicate-if-exists;PATH;bin

+ 1 - 0
build/eye_ros/ament_cmake_environment_hooks/pythonpath.dsv

@@ -0,0 +1 @@
+prepend-non-duplicate;PYTHONPATH;local/lib/python3.10/dist-packages

+ 3 - 0
build/eye_ros/ament_cmake_environment_hooks/pythonpath.sh

@@ -0,0 +1,3 @@
+# generated from ament_package/template/environment_hook/pythonpath.sh.in
+
+ament_prepend_unique_value PYTHONPATH "$AMENT_CURRENT_PREFIX/local/lib/python3.10/dist-packages"

+ 1 - 0
build/eye_ros/ament_cmake_index/share/ament_index/resource_index/package_run_dependencies/eye_ros

@@ -0,0 +1 @@
+rclpy;std_msgs;sensor_msgs;ament_lint_auto;ament_lint_common

+ 0 - 0
build/eye_ros/ament_cmake_index/share/ament_index/resource_index/packages/eye_ros


+ 1 - 0
build/eye_ros/ament_cmake_index/share/ament_index/resource_index/parent_prefix_path/eye_ros

@@ -0,0 +1 @@
+/home/ubuntu/cyj_code/pm01_deploy/install/interface_protocol:/home/ubuntu/realsense_driver_cyj/install/realsense2_rviz_plugin:/home/ubuntu/realsense_driver_cyj/install/realsense2_ros_mqtt_bridge:/home/ubuntu/realsense_driver_cyj/install/realsense2_description:/home/ubuntu/realsense_driver_cyj/install/realsense2_camera:/home/ubuntu/realsense_driver_cyj/install/realsense2_camera_msgs:/home/ubuntu/ws_eye/install/voice_lrj:/home/ubuntu/ws_eye/install/interface_protocol:/home/ubuntu/ws_eye/install/eye_ros:/home/ubuntu/cyj_code/voice_control/install/voice_assistant:/home/ubuntu/source/engineai_workspace/install/interface_example:/home/ubuntu/source/engineai_workspace/install/interface_protocol:/home/ubuntu/source/engineai_workspace/install/eye_ros:/opt/ros/humble

+ 14 - 0
build/eye_ros/ament_cmake_package_templates/templates.cmake

@@ -0,0 +1,14 @@
+set(ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/environment_hook/library_path.sh")
+set(ament_cmake_package_templates_ENVIRONMENT_HOOK_PYTHONPATH "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/environment_hook/pythonpath.sh.in")
+set(ament_cmake_package_templates_PACKAGE_LEVEL "")
+list(APPEND ament_cmake_package_templates_PACKAGE_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.bash.in")
+list(APPEND ament_cmake_package_templates_PACKAGE_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.sh.in")
+list(APPEND ament_cmake_package_templates_PACKAGE_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/package_level/local_setup.zsh.in")
+set(ament_cmake_package_templates_PREFIX_LEVEL "")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/local_setup.bash")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/local_setup.sh.in")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/local_setup.zsh")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/setup.bash")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/setup.sh.in")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/setup.zsh")
+list(APPEND ament_cmake_package_templates_PREFIX_LEVEL "/opt/ros/humble/lib/python3.10/site-packages/ament_package/template/prefix_level/_local_setup_util.py")

+ 10 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/PKG-INFO

@@ -0,0 +1,10 @@
+Metadata-Version: 2.1
+Name: eye-ros
+Version: 0.0.1
+Summary: UNKNOWN
+Home-page: UNKNOWN
+License: UNKNOWN
+Platform: UNKNOWN
+
+UNKNOWN
+

+ 17 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/SOURCES.txt

@@ -0,0 +1,17 @@
+setup.py
+eye_ros/__init__.py
+eye_ros/asr_node.py
+eye_ros/asr_test.py
+eye_ros/detect_node.py
+eye_ros/distance_node.py
+eye_ros/face_recognition.py
+eye_ros/face_recognition_node.py
+eye_ros/llm_node.py
+eye_ros/open3d_node.py
+eye_ros/test_text.py
+eye_ros/tts_node.py
+eye_ros/wake_word_node.py
+eye_ros.egg-info/PKG-INFO
+eye_ros.egg-info/SOURCES.txt
+eye_ros.egg-info/dependency_links.txt
+eye_ros.egg-info/top_level.txt

+ 1 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/dependency_links.txt

@@ -0,0 +1 @@
+

+ 1 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros.egg-info/top_level.txt

@@ -0,0 +1 @@
+eye_ros

+ 0 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/__init__.py


TEMPAT SAMPAH
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/__pycache__/llm_node.cpython-310.pyc


+ 324 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/asr_node.py

@@ -0,0 +1,324 @@
+#!/usr/bin/env python3
+"""
+ASR语音转文字ROS2节点
+
+功能:
+1. 使用阿里云ASR API进行语音识别
+2. 接收麦克风音频输入并转换为文字
+3. 处理识别结果(检查退出词、休眠词等)
+4. 发布文字话题
+"""
+
+import os
+import time
+import rclpy
+from rclpy.node import Node
+from std_msgs.msg import String
+import sys
+import traceback
+import threading
+import dashscope
+from dashscope.audio.asr import Recognition, RecognitionCallback, RecognitionResult
+import pyaudio
+
+class WakeWordDetector:
+    """语音唤醒检测器"""
+    
+    def __init__(self):
+        self.wake_words = ["优宝同学","又把同学","有保同学","你好优宝"]
+        self.sleep_words = ["拜拜", "再见", "休息吧", "睡觉吧"]
+        self.exit_words = ["关闭程序", "退出程序", "彻底退出"]
+        
+        try:
+            from pypinyin import lazy_pinyin
+            self.wake_words_pinyin = {
+                word: ''.join(lazy_pinyin(word)) 
+                for word in self.wake_words
+            }
+        except ImportError:
+            self.wake_words_pinyin = None
+    
+    def check_wake_word(self, text):
+        """检查是否包含唤醒词(支持拼音模糊匹配)"""
+        if not text:
+            return False
+        
+        for wake_word in self.wake_words:
+            if wake_word in text:
+                return True
+        
+        if self.wake_words_pinyin:
+            try:
+                from pypinyin import lazy_pinyin
+                text_pinyin = ''.join(lazy_pinyin(text))
+                
+                for wake_word, wake_pinyin in self.wake_words_pinyin.items():
+                    if wake_pinyin in text_pinyin:
+                        return True
+                    
+                    similarity = self._calculate_similarity(wake_pinyin, text_pinyin)
+                    if similarity > 0.7:
+                        return True
+                        
+            except Exception:
+                pass
+        
+        return False
+    
+    def check_sleep_word(self, text):
+        """检查是否包含休眠词(支持拼音匹配)"""
+        if not text:
+            return False
+        
+        for sleep_word in self.sleep_words:
+            if sleep_word in text:
+                return True
+        
+        if self.wake_words_pinyin:
+            try:
+                from pypinyin import lazy_pinyin
+                text_pinyin = ''.join(lazy_pinyin(text))
+                for sleep_word in self.sleep_words:
+                    sleep_pinyin = ''.join(lazy_pinyin(sleep_word))
+                    if sleep_pinyin in text_pinyin:
+                        return True
+            except:
+                pass
+        
+        return False
+    
+    def check_exit_word(self, text):
+        """检查是否包含退出程序词(支持拼音匹配)"""
+        if not text:
+            return False
+        
+        for exit_word in self.exit_words:
+            if exit_word in text:
+                return True
+        
+        if self.wake_words_pinyin:
+            try:
+                from pypinyin import lazy_pinyin
+                text_pinyin = ''.join(lazy_pinyin(text))
+                for exit_word in self.exit_words:
+                    exit_pinyin = ''.join(lazy_pinyin(exit_word))
+                    if exit_pinyin in text_pinyin:
+                        return True
+            except:
+                pass
+        
+        return False
+    
+    def _calculate_similarity(self, s1, s2):
+        """计算两个拼音字符串的相似度(编辑距离)"""
+        if not s1 or not s2:
+            return 0.0
+        
+        len1, len2 = len(s1), len(s2)
+        dp = [[0] * (len2 + 1) for _ in range(len1 + 1)]
+        
+        for i in range(len1 + 1):
+            dp[i][0] = i
+        for j in range(len2 + 1):
+            dp[0][j] = j
+        
+        for i in range(1, len1 + 1):
+            for j in range(1, len2 + 1):
+                if s1[i-1] == s2[j-1]:
+                    dp[i][j] = dp[i-1][j-1]
+                else:
+                    dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
+        
+        distance = dp[len1][len2]
+        max_len = max(len1, len2)
+        similarity = 1 - (distance / max_len) if max_len > 0 else 0
+        
+        return similarity
+
+class ASRRecognitionCallback(RecognitionCallback):
+    """阿里云ASR识别回调类"""
+    
+    def __init__(self, node):
+        super().__init__()
+        self.node = node
+        self.current_text = ""
+    
+    def on_open(self) -> None:
+        self.node.get_logger().info('ASR连接已建立')
+    
+    def on_close(self) -> None:
+        self.node.get_logger().info('ASR连接已关闭')
+    
+    def on_complete(self) -> None:
+        self.node.get_logger().info('ASR识别完成')
+    
+    def on_error(self, message) -> None:
+        self.node.get_logger().error(f'ASR识别错误: {message.message}')
+    
+    def on_event(self, result) -> None:
+        sentence = result.get_sentence()
+        if 'text' in sentence:
+            text = sentence['text']
+            if text:
+                self.node.get_logger().info(f'识别文本: {text}')
+                
+                if RecognitionResult.is_sentence_end(sentence):
+                    self.node._process_recognition_result(text)
+
+class ASRNode(Node):
+    """ASR语音转文字ROS2节点"""
+    
+    def __init__(self):
+        super().__init__('asr_node')
+        
+        self.declare_parameter('api_key', 'sk-c37ab757225d4891968c9e9963b61d69')
+        self.declare_parameter('sample_rate', 16000)
+        self.declare_parameter('channels', 1)
+        self.declare_parameter('chunk_size', 3200)
+        
+        self.api_key = self.get_parameter('api_key').value
+        self.sample_rate = self.get_parameter('sample_rate').value
+        self.channels = self.get_parameter('channels').value
+        self.chunk_size = self.get_parameter('chunk_size').value
+        
+        dashscope.api_key = self.api_key
+        
+        self.text_publisher = self.create_publisher(String, 'asr/text', 10)
+        self.command_publisher = self.create_publisher(String, 'asr/command', 10)
+        
+        self.wake_detector = WakeWordDetector()
+        
+        self.recognition = None
+        self.callback = None
+        self.pyaudio = None
+        self.stream = None
+        self.is_running = False
+        self.recognition_thread = None
+        
+        self._init_asr()
+        
+        self.get_logger().info('ASR语音转文字节点初始化完成')
+    
+    def _init_asr(self):
+        """初始化ASR识别"""
+        try:
+            self.callback = ASRRecognitionCallback(self)
+            
+            self.recognition = Recognition(
+                model='paraformer-realtime-v2',
+                format='pcm',
+                sample_rate=self.sample_rate,
+                language_hints=['zh', 'en'],
+                callback=self.callback
+            )
+            
+            self.recognition.start()
+            
+            self.pyaudio = pyaudio.PyAudio()
+            self.stream = self.pyaudio.open(
+                format=pyaudio.paInt16,
+                channels=self.channels,
+                rate=self.sample_rate,
+                input=True,
+                frames_per_buffer=self.chunk_size
+            )
+            
+            self.is_running = True
+            self.recognition_thread = threading.Thread(target=self._recognition_loop, daemon=True)
+            self.recognition_thread.start()
+            
+            self.get_logger().info('ASR识别服务已启动')
+        except Exception as e:
+            self.get_logger().error(f'初始化ASR失败: {e}')
+            traceback.print_exc()
+    
+    def _recognition_loop(self):
+        """识别循环,持续读取音频并发送给ASR服务"""
+        while self.is_running and self.stream and self.stream.is_active():
+            try:
+                data = self.stream.read(self.chunk_size, exception_on_overflow=False)
+                if self.recognition:
+                    self.recognition.send_audio_frame(data)
+            except Exception as e:
+                self.get_logger().error(f'读取音频数据失败: {e}')
+                break
+    
+    def _process_recognition_result(self, text):
+        """处理识别结果"""
+        if not text:
+            return
+        
+        if self.wake_detector.check_exit_word(text):
+            self.get_logger().info('检测到退出程序指令')
+            msg = String()
+            msg.data = 'exit'
+            self.command_publisher.publish(msg)
+            return
+        
+        if self.wake_detector.check_sleep_word(text):
+            self.get_logger().info('检测到休眠指令')
+            msg = String()
+            msg.data = 'sleep'
+            self.command_publisher.publish(msg)
+            return
+        
+        if self.wake_detector.check_wake_word(text):
+            self.get_logger().info('检测到唤醒词')
+            original_text = text
+            for wake_word in self.wake_detector.wake_words:
+                text = text.replace(wake_word, "").strip()
+            
+            text = text.strip(',。!?、;:,.!?;: ')
+            
+            self.get_logger().info(f'去除唤醒词后: {text}')
+        
+        if text:
+            msg = String()
+            msg.data = text
+            self.text_publisher.publish(msg)
+            self.get_logger().info(f'发布ASR识别结果: {text}')
+    
+    def destroy_node(self):
+        """销毁节点,释放资源"""
+        self.is_running = False
+        
+        if self.recognition_thread and self.recognition_thread.is_alive():
+            self.recognition_thread.join(timeout=2)
+        
+        if self.stream:
+            try:
+                self.stream.stop_stream()
+                self.stream.close()
+            except:
+                pass
+        
+        if self.pyaudio:
+            try:
+                self.pyaudio.terminate()
+            except:
+                pass
+        
+        if self.recognition:
+            try:
+                self.recognition.stop()
+            except:
+                pass
+        
+        super().destroy_node()
+
+def main(args=None):
+    """主函数"""
+    rclpy.init(args=args)
+    
+    node = ASRNode()
+    
+    try:
+        rclpy.spin(node)
+    except KeyboardInterrupt:
+        pass
+    finally:
+        node.destroy_node()
+        rclpy.shutdown()
+
+if __name__ == '__main__':
+    main()

+ 94 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/asr_test.py

@@ -0,0 +1,94 @@
+import pyaudio
+import wave
+import threading
+import time
+import numpy as np
+from xinference.client import Client
+
+class StreamingASR:
+    def __init__(self, server_url="http://124.93.18.180:9997", model_name="whisper-large-v3"):
+        self.client = Client(server_url)
+        self.model = self.client.get_model(model_name)
+        self.is_recording = False
+        self.audio_data = []
+        self.chunk_duration = 5
+        self.sample_rate = 16000
+        self.channels = 1
+        self.chunk_size = 1024
+        self.silence_threshold = 500
+        self.silence_duration = 1.0
+        self.silence_counter = 0
+        
+    def calculate_audio_energy(self, audio_chunk):
+        audio_array = np.frombuffer(audio_chunk, dtype=np.int16)
+        energy = np.sqrt(np.mean(audio_array.astype(np.float32) ** 2))
+        return energy
+    
+    def record_audio(self):
+        audio = pyaudio.PyAudio()
+        stream = audio.open(
+            format=pyaudio.paInt16,
+            channels=self.channels,
+            rate=self.sample_rate,
+            input=True,
+            frames_per_buffer=self.chunk_size
+        )
+        
+        print("开始录音... (检测到1秒静音自动结束)")
+        self.is_recording = True
+        self.silence_counter = 0
+        
+        try:
+            while self.is_recording:
+                data = stream.read(self.chunk_size)
+                self.audio_data.append(data)
+                
+                energy = self.calculate_audio_energy(data)
+                if energy < self.silence_threshold:
+                    self.silence_counter += self.chunk_size / self.sample_rate
+                else:
+                    self.silence_counter = 0
+                
+                if self.silence_counter >= self.silence_duration:
+                    print(f"检测到{self.silence_duration}秒静音,结束录音")
+                    self.is_recording = False
+                    break
+                
+                if len(self.audio_data) * self.chunk_size >= self.sample_rate * 2 * self.chunk_duration:
+                    self.process_audio_chunk()
+                    
+        except KeyboardInterrupt:
+            print("\n停止录音")
+        finally:
+            stream.stop_stream()
+            stream.close()
+            audio.terminate()
+            
+            if self.audio_data:
+                self.process_audio_chunk()
+    
+    def process_audio_chunk(self):
+        import io
+        audio_bytes = b''.join(self.audio_data)
+        
+        audio_file = io.BytesIO(audio_bytes)
+        audio_file.name = "audio.wav"
+        
+        try:
+            transcription = self.model.transcriptions(audio_file.read())
+            if transcription.text.strip():
+                print(f"识别结果: {transcription.text}")
+        except Exception as e:
+            print(f"识别错误: {e}")
+        
+        self.audio_data = []
+    
+    def start_streaming(self):
+        record_thread = threading.Thread(target=self.record_audio)
+        record_thread.start()
+        return record_thread
+
+if __name__ == "__main__":
+    asr = StreamingASR()
+    thread = asr.start_streaming()
+    thread.join()

+ 1 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/build/.built_by

@@ -0,0 +1 @@
+colcon

+ 0 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/build/COLCON_IGNORE


+ 57 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/detect_node.py

@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from cv_bridge import CvBridge
+import freetype
+import cv2
+
+class DetectSubscriber(Node):
+    def __init__(self):
+        super().__init__("detect_node")
+        
+        # 初始化CvBridge
+        self.bridge = CvBridge()
+        
+        # 订阅detect话题
+        self.subscription = self.create_subscription(
+            Image,
+            'detect',
+            self.image_callback,
+            10
+        )
+        
+        self.subscription
+        
+        self.get_logger().info('检测节点已启动,正在监听 detect 话题...')
+    
+    def image_callback(self, msg):
+        try:
+            # 将ROS图像消息转换为OpenCV格式
+            cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')
+            
+            # 显示图像
+            cv2.imshow('Detect Image', cv_image)
+            cv2.waitKey(1)
+            
+            # 输出图像信息
+            self.get_logger().info(f'收到检测图像:{msg.width}x{msg.height}, 时间戳: {msg.header.stamp.sec}.{msg.header.stamp.nanosec}')
+            
+        except Exception as e:
+            self.get_logger().error(f'处理图像失败:{str(e)}')
+
+def main(args=None):
+    rclpy.init(args=args)
+    node = DetectSubscriber()
+    
+    try:
+        rclpy.spin(node)
+    except KeyboardInterrupt:
+        pass
+    finally:
+        cv2.destroyAllWindows()
+        node.destroy_node()
+        rclpy.shutdown()
+
+if __name__ == '__main__':
+    main()

+ 235 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/distance_node.py

@@ -0,0 +1,235 @@
+#!/usr/bin/env python3
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image, CameraInfo
+from cv_bridge import CvBridge
+import cv2
+import numpy as np
+from ultralytics import YOLO
+import open3d as o3d
+import message_filters
+from PIL import Image as PILImage, ImageDraw, ImageFont
+
+class YoloRealSenseFusionNode(Node):
+    def __init__(self):
+        super().__init__('yolo_realsense_fusion_node')
+        
+        # 1. 加载 YOLO 模型
+        try:
+            self.model = YOLO("yolo11n.pt") 
+        except Exception as e:
+            self.get_logger().error(f'Failed to load model: {e}')
+            raise e
+
+        self.bridge = CvBridge()
+
+        # 2. 订阅话题 (确保 realsense-ros 启动时设置了 align_depth:=true)
+        self.image_sub = message_filters.Subscriber(self, Image, '/camera/camera/color/image_raw')
+        self.depth_sub = message_filters.Subscriber(self, Image, '/camera/camera/depth/image_rect_raw')
+        # 订阅相机内参
+        self.info_sub = self.create_subscription(CameraInfo, '/camera/camera/depth/camera_info', self.info_callback, 10)
+
+        # 时间同步器:确保 RGB 和深度帧匹配
+        self.ts = message_filters.ApproximateTimeSynchronizer(
+            [self.image_sub, self.depth_sub], 
+            queue_size=10, 
+            slop=0.1
+        )
+        self.ts.registerCallback(self.callback)
+
+        # 发布话题
+        self.image_pub = self.create_publisher(Image, 'detect', 10)
+
+        self.intrinsics = None
+        self.get_logger().info('YOLO RealSense 融合节点已启动')
+        
+        # 初始化中文字体
+        try:
+            self.font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 20)
+        except:
+            try:
+                self.font = ImageFont.truetype("/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc", 20)
+            except:
+                self.font = ImageFont.load_default()
+                self.get_logger().warn('无法加载中文字体,使用默认字体')
+
+    def calculate_object_dimensions(self, pcd):
+        """
+        计算点云的尺寸(长、宽、高)
+        使用轴对齐边界框(AABB)计算
+        """
+        if pcd.is_empty() or len(pcd.points) == 0:
+            return None, None, None
+        
+        try:
+            # 获取轴对齐边界框
+            bbox = pcd.get_axis_aligned_bounding_box()
+            
+            # 获取边界框的尺寸
+            size = bbox.get_extent()
+            
+            # size[0]: X方向宽度(左右)
+            # size[1]: Y方向高度(上下)
+            # size[2]: Z方向深度(前后)
+            width = size[0]
+            height = size[1]
+            depth = size[2]
+            
+            return width, height, depth
+        except Exception as e:
+            self.get_logger().warn(f'计算尺寸失败: {e}')
+            return None, None, None
+
+    def info_callback(self, msg):
+        # 初始化 Open3D 相机内参
+        if self.intrinsics is None:
+            self.intrinsics = o3d.camera.PinholeCameraIntrinsic(
+                msg.width, msg.height, msg.k[0], msg.k[4], msg.k[2], msg.k[5]
+            )
+            self.get_logger().info('相机内参已初始化')
+
+    def callback(self, color_msg, depth_msg):
+        if self.intrinsics is None:
+            return
+
+        try:
+            # 转换 ROS 图像为 OpenCV 格式
+            color_image = self.bridge.imgmsg_to_cv2(color_msg, desired_encoding='bgr8')
+            depth_image = self.bridge.imgmsg_to_cv2(depth_msg, desired_encoding='16UC1')
+
+            # YOLO 推理
+            results = self.model(color_image, conf=0.5, verbose=False)
+            boxes = results[0].boxes.xyxy.cpu().numpy()
+            classes = results[0].boxes.cls.cpu().numpy()
+            names = results[0].names
+
+            annotated_image = color_image.copy()
+
+            for box, cls in zip(boxes, classes):
+                x1, y1, x2, y2 = map(int, box)
+                obj_name = names[int(cls)]
+
+                # 边界框有效性检查
+                img_height, img_width = color_image.shape[:2]
+                # 确保边界框在图像范围内
+                x1 = max(0, min(x1, img_width - 1))
+                y1 = max(0, min(y1, img_height - 1))
+                x2 = max(0, min(x2, img_width - 1))
+                y2 = max(0, min(y2, img_height - 1))
+                
+                # 确保边界框有有效尺寸
+                if x2 <= x1 or y2 <= y1:
+                    self.get_logger().warn(f"边界框尺寸无效:({x1},{y1}) -> ({x2},{y2}),跳过此目标")
+                    continue
+
+                # 提取目标区域的深度和彩色图
+                # 使用 np.ascontiguousarray 确保内存连续,解决 Open3D 初始化错误
+                roi_depth = np.ascontiguousarray(depth_image[y1:y2, x1:x2])
+                roi_color = np.ascontiguousarray(color_image[y1:y2, x1:x2])
+
+                # 检查并调整ROI尺寸不匹配问题
+                if roi_color.shape[:2] != roi_depth.shape[:2]:
+                    self.get_logger().debug(f"ROI尺寸不匹配:彩色{roi_color.shape[:2]},深度{roi_depth.shape[:2]}")
+                    # 检查深度ROI的有效尺寸,避免resize错误
+                    if roi_depth.shape[0] > 0 and roi_depth.shape[1] > 0:
+                        # 将彩色ROI调整到深度ROI的尺寸
+                        roi_color = cv2.resize(roi_color, (roi_depth.shape[1], roi_depth.shape[0]), interpolation=cv2.INTER_LINEAR)
+                    else:
+                        self.get_logger().warn(f"深度ROI尺寸无效:{roi_depth.shape[:2]},跳过此目标")
+                        continue
+
+                # 默认绘制框和名称
+                cv2.rectangle(annotated_image, (x1, y1), (x2, y2), (0, 165, 255), 2)
+                label_line1 = f"{obj_name}"
+                label_line2 = None
+
+                if np.sum(roi_depth > 0) >= 50:
+                    
+                    # 构造局部点云
+                    o3d_color = o3d.geometry.Image(cv2.cvtColor(roi_color, cv2.COLOR_BGR2RGB))
+                    o3d_depth = o3d.geometry.Image(roi_depth)
+
+                    # 调整内参的主点坐标以适应 ROI 切片
+                    local_intrinsics = o3d.camera.PinholeCameraIntrinsic(
+                        roi_depth.shape[1], roi_depth.shape[0],
+                        self.intrinsics.intrinsic_matrix[0, 0],
+                        self.intrinsics.intrinsic_matrix[1, 1],
+                        self.intrinsics.intrinsic_matrix[0, 2] - x1,
+                        self.intrinsics.intrinsic_matrix[1, 2] - y1
+                    )
+
+                    # 生成 RGBD 图像并转换为点云
+                    rgbd = o3d.geometry.RGBDImage.create_from_color_and_depth(
+                        o3d_color, o3d_depth, depth_scale=1000.0, depth_trunc=3.0, convert_rgb_to_intensity=False
+                    )
+                    pcd = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd, local_intrinsics)
+
+                    if not pcd.is_empty():
+                        pcd, _ = pcd.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0)
+                        if len(pcd.points) > 50:
+                            labels = np.array(pcd.cluster_dbscan(eps=0.02, min_points=10))
+                            if len(labels) > 0 and np.any(labels >= 0):
+                                target_label = np.argmax(np.bincount(labels[labels >= 0]))
+                                target_pcd = pcd.select_by_index(np.where(labels == target_label)[0])
+                                center = target_pcd.get_center()
+                                
+                                # 计算物体尺寸
+                                width, height, depth = self.calculate_object_dimensions(target_pcd)
+                                
+                                # 更新标签包含 XYZ 信息(第二行)
+                                if width is not None and height is not None and depth is not None:
+                                    label_line2 = f"X:{center[0]:.2f} Y:{center[1]:.2f} Z:{center[2]:.2f}"
+                                    label_line3 = f"宽:{width:.2f} 高:{height:.2f} 距离:{depth:.2f}"
+                                    self.get_logger().info(
+                                        f'物体: {obj_name} 中心位置: X={center[0]:.3f}m, Y={center[1]:.3f}m, Z={center[2]:.3f}m, '
+                                        f'尺寸: 宽={width:.3f}m, 高={height:.3f}m, 距离={depth:.3f}m'
+                                    )
+                                else:
+                                    label_line2 = f"X:{center[0]:.2f} Y:{center[1]:.2f} Z:{center[2]:.2f}"
+                                    label_line3 = None
+                                    self.get_logger().info(f'物体: {obj_name} 中心位置: X={center[0]:.3f}m, Y={center[1]:.3f}m, Z={center[2]:.3f}m')
+
+                # 在图像上绘制标签(使用PIL支持中文)
+                # 将OpenCV图像转换为PIL图像
+                pil_image = PILImage.fromarray(cv2.cvtColor(annotated_image, cv2.COLOR_BGR2RGB))
+                draw = ImageDraw.Draw(pil_image)
+                
+                # 计算文本位置
+                text_y = y1 - 40
+                
+                # 第一行:物体名称
+                draw.text((x1, text_y), label_line1, font=self.font, fill=(0, 165, 255))
+                text_y += 15
+                
+                # 第二行:位置信息
+                draw.text((x1, text_y), label_line2, font=self.font, fill=(0, 165, 255))
+                text_y += 15
+                
+                # 第三行:尺寸信息(如果有)
+                if label_line3:
+                    draw.text((x1, text_y), label_line3, font=self.font, fill=(0, 165, 255))
+                
+                # 将PIL图像转换回OpenCV格式
+                annotated_image = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
+
+            # 发布处理后的图像到 detect 话题
+            out_msg = self.bridge.cv2_to_imgmsg(annotated_image, encoding='bgr8')
+            out_msg.header = color_msg.header
+            self.image_pub.publish(out_msg)
+
+        except Exception as e:
+            self.get_logger().error(f'处理失败: {e}')
+
+def main(args=None):
+    rclpy.init(args=args)
+    node = YoloRealSenseFusionNode()
+    try:
+        rclpy.spin(node)
+    except KeyboardInterrupt:
+        pass
+    finally:
+        node.destroy_node()
+        rclpy.shutdown()
+
+if __name__ == '__main__':
+    main()

+ 891 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/face_recognition.py

@@ -0,0 +1,891 @@
+#!/usr/bin/env python3
+"""
+实时人脸识别系统
+
+功能:
+1. 添加人脸到数据库并设定名字
+2. 保存和加载人脸数据库
+3. 摄像头实时人脸检测和识别
+4. 在检测到的人脸上显示对应名字
+"""
+
+import os
+import time
+import cv2
+import numpy as np
+import insightface
+from insightface.app import FaceAnalysis
+from insightface.data import get_image as ins_get_image
+import pickle
+# 导入FreeType库
+import freetype
+import sys
+import traceback
+
+
+class FaceRecognitionSystem:
+    """实时人脸识别系统类"""
+    
+    # 关键:创建 ONNX Runtime 配置,禁用融合卷积
+    session_options = ort.SessionOptions()
+    # 禁用融合卷积(解决 FusedConv 算子报错)
+    session_options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_BASIC
+    # 或更精细控制:只禁用融合卷积,保留其他优化
+    session_options.add_session_config_entry("ep.cuda.disable_fused_conv", "1")
+
+    def __init__(self, db_path="face_database.pkl",
+                model_name="buffalo_l",
+                force_cuda=True):
+        """
+        初始化人脸识别系统
+        
+        Args:
+            db_path: 人脸数据库保存路径
+            model_name: 使用的模型名称
+        """
+        self.db_path = db_path
+        self.model_name = model_name
+        
+        # 初始化人脸分析应用
+        print("初始化人脸识别模型...")
+        print("尝试使用TensorRT加速...")
+        
+        # TensorRT执行提供程序的配置选项
+        trt_options = {
+            'trt_engine_cache_enable': True,  # 启用引擎缓存
+            'trt_engine_cache_path': './trt_cache',  # 引擎缓存路径
+            'trt_fp16_enable': True,  # 启用FP16精度以提升性能
+            'trt_max_workspace_size': 2 * 1024 * 1024 * 1024,  # 最大工作空间2GB
+        }
+        
+        try:
+            # 优先使用TensorRT,然后是CUDA,最后是CPU
+            self.app = FaceAnalysis(
+                name=model_name,
+                modules=['detection', 'recognition'],
+                providers=[
+                    #('TensorrtExecutionProvider', trt_options),
+                    'CUDAExecutionProvider',
+                    'CPUExecutionProvider'
+                ] 
+            )
+            self.app.prepare(ctx_id=0, det_size=(640, 640))
+            print("成功使用TensorRT加速初始化")
+
+        except BaseException as e:
+            print(f"TensorRT启动失败: {e}", file=sys.stderr)
+            print("尝试使用CUDA执行...")
+            try:
+                # 回退到CUDA
+                self.app = FaceAnalysis(
+                    name=model_name,
+                    modules=['detection', 'recognition'],
+                    providers=['CUDAExecutionProvider', 'CPUExecutionProvider'] 
+                )
+                self.app.prepare(ctx_id=0, det_size=(640, 640))
+                print("成功使用CUDA执行")
+            except BaseException as e2:
+                print(f"CUDA启动失败: {e2}", file=sys.stderr)
+                # 确保self.app被正确初始化,使用CPU作为最后的备选方案
+                print("尝试使用纯CPU执行...")
+                try:
+                    self.app = FaceAnalysis(
+                        name=model_name,
+                        modules=['detection', 'recognition'],
+                        providers=['CPUExecutionProvider']  # 只使用CPU执行提供程序
+                    )
+                    self.app.prepare(ctx_id=-1, det_size=(640, 640))
+                    print("成功使用纯CPU执行")
+                except BaseException as e3:
+                    print(f"纯CPU执行也失败: {e3}", file=sys.stderr)
+                    raise RuntimeError(f"无法初始化FaceAnalysis: {e3}") from e2
+        # 初始化人脸数据库
+        self.face_database = {}
+        self.load_database()
+        
+        # 初始化FreeType字体
+        self.font = None
+        self._init_font()
+        
+        print(f"系统初始化完成。已加载 {len(self.face_database)} 张人脸。")
+    
+    def _reinit_app_with_fallback(self, use_tensorrt=True):
+        """
+        重新初始化FaceAnalysis应用,支持TensorRT/CUDA/CPU回退
+        
+        Args:
+            use_tensorrt: 是否尝试使用TensorRT
+        
+        Returns:
+            bool: 初始化成功返回True,失败返回False
+        """
+        # TensorRT执行提供程序的配置选项
+        trt_options = {
+            'trt_engine_cache_enable': True,
+            'trt_engine_cache_path': './trt_cache',
+            'trt_fp16_enable': True,
+            'trt_max_workspace_size': 2 * 1024 * 1024 * 1024,
+        }
+        
+        if use_tensorrt:
+            try:
+                self.app = FaceAnalysis(
+                    name=self.model_name,
+                    modules=['detection', 'recognition'],
+                    providers=[
+                        ('TensorRTExecutionProvider', trt_options),
+                        'CUDAExecutionProvider',
+                        'CPUExecutionProvider'
+                    ]
+                )
+                self.app.prepare(ctx_id=0, det_size=(640, 640))
+                print("成功使用TensorRT重新初始化")
+                return True
+            except Exception as e:
+                print(f"TensorRT重新初始化失败: {e}")
+                
+                traceback.print_exc()
+        
+        # 回退到CUDA
+        try:
+            self.app = FaceAnalysis(
+                name=self.model_name,
+                modules=['detection', 'recognition'],
+                providers=['CUDAExecutionProvider', 'CPUExecutionProvider']
+            )
+            self.app.prepare(ctx_id=0, det_size=(640, 640))
+            print("成功使用CUDA重新初始化")
+            return True
+        except Exception as e:
+            print(f"CUDA重新初始化失败: {e}")
+            
+            traceback.print_exc()
+        
+        # 最后回退到CPU
+        try:
+            self.app = FaceAnalysis(
+                name=self.model_name,
+                modules=['detection', 'recognition'],
+                providers=['CPUExecutionProvider']
+            )
+            self.app.prepare(ctx_id=-1, det_size=(640, 640))
+            print("成功使用CPU重新初始化")
+            return True
+        except Exception as e:
+            print(f"CPU重新初始化也失败: {e}")
+            return False
+    
+    def _init_font(self):
+        """
+        初始化FreeType字体
+        """
+        # Linux系统的中文字体路径
+        font_paths = [
+            "/usr/share/fonts/truetype/wqy/wqy-microhei.ttc",  # 文泉驿微米黑
+            "/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc",     # 文泉驿正黑
+            "/usr/share/fonts/truetype/simhei.ttf",             # 黑体
+            "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",  # 备用字体
+        ]
+        
+        # 尝试加载字体
+        for font_path in font_paths:
+            if os.path.exists(font_path):
+                try:
+                    self.font = freetype.Face(font_path)
+                    print(f"成功加载字体: {font_path}")
+                    return
+                except Exception as e:
+                    print(f"加载字体 {font_path} 失败: {e}")
+        
+        print("警告:无法加载任何字体,将使用OpenCV默认字体")
+        self.font = None
+    
+    def _put_text_freetype(self, image, text, pos, font_size=18, color=(0, 255, 0)):
+        """
+        使用FreeType绘制文字(支持中文)
+        
+        Args:
+            image: 要绘制文字的图像
+            text: 要绘制的文字
+            pos: 文字位置 (x, y)
+            font_size: 字体大小
+            color: 文字颜色 (B, G, R)
+        
+        Returns:
+            image: 绘制了文字的图像
+        """
+        
+        try:
+            # 设置字体大小
+            self.font.set_char_size(font_size * 64)
+            
+            # 分离颜色通道
+            b, g, r = color
+            
+            # 获取文字位置
+            x, y = pos
+            
+            # 绘制文字
+            for char in text:
+                # 加载字符
+                self.font.load_char(char)
+                
+                # 获取字符的位图
+                bitmap = self.font.glyph.bitmap
+                width = bitmap.width
+                height = bitmap.rows
+                
+                # 获取字符的偏移量
+                left = self.font.glyph.bitmap_left
+                top = self.font.glyph.bitmap_top
+                
+                # 计算字符在图像中的位置
+                char_x = x + left
+                char_y = y - top
+                
+                # 确保字符在图像范围内
+                if char_x < 0 or char_y < 0 or char_x + width > image.shape[1] or char_y + height > image.shape[0]:
+                    # 跳过超出图像范围的字符
+                    x += (self.font.glyph.advance.x >> 6)
+                    continue
+                
+                # 绘制字符的每个像素
+                for i in range(height):
+                    for j in range(width):
+                        if i < bitmap.rows and j < bitmap.width:
+                            pixel = bitmap.buffer[i * bitmap.pitch + j]
+                            if pixel > 0:
+                                # 设置像素颜色
+                                image[char_y + i, char_x + j] = (b, g, r)
+                
+                # 更新x坐标,准备绘制下一个字符
+                x += (self.font.glyph.advance.x >> 6)
+        except Exception as e:
+            print(f"绘制文字时出错: {e}")
+            # 回退到OpenCV默认字体
+            cv2.putText(image, text, pos, cv2.FONT_HERSHEY_SIMPLEX, font_size/25, color, 2)
+        
+        return image
+    
+    def add_face(self, image_path, name):
+        """
+        添加人脸到数据库
+        
+        Args:
+            image_path: 包含人脸的图像路径
+            name: 人脸对应的名字
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        print(f"正在添加人脸: {name}...")
+        
+        # 读取图像
+        img = cv2.imread(image_path)
+        if img is None:
+            print(f"错误:无法读取图像 {image_path}")
+            return False
+        
+        try:
+            # 检测人脸
+            faces = self.app.get(img)
+            print(f"DEBUG: 检测到 {len(faces)} 张人脸")
+            
+            if len(faces) == 0:
+                # 尝试调整图像大小后再次检测
+                print("尝试调整图像大小后再次检测...")
+                h, w = img.shape[:2]
+                max_size = 1280
+                if h > max_size or w > max_size:
+                    scale = max_size / max(h, w)
+                    new_h, new_w = int(h * scale), int(w * scale)
+                    img_resized = cv2.resize(img, (new_w, new_h))
+                    faces = self.app.get(img_resized)
+                    print(f"DEBUG: 调整大小后检测到 {len(faces)} 张人脸")
+            
+            if len(faces) == 0:
+                print("错误:图像中未检测到人脸")
+                return False
+            elif len(faces) > 1:
+                print("警告:图像中检测到多张人脸,仅使用第一张")
+            
+            # 获取人脸特征
+            face = faces[0]
+            print(f"DEBUG: 人脸信息: {face.keys()}")
+            if 'embedding' not in face:
+                print("错误:无法提取人脸特征")
+                print("DEBUG: 可用的人脸信息: {face.keys()}")
+                return False
+            
+            # 添加到数据库
+            self.face_database[name] = face['embedding']
+            print(f"成功添加人脸: {name}")
+            return True
+        except Exception as e:
+            error_msg = str(e)
+            print(f"添加人脸时出错: {error_msg}")
+            
+            # 检查是否是执行提供程序相关错误
+            is_provider_error = any(keyword in error_msg for keyword in 
+                                  ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                   'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+            
+            if is_provider_error:
+                print("检测到执行提供程序相关错误,尝试重新初始化...")
+                # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                if self._reinit_app_with_fallback(use_tensorrt=True):
+                    # 重新尝试添加人脸
+                    return self.add_face(image_path, name)
+                else:
+                    print("重新初始化失败")
+                    return False
+            return False
+    
+    def save_database(self):
+        """
+        保存人脸数据库到文件
+        """
+        try:
+            with open(self.db_path, 'wb') as f:
+                pickle.dump(self.face_database, f)
+            print(f"人脸数据库已保存到 {self.db_path}")
+            return True
+        except Exception as e:
+            print(f"保存数据库失败: {e}")
+            return False
+    
+    def load_database(self):
+        """
+        从文件加载人脸数据库
+        """
+        if os.path.exists(self.db_path):
+            try:
+                with open(self.db_path, 'rb') as f:
+                    self.face_database = pickle.load(f)
+                print(f"从 {self.db_path} 加载了 {len(self.face_database)} 张人脸")
+                return True
+            except Exception as e:
+                print(f"加载数据库失败: {e}")
+                self.face_database = {}
+        else:
+            print(f"未找到数据库文件 {self.db_path},将创建新数据库")
+            self.face_database = {}
+        return False
+    
+    def recognize_face(self, face, threshold=0.70):
+        """
+        识别人脸,返回最匹配的名字和相似度分数
+        
+        Args:
+            face: 检测到的人脸对象
+            threshold: 识别阈值
+        
+        Returns:
+            tuple: (str, float) - 识别出的名字和相似度分数,未识别出返回("Unknown", 0.0)
+        """
+        if 'embedding' not in face:
+            return "Unknown", 0.0
+        
+        embedding = face['embedding']
+        best_name = "Unknown"
+        best_score = threshold
+        
+        # 检查数据库是否为空
+        if not self.face_database:
+            return "Unknown", 0.0
+        
+        # 遍历数据库,寻找最匹配的人脸
+        for name, db_embedding in self.face_database.items():
+            # 计算余弦相似度
+            similarity = np.dot(embedding, db_embedding)
+            
+            if similarity > best_score:
+                best_score = similarity
+                best_name = name
+        
+        # 确保返回的名字是有效的字符串
+        if not isinstance(best_name, str):
+            best_name = str(best_name)
+        # 移除可能的特殊字符
+        best_name = ''.join(c for c in best_name if c.isprintable())
+        if not best_name:
+            best_name = "Unknown"
+        return best_name, best_score
+    
+    def run_camera(self, camera_id, save_db_on_exit=True):
+        """
+        运行摄像头实时人脸识别
+        
+        Args:
+            camera_id: 摄像头ID,默认10
+            save_db_on_exit: 退出时是否保存数据库
+        """
+        print(f"打开摄像头 {camera_id}...")
+        
+        # 尝试不同的摄像头打开方式
+        cap = None
+        
+        # 方式1:直接使用摄像头ID
+        try:
+            cap = cv2.VideoCapture(camera_id)
+            if cap.isOpened():
+                print(f"成功打开摄像头 {camera_id}(直接方式)")
+            else:
+                print(f"直接方式打开摄像头 {camera_id}失败,尝试其他方式...")
+                cap.release()
+                cap = None
+        except Exception as e:
+            print(f"直接方式打开摄像头失败:{e}")
+            cap = None
+        
+        # 方式3:使用cv2.CAP_V4L2(Linux特有)
+        if cap is None and os.name == 'posix':
+            try:
+                cap = cv2.VideoCapture(camera_id, cv2.CAP_V4L2)
+                if cap.isOpened():
+                    print(f"成功打开摄像头 {camera_id}(CAP_V4L2方式)")
+                else:
+                    print(f"CAP_V4L2方式打开摄像头 {camera_id}失败,尝试其他方式...")
+                    cap.release()
+                    cap = None
+            except Exception as e:
+                print(f"CAP_V4L2方式打开摄像头失败:{e}")
+                cap = None
+        
+        if cap is None:
+            print(f"错误:无法打开摄像头 {camera_id}")
+            # 列出可用摄像头
+            print("尝试检测可用摄像头...")
+            for i in range(3):
+                test_cap = cv2.VideoCapture(i)
+                if test_cap.isOpened():
+                    print(f"摄像头 {i} 可用")
+                    test_cap.release()
+            return False
+        
+        # 设置摄像头参数
+        print("设置摄像头参数...")
+        
+        # 设置分辨率和帧率
+        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+        cap.set(cv2.CAP_PROP_FPS, 30)
+        
+        # 尝试设置MJPG编码,提高兼容性(忽略可能的错误)
+        try:
+            cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
+            print("  使用MJPG编码")
+        except Exception as e:
+            print(f"  使用默认编码(MJPG设置失败:{e}")
+        
+        # 摄像头初始化后添加延迟,让摄像头稳定
+        print("摄像头初始化完成,等待1秒让摄像头稳定...")
+        time.sleep(1)
+        
+        # 预读取几帧,丢弃初始的不稳定帧
+        for _ in range(5):
+            ret, _ = cap.read()
+            if not ret:
+                # 短暂休眠后重试
+                time.sleep(0.1)
+        
+        print("开始实时人脸识别。按 'q' 键退出,按 's' 键保存数据库。")
+        
+        frame_count = 0
+        consecutive_failures = 0  # 连续失败计数器
+        
+        while True:
+            # 读取帧
+            ret, frame = cap.read()
+            
+            if not ret:
+                consecutive_failures += 1
+                print(f"警告:无法读取帧 {frame_count} (连续失败: {consecutive_failures})")
+                
+                # 仅等待后重试,不重新打开摄像头,确保摄像头持续开启
+                # 连续失败多次后才考虑重新初始化
+                if consecutive_failures >= 30:  # 连续失败30次后才重新初始化
+                    print("连续读取失败30次,尝试重置摄像头...")
+                    consecutive_failures = 0  # 重置失败计数器
+                    
+                    # 释放并重新打开摄像头
+                    cap.release()
+                    time.sleep(1)  # 等待1秒
+                    cap = cv2.VideoCapture(camera_id)
+                    if not cap.isOpened():
+                        print(f"错误:无法重新打开摄像头 {camera_id}")
+                        break
+                    # 重新设置参数
+                    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+                    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+                    cap.set(cv2.CAP_PROP_FPS, 30)
+                else:
+                    time.sleep(0.1)  # 短暂等待后重试
+                continue
+            
+            # 读取成功,重置失败计数器
+            consecutive_failures = 0
+            frame_count += 1
+            
+            # 检查帧是否有效
+            if frame is None or frame.size == 0:
+                print(f"警告:无效帧 {frame_count}")
+                continue
+            
+            # 创建空白结果帧,防止原帧有问题
+            result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+            
+            try:
+                # 检测人脸
+                faces = self.app.get(frame)
+                
+                # 绘制结果
+                result_frame = frame.copy()
+                
+                for face in faces:
+                    # 获取置信度
+                    confidence = face['det_score']
+                    
+                    # 识别人脸,获取名字和相似度
+                    name, similarity = self.recognize_face(face)
+                    
+                    # 只有当置信度大于0.7且相似度大于200时才显示对应名字,否则显示Unknown
+                    if confidence > 0.7 and similarity > 100:
+                        display_name = name
+                    else:
+                        display_name = "Unknown"
+                    
+                    # 获取边界框
+                    bbox = face['bbox']
+                    bbox = list(map(int, bbox))
+                    
+                    # 绘制边界框
+                    cv2.rectangle(result_frame, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 2)
+                    
+                    # 绘制名字 - 确保文字在图像范围内
+                    name_y = max(20, bbox[1] - 10)  # 确保文字不会超出图像顶部
+                    name_y = min(name_y, result_frame.shape[0] - 20)  # 确保文字不会超出图像底部
+                    self._put_text_freetype(result_frame, display_name, (bbox[0], name_y), 
+                                          font_size=18, color=(0, 255, 0))
+                    
+                    # 绘制置信度和相似度
+                    conf_y = bbox[3] + 20
+                    conf_y = min(conf_y, result_frame.shape[0] - 10)  # 确保文字不会超出图像底部
+                    self._put_text_freetype(result_frame, f"置信度: {confidence:.2f}, 相似度: {similarity:.2f}", 
+                                          (bbox[0], conf_y), font_size=12, color=(0, 255, 0))
+            except Exception as e:
+                error_msg = str(e)
+                print(f"处理帧时出错: {error_msg}")
+                
+                # 检查是否是执行提供程序相关错误
+                is_provider_error = any(keyword in error_msg for keyword in 
+                                      ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                       'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+                
+                if is_provider_error:
+                    print("检测到执行提供程序相关错误,尝试重新初始化...")
+                    # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                    if self._reinit_app_with_fallback(use_tensorrt=True):
+                        try:
+                            # 尝试重新检测
+                            faces = self.app.get(frame)
+                            result_frame = frame.copy()
+                            for face in faces:
+                                confidence = face['det_score']
+                                name, similarity = self.recognize_face(face)
+                                if confidence > 0.7 and similarity > 100:
+                                    display_name = name
+                                else:
+                                    display_name = "Unknown"
+                                bbox = list(map(int, face['bbox']))
+                                cv2.rectangle(result_frame, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 2)
+                                name_y = max(20, bbox[1] - 10)
+                                name_y = min(name_y, result_frame.shape[0] - 20)
+                                self._put_text_freetype(result_frame, display_name, (bbox[0], name_y), 
+                                                      font_size=18, color=(0, 255, 0))
+                                conf_y = bbox[3] + 20
+                                conf_y = min(conf_y, result_frame.shape[0] - 10)
+                                self._put_text_freetype(result_frame, f"置信度: {confidence:.2f}, 相似度: {similarity:.2f}", 
+                                                      (bbox[0], conf_y), font_size=12, color=(0, 255, 0))
+                        except Exception as retry_e:
+                            print(f"重新检测失败: {retry_e}")
+                            result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                            self._put_text_freetype(result_frame, f"重新检测失败: {retry_e}", (10, 50), 
+                                                  font_size=14, color=(0, 0, 255))
+                    else:
+                        result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                        self._put_text_freetype(result_frame, "执行提供程序重新初始化失败", (10, 50), 
+                                              font_size=14, color=(0, 0, 255))
+                else:
+                    # 使用空白帧,避免程序崩溃
+                    result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                    self._put_text_freetype(result_frame, f"处理错误: {error_msg}", (10, 50), 
+                                          font_size=14, color=(0, 0, 255))
+            
+            # 显示 FPS
+            fps = 1.0 / (frame_count + 1e-6)  # 简单FPS计算
+            self._put_text_freetype(result_frame, f"FPS: {fps:.1f}", (10, 30), 
+                                  font_size=22, color=(0, 0, 255))
+            
+            # 确保窗口持续显示的关键逻辑
+            try:
+                # 确保窗口已创建并保持打开
+                if not hasattr(self, '_window_created') or not self._window_created:
+                    cv2.namedWindow('实时人脸识别', cv2.WINDOW_NORMAL)
+                    cv2.resizeWindow('实时人脸识别', 640, 480)
+                    self._window_created = True
+                    print("摄像头窗口已创建并持续显示")
+                
+                # 持续显示结果
+                cv2.imshow('实时人脸识别', result_frame)
+                
+                # 键盘控制 - 使用waitKey(1)确保窗口持续刷新
+                key = cv2.waitKey(1) & 0xFF
+                if key == ord('q'):
+                    # 退出
+                    print("收到退出命令,正在关闭...")
+                    break
+                elif key == ord('s'):
+                    # 保存数据库
+                    self.save_database()
+            except Exception as e:
+                print(f"窗口显示错误: {e}")
+                # 窗口显示错误时重新创建窗口
+                if hasattr(self, '_window_created'):
+                    delattr(self, '_window_created')
+                # 不退出,继续尝试显示
+                continue
+        
+        # 释放资源
+        print("释放摄像头资源...")
+        cap.release()
+        print("关闭所有窗口...")
+        cv2.destroyAllWindows()
+        
+        # 退出时保存数据库
+        if save_db_on_exit:
+            self.save_database()
+        
+        print("系统已退出")
+        return True
+    
+    def add_face_interactive(self, name, camera_id):
+        """
+        交互式添加人脸(从摄像头捕获)
+        
+        Args:
+            name: 人脸对应的名字
+            camera_id: 摄像头ID,默认10
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        print(f"准备添加人脸: {name}")
+        print("请面对摄像头,按 'c' 键捕获图像,按 'q' 键取消")
+        
+        # 尝试打开摄像头
+        cap = cv2.VideoCapture(camera_id)
+        if not cap.isOpened():
+            print(f"❌ 无法打开摄像头,索引: {camera_id}")
+            
+            # 列出可用摄像头
+            print("ℹ️  尝试检测可用摄像头...")
+            available_cameras = []
+            for i in range(5):  # 尝试检测前5个摄像头
+                test_cap = cv2.VideoCapture(i)
+                if test_cap.isOpened():
+                    available_cameras.append(i)
+                    test_cap.release()
+            
+            if available_cameras:
+                print(f"✅ 检测到以下可用摄像头: {available_cameras}")
+            else:
+                print("❌ 未检测到任何可用摄像头")
+            
+            return False
+        
+        # 重新设置参数
+        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+        cap.set(cv2.CAP_PROP_FPS, 30)
+        
+        # 摄像头初始化后添加延迟,让摄像头稳定
+        print("摄像头初始化完成,等待1秒让摄像头稳定...")
+        time.sleep(1)
+        
+        # 预读取几帧,丢弃初始的不稳定帧
+        for _ in range(5):
+            ret, _ = cap.read()
+            if not ret:
+                # 短暂休眠后重试
+                time.sleep(0.1)
+        
+        # 创建空白帧,防止摄像头初始帧为黑
+        blank_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+        self._put_text_freetype(blank_frame, "初始化摄像头...", (10, 30), 
+                              font_size=18, color=(0, 0, 255))
+        
+        # 创建窗口
+        cv2.namedWindow('捕获人脸', cv2.WINDOW_NORMAL)
+        cv2.resizeWindow('捕获人脸', 640, 480)
+        
+        frame_count = 0
+        consecutive_failures = 0
+        
+        while True:
+            ret, frame = cap.read()
+            
+            if not ret or frame is None or frame.size == 0:
+                consecutive_failures += 1
+                print(f"⚠️  无法读取帧 ({frame_count}/{consecutive_failures})")
+                
+                # 使用空白帧
+                display_frame = blank_frame.copy()
+                self._put_text_freetype(display_frame, f"无法读取帧,尝试次数: {consecutive_failures}", (10, 60), 
+                                      font_size=14, color=(0, 0, 255))
+                
+                if consecutive_failures > 10:
+                    print("❌ 连续10次无法读取帧,退出")
+                    cap.release()
+                    cv2.destroyAllWindows()
+                    return False
+            else:
+                consecutive_failures = 0
+                frame_count += 1
+                
+                # 确保帧尺寸正确
+                if frame.shape[0] != 480 or frame.shape[1] != 640:
+                    display_frame = cv2.resize(frame, (640, 480))
+                else:
+                    display_frame = frame.copy()
+            
+            # 在图像上显示提示信息
+            self._put_text_freetype(display_frame, "按 'c' 键捕获,按 'q' 键取消", (10, 30), 
+                                  font_size=18, color=(0, 0, 255))
+            
+            # 显示当前帧计数
+            self._put_text_freetype(display_frame, f"帧计数: {frame_count}", (10, 450), 
+                                  font_size=14, color=(0, 255, 0))
+            
+            # 显示图像
+            cv2.imshow('捕获人脸', display_frame)
+            
+            # 等待键盘输入
+            key = cv2.waitKey(1) & 0xFF
+            if key == ord('q'):
+                # 取消
+                cap.release()
+                cv2.destroyAllWindows()
+                print("已取消添加")
+                return False
+            elif key == ord('c'):
+                # 捕获图像
+                cap.release()
+                cv2.destroyAllWindows()
+                
+                # 确保捕获的是有效图像
+                if consecutive_failures == 0 and frame is not None and frame.size > 0:
+                    # 检测并添加人脸
+                    return self.add_face_from_frame(frame, name)
+                else:
+                    print("❌ 无法捕获有效图像")
+                    return False
+    
+    def add_face_from_frame(self, frame, name):
+        """
+        从图像帧添加人脸
+        
+        Args:
+            frame: 图像帧
+            name: 人脸对应的名字
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        try:
+            # 检测人脸
+            faces = self.app.get(frame)
+            if len(faces) == 0:
+                print("错误:图像中未检测到人脸")
+                return False
+            elif len(faces) > 1:
+                print("警告:图像中检测到多张人脸,仅使用第一张")
+            
+            # 获取人脸特征
+            face = faces[0]
+            if 'embedding' not in face:
+                print("错误:无法提取人脸特征")
+                return False
+            
+            # 添加到数据库
+            self.face_database[name] = face['embedding']
+            print(f"成功添加人脸: {name}")
+            return True
+        except Exception as e:
+            error_msg = str(e)
+            print(f"从帧添加人脸时出错: {error_msg}")
+            
+            # 检查是否是执行提供程序相关错误
+            is_provider_error = any(keyword in error_msg for keyword in 
+                                  ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                   'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+            
+            if is_provider_error:
+                print("检测到执行提供程序相关错误,尝试重新初始化...")
+                # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                if self._reinit_app_with_fallback(use_tensorrt=True):
+                    # 重新尝试添加人脸
+                    return self.add_face_from_frame(frame, name)
+                else:
+                    print("重新初始化失败")
+                    return False
+            return False
+
+
+def main():
+    """主函数"""
+    import argparse
+    
+    parser = argparse.ArgumentParser(description="实时人脸识别系统")
+    parser.add_argument("--add-face", nargs=2, metavar=("IMAGE_PATH", "NAME"), 
+                       help="添加人脸到数据库")
+    parser.add_argument("--add-webcam", metavar="NAME", 
+                       help="从摄像头添加人脸到数据库")
+    parser.add_argument("--db-path", default="face_database.pkl", 
+                       help="人脸数据库路径")
+    parser.add_argument("--camera-id", type=int, default=10, 
+                       help="摄像头ID")
+    parser.add_argument("--model", default="buffalo_l", 
+                       help="使用的模型名称")
+    parser.add_argument("--force-cuda", action="store_true", default=True, 
+                       help="是否强制使用CUDA,默认强制使用")
+    parser.add_argument("--allow-cpu-fallback", action="store_false", dest="force_cuda", 
+                       help="允许在CUDA不可用时回退到CPU")
+    
+    args = parser.parse_args()
+    
+    print(f"命令行参数: force_cuda={args.force_cuda}")
+    
+    # 初始化系统 - 强制使用CUDA
+    system = FaceRecognitionSystem(db_path=args.db_path, 
+                                  model_name=args.model, 
+                                  force_cuda=args.force_cuda)
+    
+    # 添加人脸
+    if args.add_face:
+        image_path, name = args.add_face
+        system.add_face(image_path, name)
+        system.save_database()
+    
+    # 从摄像头添加人脸
+    elif args.add_webcam:
+        system.add_face_interactive(args.add_webcam, args.camera_id)
+        system.save_database()
+    
+    # 运行摄像头
+    else:
+        system.run_camera(camera_id=args.camera_id)
+
+
+if __name__ == "__main__":
+    main()

+ 1057 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/face_recognition_node.py

@@ -0,0 +1,1057 @@
+#!/usr/bin/env python3
+"""
+人脸检测识别ROS2节点
+
+功能:
+1. 订阅彩色相机消息
+2. 运行人脸检测和识别模型
+3. 发布识别到的人名话题
+"""
+
+import os
+import time
+import cv2
+import numpy as np
+import rclpy
+from rclpy.node import Node
+from std_msgs.msg import String
+from sensor_msgs.msg import Image
+from cv_bridge import CvBridge
+import sys
+import traceback
+import insightface
+from insightface.app import FaceAnalysis
+import pickle
+import freetype
+import onnxruntime as ort
+
+# 添加当前目录到Python路径,以便导入face_recognition模块
+# sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
+class FaceRecognitionSystem:
+    """实时人脸识别系统类"""
+    
+    # 关键:创建 ONNX Runtime 配置,禁用融合卷积
+    session_options = ort.SessionOptions()
+    # 禁用融合卷积(解决 FusedConv 算子报错)
+    session_options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_BASIC
+    # 或更精细控制:只禁用融合卷积,保留其他优化
+    session_options.add_session_config_entry("ep.cuda.disable_fused_conv", "1")
+
+    def __init__(self, db_path="face_database.pkl",
+                model_name="buffalo_l",
+                force_cuda=True):
+        """
+        初始化人脸识别系统
+        
+        Args:
+            db_path: 人脸数据库保存路径
+            model_name: 使用的模型名称
+        """
+        self.db_path = db_path
+        self.model_name = model_name
+        self.app = None
+        self.font = None
+        self.face_database = {}
+        self._window_created = False
+        
+        # 初始化人脸分析应用
+        print("初始化人脸识别模型...")
+        print("尝试使用TensorRT加速...")
+        
+        # TensorRT执行提供程序的配置选项
+        trt_options = {
+            'trt_engine_cache_enable': True,  # 启用引擎缓存
+            'trt_engine_cache_path': './trt_cache',  # 引擎缓存路径
+            'trt_fp16_enable': True,  # 启用FP16精度以提升性能
+            'trt_max_workspace_size': 2 * 1024 * 1024 * 1024,  # 最大工作空间2GB
+        }
+        
+        try:
+            # 优先使用TensorRT,然后是CUDA,最后是CPU
+            self.app = FaceAnalysis(
+                name=model_name,
+                modules=['detection', 'recognition'],
+                providers=[
+                    #('TensorrtExecutionProvider', trt_options),
+                    'CUDAExecutionProvider',
+                    'CPUExecutionProvider'
+                ] 
+            )
+            self.app.prepare(ctx_id=0, det_size=(640, 640))
+            print("成功使用TensorRT加速初始化")
+
+        except BaseException as e:
+            print(f"TensorRT启动失败: {e}", file=sys.stderr)
+            print("尝试使用CUDA执行...")
+            try:
+                # 回退到CUDA
+                self.app = FaceAnalysis(
+                    name=model_name,
+                    modules=['detection', 'recognition'],
+                    providers=['CUDAExecutionProvider', 'CPUExecutionProvider'] 
+                )
+                self.app.prepare(ctx_id=0, det_size=(640, 640))
+                print("成功使用CUDA执行")
+            except BaseException as e2:
+                print(f"CUDA启动失败: {e2}", file=sys.stderr)
+                # 确保self.app被正确初始化,使用CPU作为最后的备选方案
+                print("尝试使用纯CPU执行...")
+                try:
+                    self.app = FaceAnalysis(
+                        name=model_name,
+                        modules=['detection', 'recognition'],
+                        providers=['CPUExecutionProvider']  # 只使用CPU执行提供程序
+                    )
+                    self.app.prepare(ctx_id=-1, det_size=(640, 640))
+                    print("成功使用纯CPU执行")
+                except BaseException as e3:
+                    print(f"纯CPU执行也失败: {e3}", file=sys.stderr)
+                    raise RuntimeError(f"无法初始化FaceAnalysis: {e3}") from e2
+        # 初始化人脸数据库
+        self.face_database = {}
+        self.load_database()
+        
+        # 初始化FreeType字体
+        self.font = None
+        self._init_font()
+        
+        print(f"系统初始化完成。已加载 {len(self.face_database)} 张人脸。")
+    
+    def _reinit_app_with_fallback(self, use_tensorrt=True):
+        """
+        重新初始化FaceAnalysis应用,支持TensorRT/CUDA/CPU回退
+        
+        Args:
+            use_tensorrt: 是否尝试使用TensorRT
+        
+        Returns:
+            bool: 初始化成功返回True,失败返回False
+        """
+        # TensorRT执行提供程序的配置选项
+        trt_options = {
+            'trt_engine_cache_enable': True,
+            'trt_engine_cache_path': './trt_cache',
+            'trt_fp16_enable': True,
+            'trt_max_workspace_size': 2 * 1024 * 1024 * 1024,
+        }
+        
+        if use_tensorrt:
+            try:
+                self.app = FaceAnalysis(
+                    name=self.model_name,
+                    modules=['detection', 'recognition'],
+                    providers=[
+                        ('TensorRTExecutionProvider', trt_options),
+                        'CUDAExecutionProvider',
+                        'CPUExecutionProvider'
+                    ]
+                )
+                self.app.prepare(ctx_id=0, det_size=(640, 640))
+                print("成功使用TensorRT重新初始化")
+                return True
+            except Exception as e:
+                print(f"TensorRT重新初始化失败: {e}")
+                
+                traceback.print_exc()
+        
+        # 回退到CUDA
+        try:
+            self.app = FaceAnalysis(
+                name=self.model_name,
+                modules=['detection', 'recognition'],
+                providers=['CUDAExecutionProvider', 'CPUExecutionProvider']
+            )
+            self.app.prepare(ctx_id=0, det_size=(640, 640))
+            print("成功使用CUDA重新初始化")
+            return True
+        except Exception as e:
+            print(f"CUDA重新初始化失败: {e}")
+            
+            traceback.print_exc()
+        
+        # 最后回退到CPU
+        try:
+            self.app = FaceAnalysis(
+                name=self.model_name,
+                modules=['detection', 'recognition'],
+                providers=['CPUExecutionProvider']
+            )
+            self.app.prepare(ctx_id=-1, det_size=(640, 640))
+            print("成功使用CPU重新初始化")
+            return True
+        except Exception as e:
+            print(f"CPU重新初始化也失败: {e}")
+            return False
+    
+    def _init_font(self):
+        """
+        初始化FreeType字体
+        """
+        # Linux系统的中文字体路径
+        font_paths = [
+            "/usr/share/fonts/truetype/wqy/wqy-microhei.ttc",  # 文泉驿微米黑
+            "/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc",     # 文泉驿正黑
+            "/usr/share/fonts/truetype/simhei.ttf",             # 黑体
+            "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",  # 备用字体
+        ]
+        
+        # 尝试加载字体
+        for font_path in font_paths:
+            if os.path.exists(font_path):
+                try:
+                    self.font = freetype.Face(font_path)
+                    print(f"成功加载字体: {font_path}")
+                    return
+                except Exception as e:
+                    print(f"加载字体 {font_path} 失败: {e}")
+        
+        print("警告:无法加载任何字体,将使用OpenCV默认字体")
+        self.font = None
+    
+    def _put_text_freetype(self, image, text, pos, font_size=18, color=(0, 255, 0)):
+        """
+        使用FreeType绘制文字(支持中文)
+        
+        Args:
+            image: 要绘制文字的图像
+            text: 要绘制的文字
+            pos: 文字位置 (x, y)
+            font_size: 字体大小
+            color: 文字颜色 (B, G, R)
+        
+        Returns:
+            image: 绘制了文字的图像
+        """
+        
+        try:
+            # 设置字体大小
+            self.font.set_char_size(font_size * 64)
+            
+            # 分离颜色通道
+            b, g, r = color
+            
+            # 获取文字位置
+            x, y = pos
+            
+            # 绘制文字
+            for char in text:
+                # 加载字符
+                self.font.load_char(char)
+                
+                # 获取字符的位图
+                bitmap = self.font.glyph.bitmap
+                width = bitmap.width
+                height = bitmap.rows
+                
+                # 获取字符的偏移量
+                left = self.font.glyph.bitmap_left
+                top = self.font.glyph.bitmap_top
+                
+                # 计算字符在图像中的位置
+                char_x = x + left
+                char_y = y - top
+                
+                # 确保字符在图像范围内
+                if char_x < 0 or char_y < 0 or char_x + width > image.shape[1] or char_y + height > image.shape[0]:
+                    # 跳过超出图像范围的字符
+                    x += (self.font.glyph.advance.x >> 6)
+                    continue
+                
+                # 绘制字符的每个像素
+                for i in range(height):
+                    for j in range(width):
+                        if i < bitmap.rows and j < bitmap.width:
+                            pixel = bitmap.buffer[i * bitmap.pitch + j]
+                            if pixel > 0:
+                                # 设置像素颜色
+                                image[char_y + i, char_x + j] = (b, g, r)
+                
+                # 更新x坐标,准备绘制下一个字符
+                x += (self.font.glyph.advance.x >> 6)
+        except Exception as e:
+            print(f"绘制文字时出错: {e}")
+            # 回退到OpenCV默认字体
+            cv2.putText(image, text, pos, cv2.FONT_HERSHEY_SIMPLEX, font_size/25, color, 2)
+        
+        return image
+    
+    def add_face(self, image_path, name):
+        """
+        添加人脸到数据库
+        
+        Args:
+            image_path: 包含人脸的图像路径
+            name: 人脸对应的名字
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        print(f"正在添加人脸: {name}...")
+        
+        # 读取图像
+        img = cv2.imread(image_path)
+        if img is None:
+            print(f"错误:无法读取图像 {image_path}")
+            return False
+        
+        try:
+            # 检测人脸
+            faces = self.app.get(img)
+            print(f"DEBUG: 检测到 {len(faces)} 张人脸")
+            
+            if len(faces) == 0:
+                # 尝试调整图像大小后再次检测
+                print("尝试调整图像大小后再次检测...")
+                h, w = img.shape[:2]
+                max_size = 1280
+                if h > max_size or w > max_size:
+                    scale = max_size / max(h, w)
+                    new_h, new_w = int(h * scale), int(w * scale)
+                    img_resized = cv2.resize(img, (new_w, new_h))
+                    faces = self.app.get(img_resized)
+                    print(f"DEBUG: 调整大小后检测到 {len(faces)} 张人脸")
+            
+            if len(faces) == 0:
+                print("错误:图像中未检测到人脸")
+                return False
+            elif len(faces) > 1:
+                print("警告:图像中检测到多张人脸,仅使用第一张")
+            
+            # 获取人脸特征
+            face = faces[0]
+            print(f"DEBUG: 人脸信息: {face.keys()}")
+            if 'embedding' not in face:
+                print("错误:无法提取人脸特征")
+                print("DEBUG: 可用的人脸信息: {face.keys()}")
+                return False
+            
+            # 添加到数据库
+            self.face_database[name] = face['embedding']
+            print(f"成功添加人脸: {name}")
+            return True
+        except Exception as e:
+            error_msg = str(e)
+            print(f"添加人脸时出错: {error_msg}")
+            
+            # 检查是否是执行提供程序相关错误
+            is_provider_error = any(keyword in error_msg for keyword in 
+                                  ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                   'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+            
+            if is_provider_error:
+                print("检测到执行提供程序相关错误,尝试重新初始化...")
+                # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                if self._reinit_app_with_fallback(use_tensorrt=True):
+                    # 重新尝试添加人脸
+                    return self.add_face(image_path, name)
+                else:
+                    print("重新初始化失败")
+                    return False
+            return False
+    
+    def save_database(self):
+        """
+        保存人脸数据库到文件
+        """
+        try:
+            with open(self.db_path, 'wb') as f:
+                pickle.dump(self.face_database, f)
+            print(f"人脸数据库已保存到 {self.db_path}")
+            return True
+        except Exception as e:
+            print(f"保存数据库失败: {e}")
+            return False
+    
+    def load_database(self):
+        """
+        从文件加载人脸数据库
+        """
+        if os.path.exists(self.db_path):
+            try:
+                with open(self.db_path, 'rb') as f:
+                    self.face_database = pickle.load(f)
+                print(f"从 {self.db_path} 加载了 {len(self.face_database)} 张人脸")
+                return True
+            except Exception as e:
+                print(f"加载数据库失败: {e}")
+                self.face_database = {}
+        else:
+            print(f"未找到数据库文件 {self.db_path},将创建新数据库")
+            self.face_database = {}
+        return False
+    
+    def recognize_face(self, face, threshold=0.70):
+        """
+        识别人脸,返回最匹配的名字和相似度分数
+        
+        Args:
+            face: 检测到的人脸对象
+            threshold: 识别阈值
+        
+        Returns:
+            tuple: (str, float) - 识别出的名字和相似度分数,未识别出返回("Unknown", 0.0)
+        """
+        if 'embedding' not in face:
+            return "Unknown", 0.0
+        
+        embedding = face['embedding']
+        best_name = "Unknown"
+        best_score = threshold
+        
+        # 检查数据库是否为空
+        if not self.face_database:
+            return "Unknown", 0.0
+        
+        # 遍历数据库,寻找最匹配的人脸
+        for name, db_embedding in self.face_database.items():
+            # 计算余弦相似度
+            similarity = np.dot(embedding, db_embedding)
+            
+            if similarity > best_score:
+                best_score = similarity
+                best_name = name
+        
+        # 确保返回的名字是有效的字符串
+        if not isinstance(best_name, str):
+            best_name = str(best_name)
+        # 移除可能的特殊字符
+        best_name = ''.join(c for c in best_name if c.isprintable())
+        if not best_name:
+            best_name = "Unknown"
+        return best_name, best_score
+    
+    def run_camera(self, camera_id, save_db_on_exit=True):
+        """
+        运行摄像头实时人脸识别
+        
+        Args:
+            camera_id: 摄像头ID,默认10
+            save_db_on_exit: 退出时是否保存数据库
+        """
+        print(f"打开摄像头 {camera_id}...")
+        
+        # 尝试不同的摄像头打开方式
+        cap = None
+        
+        # 方式1:直接使用摄像头ID
+        try:
+            cap = cv2.VideoCapture(camera_id)
+            if cap.isOpened():
+                print(f"成功打开摄像头 {camera_id}(直接方式)")
+            else:
+                print(f"直接方式打开摄像头 {camera_id}失败,尝试其他方式...")
+                cap.release()
+                cap = None
+        except Exception as e:
+            print(f"直接方式打开摄像头失败:{e}")
+            cap = None
+        
+        # 方式3:使用cv2.CAP_V4L2(Linux特有)
+        if cap is None and os.name == 'posix':
+            try:
+                cap = cv2.VideoCapture(camera_id, cv2.CAP_V4L2)
+                if cap.isOpened():
+                    print(f"成功打开摄像头 {camera_id}(CAP_V4L2方式)")
+                else:
+                    print(f"CAP_V4L2方式打开摄像头 {camera_id}失败,尝试其他方式...")
+                    cap.release()
+                    cap = None
+            except Exception as e:
+                print(f"CAP_V4L2方式打开摄像头失败:{e}")
+                cap = None
+        
+        if cap is None:
+            print(f"错误:无法打开摄像头 {camera_id}")
+            # 列出可用摄像头
+            print("尝试检测可用摄像头...")
+            for i in range(3):
+                test_cap = cv2.VideoCapture(i)
+                if test_cap.isOpened():
+                    print(f"摄像头 {i} 可用")
+                    test_cap.release()
+            return False
+        
+        # 设置摄像头参数
+        print("设置摄像头参数...")
+        
+        # 设置分辨率和帧率
+        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+        cap.set(cv2.CAP_PROP_FPS, 30)
+        
+        # 尝试设置MJPG编码,提高兼容性(忽略可能的错误)
+        try:
+            cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
+            print("  使用MJPG编码")
+        except Exception as e:
+            print(f"  使用默认编码(MJPG设置失败:{e}")
+        
+        # 摄像头初始化后添加延迟,让摄像头稳定
+        print("摄像头初始化完成,等待1秒让摄像头稳定...")
+        time.sleep(1)
+        
+        # 预读取几帧,丢弃初始的不稳定帧
+        for _ in range(5):
+            ret, _ = cap.read()
+            if not ret:
+                # 短暂休眠后重试
+                time.sleep(0.1)
+        
+        print("开始实时人脸识别。按 'q' 键退出,按 's' 键保存数据库。")
+        
+        frame_count = 0
+        consecutive_failures = 0  # 连续失败计数器
+        
+        while True:
+            # 读取帧
+            ret, frame = cap.read()
+            
+            if not ret:
+                consecutive_failures += 1
+                print(f"警告:无法读取帧 {frame_count} (连续失败: {consecutive_failures})")
+                
+                # 仅等待后重试,不重新打开摄像头,确保摄像头持续开启
+                # 连续失败多次后才考虑重新初始化
+                if consecutive_failures >= 30:  # 连续失败30次后才重新初始化
+                    print("连续读取失败30次,尝试重置摄像头...")
+                    consecutive_failures = 0  # 重置失败计数器
+                    
+                    # 释放并重新打开摄像头
+                    cap.release()
+                    time.sleep(1)  # 等待1秒
+                    cap = cv2.VideoCapture(camera_id)
+                    if not cap.isOpened():
+                        print(f"错误:无法重新打开摄像头 {camera_id}")
+                        break
+                    # 重新设置参数
+                    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+                    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+                    cap.set(cv2.CAP_PROP_FPS, 30)
+                else:
+                    time.sleep(0.1)  # 短暂等待后重试
+                continue
+            
+            # 读取成功,重置失败计数器
+            consecutive_failures = 0
+            frame_count += 1
+            
+            # 检查帧是否有效
+            if frame is None or frame.size == 0:
+                print(f"警告:无效帧 {frame_count}")
+                continue
+            
+            # 创建空白结果帧,防止原帧有问题
+            result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+            
+            try:
+                # 检测人脸
+                faces = self.app.get(frame)
+                
+                # 绘制结果
+                result_frame = frame.copy()
+                
+                for face in faces:
+                    # 获取置信度
+                    confidence = face['det_score']
+                    
+                    # 识别人脸,获取名字和相似度
+                    name, similarity = self.recognize_face(face)
+                    
+                    # 只有当置信度大于0.7且相似度大于200时才显示对应名字,否则显示Unknown
+                    if confidence > 0.7 and similarity > 100:
+                        display_name = name
+                    else:
+                        display_name = "Unknown"
+                    
+                    # 获取边界框
+                    bbox = face['bbox']
+                    bbox = list(map(int, bbox))
+                    
+                    # 绘制边界框
+                    cv2.rectangle(result_frame, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 2)
+                    
+                    # 绘制名字 - 确保文字在图像范围内
+                    name_y = max(20, bbox[1] - 10)  # 确保文字不会超出图像顶部
+                    name_y = min(name_y, result_frame.shape[0] - 20)  # 确保文字不会超出图像底部
+                    self._put_text_freetype(result_frame, display_name, (bbox[0], name_y), 
+                                          font_size=18, color=(0, 255, 0))
+                    
+                    # 绘制置信度和相似度
+                    conf_y = bbox[3] + 20
+                    conf_y = min(conf_y, result_frame.shape[0] - 10)  # 确保文字不会超出图像底部
+                    self._put_text_freetype(result_frame, f"置信度: {confidence:.2f}, 相似度: {similarity:.2f}", 
+                                          (bbox[0], conf_y), font_size=12, color=(0, 255, 0))
+            except Exception as e:
+                error_msg = str(e)
+                print(f"处理帧时出错: {error_msg}")
+                
+                # 检查是否是执行提供程序相关错误
+                is_provider_error = any(keyword in error_msg for keyword in 
+                                      ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                       'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+                
+                if is_provider_error:
+                    print("检测到执行提供程序相关错误,尝试重新初始化...")
+                    # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                    if self._reinit_app_with_fallback(use_tensorrt=True):
+                        try:
+                            # 尝试重新检测
+                            faces = self.app.get(frame)
+                            result_frame = frame.copy()
+                            for face in faces:
+                                confidence = face['det_score']
+                                name, similarity = self.recognize_face(face)
+                                if confidence > 0.7 and similarity > 100:
+                                    display_name = name
+                                else:
+                                    display_name = "Unknown"
+                                bbox = list(map(int, face['bbox']))
+                                cv2.rectangle(result_frame, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 2)
+                                name_y = max(20, bbox[1] - 10)
+                                name_y = min(name_y, result_frame.shape[0] - 20)
+                                self._put_text_freetype(result_frame, display_name, (bbox[0], name_y), 
+                                                      font_size=18, color=(0, 255, 0))
+                                conf_y = bbox[3] + 20
+                                conf_y = min(conf_y, result_frame.shape[0] - 10)
+                                self._put_text_freetype(result_frame, f"置信度: {confidence:.2f}, 相似度: {similarity:.2f}", 
+                                                      (bbox[0], conf_y), font_size=12, color=(0, 255, 0))
+                        except Exception as retry_e:
+                            print(f"重新检测失败: {retry_e}")
+                            result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                            self._put_text_freetype(result_frame, f"重新检测失败: {retry_e}", (10, 50), 
+                                                  font_size=14, color=(0, 0, 255))
+                    else:
+                        result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                        self._put_text_freetype(result_frame, "执行提供程序重新初始化失败", (10, 50), 
+                                              font_size=14, color=(0, 0, 255))
+                else:
+                    # 使用空白帧,避免程序崩溃
+                    result_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+                    self._put_text_freetype(result_frame, f"处理错误: {error_msg}", (10, 50), 
+                                          font_size=14, color=(0, 0, 255))
+            
+            # 显示 FPS
+            fps = 1.0 / (frame_count + 1e-6)  # 简单FPS计算
+            self._put_text_freetype(result_frame, f"FPS: {fps:.1f}", (10, 30), 
+                                  font_size=22, color=(0, 0, 255))
+            
+            # 确保窗口持续显示的关键逻辑
+            try:
+                # 确保窗口已创建并保持打开
+                if not hasattr(self, '_window_created') or not self._window_created:
+                    cv2.namedWindow('实时人脸识别', cv2.WINDOW_NORMAL)
+                    cv2.resizeWindow('实时人脸识别', 640, 480)
+                    self._window_created = True
+                    print("摄像头窗口已创建并持续显示")
+                
+                # 持续显示结果
+                cv2.imshow('实时人脸识别', result_frame)
+                
+                # 键盘控制 - 使用waitKey(1)确保窗口持续刷新
+                key = cv2.waitKey(1) & 0xFF
+                if key == ord('q'):
+                    # 退出
+                    print("收到退出命令,正在关闭...")
+                    break
+                elif key == ord('s'):
+                    # 保存数据库
+                    self.save_database()
+            except Exception as e:
+                print(f"窗口显示错误: {e}")
+                # 窗口显示错误时重新创建窗口
+                if hasattr(self, '_window_created'):
+                    delattr(self, '_window_created')
+                # 不退出,继续尝试显示
+                continue
+        
+        # 释放资源
+        print("释放摄像头资源...")
+        cap.release()
+        print("关闭所有窗口...")
+        cv2.destroyAllWindows()
+        
+        # 退出时保存数据库
+        if save_db_on_exit:
+            self.save_database()
+        
+        print("系统已退出")
+        return True
+    
+    def add_face_interactive(self, name, camera_id):
+        """
+        交互式添加人脸(从摄像头捕获)
+        
+        Args:
+            name: 人脸对应的名字
+            camera_id: 摄像头ID,默认10
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        print(f"准备添加人脸: {name}")
+        print("请面对摄像头,按 'c' 键捕获图像,按 'q' 键取消")
+        
+        # 尝试打开摄像头
+        cap = cv2.VideoCapture(camera_id)
+        if not cap.isOpened():
+            print(f"❌ 无法打开摄像头,索引: {camera_id}")
+            
+            # 列出可用摄像头
+            print("ℹ️  尝试检测可用摄像头...")
+            available_cameras = []
+            for i in range(5):  # 尝试检测前5个摄像头
+                test_cap = cv2.VideoCapture(i)
+                if test_cap.isOpened():
+                    available_cameras.append(i)
+                    test_cap.release()
+            
+            if available_cameras:
+                print(f"✅ 检测到以下可用摄像头: {available_cameras}")
+            else:
+                print("❌ 未检测到任何可用摄像头")
+            
+            return False
+        
+        # 重新设置参数
+        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+        cap.set(cv2.CAP_PROP_FPS, 30)
+        
+        # 摄像头初始化后添加延迟,让摄像头稳定
+        print("摄像头初始化完成,等待1秒让摄像头稳定...")
+        time.sleep(1)
+        
+        # 预读取几帧,丢弃初始的不稳定帧
+        for _ in range(5):
+            ret, _ = cap.read()
+            if not ret:
+                # 短暂休眠后重试
+                time.sleep(0.1)
+        
+        # 创建空白帧,防止摄像头初始帧为黑
+        blank_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+        self._put_text_freetype(blank_frame, "初始化摄像头...", (10, 30), 
+                              font_size=18, color=(0, 0, 255))
+        
+        # 创建窗口
+        cv2.namedWindow('捕获人脸', cv2.WINDOW_NORMAL)
+        cv2.resizeWindow('捕获人脸', 640, 480)
+        
+        frame_count = 0
+        consecutive_failures = 0
+        
+        while True:
+            ret, frame = cap.read()
+            
+            if not ret or frame is None or frame.size == 0:
+                consecutive_failures += 1
+                print(f"⚠️  无法读取帧 ({frame_count}/{consecutive_failures})")
+                
+                # 使用空白帧
+                display_frame = blank_frame.copy()
+                self._put_text_freetype(display_frame, f"无法读取帧,尝试次数: {consecutive_failures}", (10, 60), 
+                                      font_size=14, color=(0, 0, 255))
+                
+                if consecutive_failures > 10:
+                    print("❌ 连续10次无法读取帧,退出")
+                    cap.release()
+                    cv2.destroyAllWindows()
+                    return False
+            else:
+                consecutive_failures = 0
+                frame_count += 1
+                
+                # 确保帧尺寸正确
+                if frame.shape[0] != 480 or frame.shape[1] != 640:
+                    display_frame = cv2.resize(frame, (640, 480))
+                else:
+                    display_frame = frame.copy()
+            
+            # 在图像上显示提示信息
+            self._put_text_freetype(display_frame, "按 'c' 键捕获,按 'q' 键取消", (10, 30), 
+                                  font_size=18, color=(0, 0, 255))
+            
+            # 显示当前帧计数
+            self._put_text_freetype(display_frame, f"帧计数: {frame_count}", (10, 450), 
+                                  font_size=14, color=(0, 255, 0))
+            
+            # 显示图像
+            cv2.imshow('捕获人脸', display_frame)
+            
+            # 等待键盘输入
+            key = cv2.waitKey(1) & 0xFF
+            if key == ord('q'):
+                # 取消
+                cap.release()
+                cv2.destroyAllWindows()
+                print("已取消添加")
+                return False
+            elif key == ord('c'):
+                # 捕获图像
+                cap.release()
+                cv2.destroyAllWindows()
+                
+                # 确保捕获的是有效图像
+                if consecutive_failures == 0 and frame is not None and frame.size > 0:
+                    # 检测并添加人脸
+                    return self.add_face_from_frame(frame, name)
+                else:
+                    print("❌ 无法捕获有效图像")
+                    return False
+    
+    def add_face_from_frame(self, frame, name):
+        """
+        从图像帧添加人脸
+        
+        Args:
+            frame: 图像帧
+            name: 人脸对应的名字
+        
+        Returns:
+            bool: 添加成功返回True,失败返回False
+        """
+        try:
+            # 检测人脸
+            faces = self.app.get(frame)
+            if len(faces) == 0:
+                print("错误:图像中未检测到人脸")
+                return False
+            elif len(faces) > 1:
+                print("警告:图像中检测到多张人脸,仅使用第一张")
+            
+            # 获取人脸特征
+            face = faces[0]
+            if 'embedding' not in face:
+                print("错误:无法提取人脸特征")
+                return False
+            
+            # 添加到数据库
+            self.face_database[name] = face['embedding']
+            print(f"成功添加人脸: {name}")
+            return True
+        except Exception as e:
+            error_msg = str(e)
+            print(f"从帧添加人脸时出错: {error_msg}")
+            
+            # 检查是否是执行提供程序相关错误
+            is_provider_error = any(keyword in error_msg for keyword in 
+                                  ['CUDA', 'cuda', 'CUDNN', 'cudnn', 'GPU', 'gpu', 
+                                   'FusedConv', 'TensorRT', 'tensorrt', 'TRT', 'trt'])
+            
+            if is_provider_error:
+                print("检测到执行提供程序相关错误,尝试重新初始化...")
+                # 重新初始化应用(会尝试TensorRT -> CUDA -> CPU的回退)
+                if self._reinit_app_with_fallback(use_tensorrt=True):
+                    # 重新尝试添加人脸
+                    return self.add_face_from_frame(frame, name)
+                else:
+                    print("重新初始化失败")
+                    return False
+            return False
+            
+class FaceRecognitionNode(Node):  
+    """人脸检测识别ROS2节点"""
+    
+    def __init__(self):
+        super().__init__('face_recognition_node')
+        
+        # 声明参数
+        self.declare_parameter('db_path', '/home/ubuntu/eyes/src/eye_ros/face_database/face_database.pkl')
+        self.declare_parameter('model_name', 'buffalo_l')
+        self.declare_parameter('image_topic', '/camera/camera/color/image_raw')
+        
+        # 获取参数值
+        self.db_path = self.get_parameter('db_path').value
+        self.model_name = self.get_parameter('model_name').value
+        self.image_topic = self.get_parameter('image_topic').value
+        
+        # 验证数据库路径
+        self.get_logger().info(f'使用数据库路径: {self.db_path}')
+        self.get_logger().info(f'数据库文件是否存在: {os.path.exists(self.db_path)}')
+        
+        # 检查数据库文件的绝对路径
+        abs_db_path = os.path.abspath(self.db_path)
+        self.get_logger().info(f'数据库绝对路径: {abs_db_path}')
+        
+        # 检查数据库文件大小(如果存在)
+        if os.path.exists(self.db_path):
+            file_size = os.path.getsize(self.db_path)
+            self.get_logger().info(f'数据库文件大小: {file_size} 字节')
+            
+            # 检查文件权限
+            is_readable = os.access(self.db_path, os.R_OK)
+            is_writable = os.access(self.db_path, os.W_OK)
+            self.get_logger().info(f'数据库文件可读: {is_readable}')
+            self.get_logger().info(f'数据库文件可写: {is_writable}')
+        
+        # 检查数据库文件夹是否存在
+        db_dir = os.path.dirname(self.db_path)
+        self.get_logger().info(f'数据库文件夹: {db_dir}')
+        self.get_logger().info(f'数据库文件夹是否存在: {os.path.exists(db_dir)}')
+        
+        # 检查数据库文件夹权限
+        if os.path.exists(db_dir):
+            is_dir_readable = os.access(db_dir, os.R_OK)
+            is_dir_writable = os.access(db_dir, os.W_OK)
+            is_dir_executable = os.access(db_dir, os.X_OK)
+            self.get_logger().info(f'数据库文件夹可读: {is_dir_readable}')
+            self.get_logger().info(f'数据库文件夹可写: {is_dir_writable}')
+            self.get_logger().info(f'数据库文件夹可执行: {is_dir_executable}')
+        else:
+            # 如果文件夹不存在,尝试创建
+            try:
+                os.makedirs(db_dir, exist_ok=True)
+                self.get_logger().info(f'已创建数据库文件夹: {db_dir}')
+            except Exception as e:
+                self.get_logger().error(f'创建数据库文件夹失败: {e}')
+        
+        # 创建发布者
+        self.face_publisher = self.create_publisher(String, 'face_recognition/name', 10)
+        self.face_position_publisher = self.create_publisher(String, 'face_recognition/position', 10)
+        # 初始化CvBridge
+        self.bridge = CvBridge()
+        
+        # 订阅彩色相机话题
+        self.image_sub = self.create_subscription(
+            Image,
+            self.image_topic,
+            self.image_callback,
+            10
+        )
+        self.image_sub  # 防止变量被垃圾回收
+        
+        # 初始化人脸识别系统
+        self.face_recognition = None
+        self._init_face_recognition()
+        
+        # 初始化运行标志
+        self.running = True
+        
+        self.get_logger().info('人脸检测识别节点初始化完成')
+        self.get_logger().info(f'正在订阅彩色相机话题: {self.image_topic}')
+        self.get_logger().info('按下ESC键即可退出程序')
+    
+    def _init_face_recognition(self):
+        """初始化人脸识别系统"""
+        try:
+            # 直接使用集成的FaceRecognitionSystem类
+            self.face_recognition = FaceRecognitionSystem(
+                db_path=self.db_path,
+                model_name=self.model_name
+            )
+            self.get_logger().info('人脸识别系统初始化成功')
+        except Exception as e:
+            self.get_logger().error(f'初始化人脸识别系统失败: {e}')
+            traceback.print_exc()
+    
+    def image_callback(self, msg):
+        """回调函数:收到ROS图像消息后,转换为OpenCV格式并执行人脸识别"""
+        try:
+            # 检查是否应该继续运行
+            if not self.running:
+                return
+            
+            # 调试信息:检查图像消息
+        
+            # 关键步骤:ROS Image → OpenCV图像
+            cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding="bgr8")
+            
+            # 调试信息:检查转换后的图像
+            
+            
+            # 检测人脸
+            faces = self.face_recognition.app.get(cv_image)
+            
+            self.get_logger().info(f"检测到 {len(faces)} 张人脸")
+            
+            # 处理识别结果
+            for face in faces:
+                # 识别人脸
+                name, similarity = self.face_recognition.recognize_face(face)
+                
+                # 提取置信度
+                confidence = face.get('confidence', 0.0)
+                
+                # 创建消息
+                msg = String()
+                msg.data = name
+
+                # 发布消息
+                self.face_publisher.publish(msg)
+                self.get_logger().info(f'识别到人脸: {name} (相似度: {similarity:.2f}, 置信度: {confidence:.2f})')
+                
+                # 为了避免频繁发布,每次只发布第一个识别到的人脸
+                break
+        
+            # 显示图像
+            cv2.imshow('人脸识别', cv_image)
+            
+            # 按键检测
+            if cv2.waitKey(1) & 0xFF == 27:
+                self.get_logger().info('用户按下ESC键,准备退出程序...')
+                self.running = False
+                
+        except Exception as e:
+            self.get_logger().error(f'执行人脸识别时出错: {e}')
+            traceback.print_exc()
+    
+    def destroy_node(self):
+        """销毁节点,释放资源"""
+        self.get_logger().info('开始销毁节点,释放资源...')
+        
+        # 释放人脸识别系统资源
+        if self.face_recognition:
+            try:
+                # FaceRecognitionSystem 类没有release方法,直接跳过
+                self.get_logger().info('人脸识别系统资源已释放')
+            except Exception as e:
+                self.get_logger().error(f'释放人脸识别系统资源时出错: {e}')
+        
+        # 关闭所有窗口
+        try:
+            cv2.destroyAllWindows()
+            self.get_logger().info('所有窗口已关闭')
+        except Exception as e:
+            self.get_logger().error(f'关闭窗口时出错: {e}')     
+        
+        self.get_logger().info('节点销毁完成')
+        super().destroy_node()
+    
+    def stop(self):
+        """优雅停止节点"""
+        self.get_logger().info('开始清理资源...')
+        self.running = False
+        # 关闭OpenCV窗口
+        cv2.destroyAllWindows()
+        # 销毁节点
+        self.destroy_node()
+
+def main(args=None):
+    """主函数"""
+    # 初始化ROS 2上下文
+    rclpy.init(args=args)
+    
+    # 创建节点实例
+    node = FaceRecognitionNode()
+    
+    # 自定义自旋循环,支持优雅退出
+    try:
+        while rclpy.ok() and node.running:
+            # 处理一次回调,超时时间100ms
+            rclpy.spin_once(node, timeout_sec=0.1)
+    except KeyboardInterrupt:
+        # 处理Ctrl+C中断
+        node.get_logger().info('收到Ctrl+C中断,准备退出...')
+    finally:
+        # 关闭资源
+        node.stop()
+        # 确保所有资源都被释放
+        cv2.destroyAllWindows()
+        rclpy.shutdown()
+        print("程序已优雅退出!")
+
+if __name__ == '__main__':
+    main()
+    

+ 1 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/install/.colcon_install_layout

@@ -0,0 +1 @@
+isolated

+ 0 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/install/COLCON_IGNORE


+ 407 - 0
build/eye_ros/ament_cmake_python/eye_ros/eye_ros/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)

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini