From d86b9eefe88963167f348b9ea8a829aa28a50e65 Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Mon, 7 Apr 2025 20:36:12 +0000 Subject: [PATCH 1/6] Improve steering controller odometry tests --- build/.built_by | 1 + build/COLCON_IGNORE | 0 .../colcon_build.rc | 1 + .../colcon_test.rc | 1 + .../colcon_test.rc | 1 + install/.colcon_install_layout | 1 + install/COLCON_IGNORE | 0 install/_local_setup_util_ps1.py | 407 ++++++++ install/_local_setup_util_sh.py | 407 ++++++++ .../package.bash | 31 + .../ackermann_steering_controller/package.dsv | 0 .../ackermann_steering_controller/package.ps1 | 108 ++ .../ackermann_steering_controller/package.sh | 52 + .../ackermann_steering_controller/package.zsh | 42 + .../packages/ackermann_steering_controller | 1 + install/local_setup.bash | 121 +++ install/local_setup.ps1 | 55 + install/local_setup.sh | 137 +++ install/local_setup.zsh | 134 +++ install/setup.bash | 31 + install/setup.ps1 | 29 + install/setup.sh | 45 + install/setup.zsh | 31 + log/COLCON_IGNORE | 0 log/build_2025-03-19_19-39-21/events.log | 29 + log/build_2025-03-19_19-39-21/logger_all.log | 397 +++++++ log/latest | 1 + log/latest_build | 1 + log/latest_test | 1 + .../ackermann_steering_controller/command.log | 0 .../ackermann_steering_controller/stderr.log | 14 + .../ackermann_steering_controller/stdout.log | 0 .../stdout_stderr.log | 14 + .../ackermann_steering_controller/streams.log | 14 + log/test_2025-03-19_19-37-33/events.log | 6 + log/test_2025-03-19_19-37-33/logger_all.log | 383 +++++++ log/test_2025-03-19_19-38-11/events.log | 6 + log/test_2025-03-19_19-38-11/logger_all.log | 397 +++++++ .../parallel_gripper_controller/command.log | 0 .../parallel_gripper_controller/stderr.log | 14 + .../parallel_gripper_controller/stdout.log | 0 .../stdout_stderr.log | 14 + .../parallel_gripper_controller/streams.log | 14 + .../test/test_steering_odometry.cpp | 974 +++++++++++++----- .../test/test_steering_odometry_utils.hpp | 135 +++ 45 files changed, 3818 insertions(+), 232 deletions(-) create mode 100644 build/.built_by create mode 100644 build/COLCON_IGNORE create mode 100644 build/ackermann_steering_controller/colcon_build.rc create mode 100644 build/ackermann_steering_controller/colcon_test.rc create mode 100644 build/parallel_gripper_controller/colcon_test.rc create mode 100644 install/.colcon_install_layout create mode 100644 install/COLCON_IGNORE create mode 100644 install/_local_setup_util_ps1.py create mode 100644 install/_local_setup_util_sh.py create mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash create mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv create mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 create mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh create mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh create mode 100644 install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller create mode 100644 install/local_setup.bash create mode 100644 install/local_setup.ps1 create mode 100644 install/local_setup.sh create mode 100644 install/local_setup.zsh create mode 100644 install/setup.bash create mode 100644 install/setup.ps1 create mode 100644 install/setup.sh create mode 100644 install/setup.zsh create mode 100644 log/COLCON_IGNORE create mode 100644 log/build_2025-03-19_19-39-21/events.log create mode 100644 log/build_2025-03-19_19-39-21/logger_all.log create mode 120000 log/latest create mode 120000 log/latest_build create mode 120000 log/latest_test create mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log create mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log create mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log create mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log create mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log create mode 100644 log/test_2025-03-19_19-37-33/events.log create mode 100644 log/test_2025-03-19_19-37-33/logger_all.log create mode 100644 log/test_2025-03-19_19-38-11/events.log create mode 100644 log/test_2025-03-19_19-38-11/logger_all.log create mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log create mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log create mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log create mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log create mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log create mode 100644 steering_controllers_library/test/test_steering_odometry_utils.hpp diff --git a/build/.built_by b/build/.built_by new file mode 100644 index 0000000000..06e74acb63 --- /dev/null +++ b/build/.built_by @@ -0,0 +1 @@ +colcon diff --git a/build/COLCON_IGNORE b/build/COLCON_IGNORE new file mode 100644 index 0000000000..e69de29bb2 diff --git a/build/ackermann_steering_controller/colcon_build.rc b/build/ackermann_steering_controller/colcon_build.rc new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/build/ackermann_steering_controller/colcon_build.rc @@ -0,0 +1 @@ +1 diff --git a/build/ackermann_steering_controller/colcon_test.rc b/build/ackermann_steering_controller/colcon_test.rc new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/build/ackermann_steering_controller/colcon_test.rc @@ -0,0 +1 @@ +1 diff --git a/build/parallel_gripper_controller/colcon_test.rc b/build/parallel_gripper_controller/colcon_test.rc new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/build/parallel_gripper_controller/colcon_test.rc @@ -0,0 +1 @@ +1 diff --git a/install/.colcon_install_layout b/install/.colcon_install_layout new file mode 100644 index 0000000000..3aad5336af --- /dev/null +++ b/install/.colcon_install_layout @@ -0,0 +1 @@ +isolated diff --git a/install/COLCON_IGNORE b/install/COLCON_IGNORE new file mode 100644 index 0000000000..e69de29bb2 diff --git a/install/_local_setup_util_ps1.py b/install/_local_setup_util_ps1.py new file mode 100644 index 0000000000..3c6d9e8779 --- /dev/null +++ b/install/_local_setup_util_ps1.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"' +FORMAT_STR_USE_ENV_VAR = '$env:{name}' +FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/install/_local_setup_util_sh.py b/install/_local_setup_util_sh.py new file mode 100644 index 0000000000..f67eaa9891 --- /dev/null +++ b/install/_local_setup_util_sh.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"' +FORMAT_STR_USE_ENV_VAR = '${name}' +FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'if [ "$(echo -n ${name} | head -c 1)" = ":" ]; then export {name}=${{{name}#?}} ; fi' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'if [ "$(echo -n ${name} | tail -c 1)" = ":" ]; then export {name}=${{{name}%?}} ; fi' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash new file mode 100644 index 0000000000..c84827fcf8 --- /dev/null +++ b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash @@ -0,0 +1,31 @@ +# generated from colcon_bash/shell/template/package.bash.em + +# This script extends the environment for this package. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" +else + _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh script of this package +_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/ackermann_steering_controller/package.sh" + +unset _colcon_package_bash_source_script +unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv new file mode 100644 index 0000000000..e69de29bb2 diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 new file mode 100644 index 0000000000..4198e42ecf --- /dev/null +++ b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 @@ -0,0 +1,108 @@ +# generated from colcon_powershell/shell/template/package.ps1.em + +# function to append a value to a variable +# which uses colons as separators +# duplicates as well as leading separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_append_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + $_duplicate="" + # start with no values + $_all_values="" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -eq $_value) { + $_duplicate="1" + } + if ($_all_values) { + $_all_values="${_all_values};$_" + } else { + $_all_values="$_" + } + } + } + } + # append only non-duplicates + if (!$_duplicate) { + # avoid leading separator + if ($_all_values) { + $_all_values="${_all_values};${_value}" + } else { + $_all_values="${_value}" + } + } + + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_prepend_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + # start with the new value + $_all_values="$_value" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -ne $_value) { + # keep non-duplicate values + $_all_values="${_all_values};$_" + } + } + } + } + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +function colcon_package_source_powershell_script { + param ( + $_colcon_package_source_powershell_script + ) + # source script with conditional trace output + if (Test-Path $_colcon_package_source_powershell_script) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_package_source_powershell_script'" + } + . "$_colcon_package_source_powershell_script" + } else { + Write-Error "not found: '$_colcon_package_source_powershell_script'" + } +} + + diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh new file mode 100644 index 0000000000..7d7278e5f0 --- /dev/null +++ b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh @@ -0,0 +1,52 @@ +# generated from colcon_core/shell/template/package.sh.em + +# This script extends the environment for this package. + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prepend_unique_value_IFS=$IFS + IFS=":" + # start with the new value + _all_values="$_value" + # workaround SH_WORD_SPLIT not being set in zsh + if [ "$(command -v colcon_zsh_convert_to_array)" ]; then + colcon_zsh_convert_to_array _values + fi + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + # restore the field separator + IFS=$_colcon_prepend_unique_value_IFS + unset _colcon_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh new file mode 100644 index 0000000000..be0b458edc --- /dev/null +++ b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh @@ -0,0 +1,42 @@ +# generated from colcon_zsh/shell/template/package.zsh.em + +# This script extends the environment for this package. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" +else + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +colcon_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# source sh script of this package +_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/ackermann_steering_controller/package.sh" +unset convert_zsh_to_array + +unset _colcon_package_zsh_source_script +unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller b/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller new file mode 100644 index 0000000000..31e56ccb03 --- /dev/null +++ b/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller @@ -0,0 +1 @@ +backward_ros:control_msgs:controller_interface:hardware_interface:pluginlib:rclcpp:rclcpp_lifecycle:std_srvs:steering_controllers_library \ No newline at end of file diff --git a/install/local_setup.bash b/install/local_setup.bash new file mode 100644 index 0000000000..03f00256c1 --- /dev/null +++ b/install/local_setup.bash @@ -0,0 +1,121 @@ +# generated from colcon_bash/shell/template/prefix.bash.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +else + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_bash_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_bash_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_bash_prepend_unique_value_IFS" + unset _colcon_prefix_bash_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_bash_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_bash_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh bash)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_bash_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.ps1 b/install/local_setup.ps1 new file mode 100644 index 0000000000..6f68c8dede --- /dev/null +++ b/install/local_setup.ps1 @@ -0,0 +1,55 @@ +# generated from colcon_powershell/shell/template/prefix.ps1.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# check environment variable for custom Python executable +if ($env:COLCON_PYTHON_EXECUTABLE) { + if (!(Test-Path "$env:COLCON_PYTHON_EXECUTABLE" -PathType Leaf)) { + echo "error: COLCON_PYTHON_EXECUTABLE '$env:COLCON_PYTHON_EXECUTABLE' doesn't exist" + exit 1 + } + $_colcon_python_executable="$env:COLCON_PYTHON_EXECUTABLE" +} else { + # use the Python executable known at configure time + $_colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if (!(Test-Path "$_colcon_python_executable" -PathType Leaf)) { + if (!(Get-Command "python3" -ErrorAction SilentlyContinue)) { + echo "error: unable to find python3 executable" + exit 1 + } + $_colcon_python_executable="python3" + } +} + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_powershell_source_script { + param ( + $_colcon_prefix_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_powershell_source_script_param'" + } + . "$_colcon_prefix_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_powershell_source_script_param'" + } +} + +# get all commands in topological order +$_colcon_ordered_commands = & "$_colcon_python_executable" "$(Split-Path $PSCommandPath -Parent)/_local_setup_util_ps1.py" ps1 + +# execute all commands in topological order +if ($env:COLCON_TRACE) { + echo "Execute generated script:" + echo "<<<" + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Write-Output + echo ">>>" +} +if ($_colcon_ordered_commands) { + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Invoke-Expression +} diff --git a/install/local_setup.sh b/install/local_setup.sh new file mode 100644 index 0000000000..de4cdbdc70 --- /dev/null +++ b/install/local_setup.sh @@ -0,0 +1,137 @@ +# generated from colcon_core/shell/template/prefix.sh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/home/vedant87/ros_ws/src/ros2_controllers/install" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX + return 1 + fi +else + _colcon_prefix_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_sh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_sh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_sh_prepend_unique_value_IFS" + unset _colcon_prefix_sh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_sh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_sh_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "_colcon_prefix_sh_source_script() { + if [ -f \"\$1\" ]; then + if [ -n \"\$COLCON_TRACE\" ]; then + echo \"# . \\\"\$1\\\"\" + fi + . \"\$1\" + else + echo \"not found: \\\"\$1\\\"\" 1>&2 + fi + }" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.zsh b/install/local_setup.zsh new file mode 100644 index 0000000000..b6487102f2 --- /dev/null +++ b/install/local_setup.zsh @@ -0,0 +1,134 @@ +# generated from colcon_zsh/shell/template/prefix.zsh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +else + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +_colcon_prefix_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_zsh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_zsh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # workaround SH_WORD_SPLIT not being set + _colcon_prefix_zsh_convert_to_array _values + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_zsh_prepend_unique_value_IFS" + unset _colcon_prefix_zsh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_zsh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_zsh_prepend_unique_value +unset _colcon_prefix_zsh_convert_to_array + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh zsh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_zsh_COLCON_CURRENT_PREFIX diff --git a/install/setup.bash b/install/setup.bash new file mode 100644 index 0000000000..bb38dd20e8 --- /dev/null +++ b/install/setup.bash @@ -0,0 +1,31 @@ +# generated from colcon_bash/shell/template/prefix_chain.bash.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/jazzy" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_bash_source_script diff --git a/install/setup.ps1 b/install/setup.ps1 new file mode 100644 index 0000000000..0b38e3e78c --- /dev/null +++ b/install/setup.ps1 @@ -0,0 +1,29 @@ +# generated from colcon_powershell/shell/template/prefix_chain.ps1.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_chain_powershell_source_script { + param ( + $_colcon_prefix_chain_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_chain_powershell_source_script_param'" + } + . "$_colcon_prefix_chain_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'" + } +} + +# source chained prefixes +_colcon_prefix_chain_powershell_source_script "/opt/ros/jazzy\local_setup.ps1" + +# source this prefix +$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent) +_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1" diff --git a/install/setup.sh b/install/setup.sh new file mode 100644 index 0000000000..44da871bd0 --- /dev/null +++ b/install/setup.sh @@ -0,0 +1,45 @@ +# generated from colcon_core/shell/template/prefix_chain.sh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/home/vedant87/ros_ws/src/ros2_controllers/install +if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX + return 1 +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/jazzy" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + +unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_sh_source_script +unset COLCON_CURRENT_PREFIX diff --git a/install/setup.zsh b/install/setup.zsh new file mode 100644 index 0000000000..6e4a496a39 --- /dev/null +++ b/install/setup.zsh @@ -0,0 +1,31 @@ +# generated from colcon_zsh/shell/template/prefix_chain.zsh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/jazzy" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_zsh_source_script diff --git a/log/COLCON_IGNORE b/log/COLCON_IGNORE new file mode 100644 index 0000000000..e69de29bb2 diff --git a/log/build_2025-03-19_19-39-21/events.log b/log/build_2025-03-19_19-39-21/events.log new file mode 100644 index 0000000000..9e911890bf --- /dev/null +++ b/log/build_2025-03-19_19-39-21/events.log @@ -0,0 +1,29 @@ +[0.000000] (-) TimerEvent: {} +[0.000825] (-) JobUnselected: {'identifier': 'admittance_controller'} +[0.000920] (-) JobUnselected: {'identifier': 'bicycle_steering_controller'} +[0.000984] (-) JobUnselected: {'identifier': 'diff_drive_controller'} +[0.001375] (-) JobUnselected: {'identifier': 'effort_controllers'} +[0.001447] (-) JobUnselected: {'identifier': 'force_torque_sensor_broadcaster'} +[0.001509] (-) JobUnselected: {'identifier': 'forward_command_controller'} +[0.001593] (-) JobUnselected: {'identifier': 'gpio_controllers'} +[0.001658] (-) JobUnselected: {'identifier': 'gripper_controllers'} +[0.001719] (-) JobUnselected: {'identifier': 'imu_sensor_broadcaster'} +[0.002311] (-) JobUnselected: {'identifier': 'joint_state_broadcaster'} +[0.002435] (-) JobUnselected: {'identifier': 'joint_trajectory_controller'} +[0.002498] (-) JobUnselected: {'identifier': 'mecanum_drive_controller'} +[0.002560] (-) JobUnselected: {'identifier': 'parallel_gripper_controller'} +[0.002624] (-) JobUnselected: {'identifier': 'pid_controller'} +[0.002685] (-) JobUnselected: {'identifier': 'pose_broadcaster'} +[0.002748] (-) JobUnselected: {'identifier': 'position_controllers'} +[0.002808] (-) JobUnselected: {'identifier': 'range_sensor_broadcaster'} +[0.002871] (-) JobUnselected: {'identifier': 'ros2_controllers'} +[0.002932] (-) JobUnselected: {'identifier': 'ros2_controllers_test_nodes'} +[0.003008] (-) JobUnselected: {'identifier': 'rqt_joint_trajectory_controller'} +[0.003074] (-) JobUnselected: {'identifier': 'steering_controllers_library'} +[0.003138] (-) JobUnselected: {'identifier': 'tricycle_controller'} +[0.003220] (-) JobUnselected: {'identifier': 'tricycle_steering_controller'} +[0.003277] (-) JobUnselected: {'identifier': 'velocity_controllers'} +[0.003348] (ackermann_steering_controller) JobQueued: {'identifier': 'ackermann_steering_controller', 'dependencies': OrderedDict({'steering_controllers_library': '/home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library'})} +[0.003495] (ackermann_steering_controller) JobStarted: {'identifier': 'ackermann_steering_controller'} +[0.020187] (ackermann_steering_controller) JobEnded: {'identifier': 'ackermann_steering_controller', 'rc': 1} +[0.031005] (-) EventReactorShutdown: {} diff --git a/log/build_2025-03-19_19-39-21/logger_all.log b/log/build_2025-03-19_19-39-21/logger_all.log new file mode 100644 index 0000000000..badf91e975 --- /dev/null +++ b/log/build_2025-03-19_19-39-21/logger_all.log @@ -0,0 +1,397 @@ +[0.235s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'ackermann_steering_controller'] +[0.235s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['ackermann_steering_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=, verb_extension=, main=>) +[0.276s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.276s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.277s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' +[0.311s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' +[0.314s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' +[0.317s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' +[0.319s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' +[0.322s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' +[0.324s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' +[0.325s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' +[0.327s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' +[0.329s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' +[0.330s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' +[0.332s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' +[0.334s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' +[0.336s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' +[0.338s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' +[0.339s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' +[0.340s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' +[0.342s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' +[0.344s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' +[0.345s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' +[0.347s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' +[0.348s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' +[0.349s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' +[0.351s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' +[0.353s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' +[0.355s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' +[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'parallel_gripper_controller' in 'parallel_gripper_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' +[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' +[0.383s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.383s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.386s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 310 installed packages in /opt/ros/jazzy +[0.387s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_args' from command line to 'None' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_target' from command line to 'None' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_clean_cache' from command line to 'False' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_clean_first' from command line to 'False' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_force_configure' from command line to 'False' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'ament_cmake_args' from command line to 'None' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'catkin_cmake_args' from command line to 'None' +[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.434s] DEBUG:colcon.colcon_core.verb:Building package 'ackermann_steering_controller' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/ackermann_steering_controller', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller', 'merge_install': False, 'path': '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller', 'symlink_install': False, 'test_result_base': None} +[0.434s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.436s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.436s] INFO:colcon.colcon_ros.task.ament_cmake.build:Building ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' with build type 'ament_cmake' +[0.437s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' +[0.441s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.441s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.441s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.443s] ERROR:colcon.colcon_cmake.task.cmake.build:Failed to find the following files: +- /home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library/share/steering_controllers_library/package.sh +Check that the following packages have been built: +- steering_controllers_library +[0.444s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(ackermann_steering_controller) +[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller' for CMake module files +[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller' for CMake config files +[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/bin' +[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/lib/pkgconfig/ackermann_steering_controller.pc' +[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/lib/python3.12/site-packages' +[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/bin' +[0.448s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1' +[0.451s] INFO:colcon.colcon_core.shell:Creating package descriptor '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv' +[0.452s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh' +[0.453s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash' +[0.453s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh' +[0.454s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller) +[0.466s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[0.467s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[0.467s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '1' +[0.467s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[0.535s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[0.535s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[0.535s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[0.536s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files +[0.536s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[0.537s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.ps1' +[0.537s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/vedant87/ros_ws/src/ros2_controllers/install/_local_setup_util_ps1.py' +[0.538s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.ps1' +[0.539s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.sh' +[0.540s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/vedant87/ros_ws/src/ros2_controllers/install/_local_setup_util_sh.py' +[0.541s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.sh' +[0.542s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.bash' +[0.543s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.bash' +[0.544s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.zsh' +[0.544s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.zsh' diff --git a/log/latest b/log/latest new file mode 120000 index 0000000000..b57d247c77 --- /dev/null +++ b/log/latest @@ -0,0 +1 @@ +latest_build \ No newline at end of file diff --git a/log/latest_build b/log/latest_build new file mode 120000 index 0000000000..1a8050921d --- /dev/null +++ b/log/latest_build @@ -0,0 +1 @@ +build_2025-03-19_19-39-21 \ No newline at end of file diff --git a/log/latest_test b/log/latest_test new file mode 120000 index 0000000000..b6beba4557 --- /dev/null +++ b/log/latest_test @@ -0,0 +1 @@ +test_2025-03-19_19-38-11 \ No newline at end of file diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log new file mode 100644 index 0000000000..82feb469a7 --- /dev/null +++ b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log @@ -0,0 +1,14 @@ +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log new file mode 100644 index 0000000000..82feb469a7 --- /dev/null +++ b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log @@ -0,0 +1,14 @@ +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log new file mode 100644 index 0000000000..35fc2d1df5 --- /dev/null +++ b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log @@ -0,0 +1,14 @@ +[0.016s] Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/events.log b/log/test_2025-03-19_19-37-33/events.log new file mode 100644 index 0000000000..3c7e8f50f9 --- /dev/null +++ b/log/test_2025-03-19_19-37-33/events.log @@ -0,0 +1,6 @@ +[0.000000] (-) TimerEvent: {} +[0.000541] (ackermann_steering_controller) JobQueued: {'identifier': 'ackermann_steering_controller', 'dependencies': OrderedDict({'steering_controllers_library': '/home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library', 'ackermann_steering_controller': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller'})} +[0.001114] (ackermann_steering_controller) JobStarted: {'identifier': 'ackermann_steering_controller'} +[0.015384] (ackermann_steering_controller) StderrLine: {'line': b'Traceback (most recent call last):\n File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__\n rc = await self.task(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__\n return await task_method(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test\n return await extension.test()\n ^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test\n assert os.path.exists(args.build_base), \\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Has this package been built before?\n'} +[0.017001] (ackermann_steering_controller) JobEnded: {'identifier': 'ackermann_steering_controller', 'rc': 1} +[0.026081] (-) EventReactorShutdown: {} diff --git a/log/test_2025-03-19_19-37-33/logger_all.log b/log/test_2025-03-19_19-37-33/logger_all.log new file mode 100644 index 0000000000..de8c613479 --- /dev/null +++ b/log/test_2025-03-19_19-37-33/logger_all.log @@ -0,0 +1,383 @@ +[0.291s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'test', '--packages-select', 'ackermann_steering_controller'] +[0.292s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='test', build_base='build', install_base='install', merge_install=False, test_result_base=None, retest_until_fail=0, retest_until_pass=0, abort_on_error=False, return_code_on_test_failure=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['ackermann_steering_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], ctest_args=None, python_testing=None, pytest_args=None, pytest_with_coverage=False, unittest_args=None, verb_parser=, verb_extension=, main=>) +[0.333s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.333s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.334s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' +[0.362s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' +[0.364s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' +[0.365s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore_ament_install' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_pkg'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_pkg' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_meta'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_meta' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ros'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ros' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['cmake', 'python'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'cmake' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['python_setup_py'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python_setup_py' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' +[0.370s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' +[0.375s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' +[0.377s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' +[0.378s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' +[0.380s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' +[0.381s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' +[0.383s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore_ament_install' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_pkg'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_pkg' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_meta'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_meta' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ros'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ros' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['cmake', 'python'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'cmake' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['python_setup_py'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python_setup_py' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' +[0.386s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' +[0.388s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' +[0.390s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' +[0.391s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' +[0.393s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' +[0.394s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' +[0.396s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' +[0.398s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' +[0.399s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' +[0.401s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' +[0.402s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' +[0.422s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' +[0.424s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' +[0.425s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' +[0.426s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' +[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.435s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'parallel_gripper_controller' in 'parallel_gripper_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' +[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' +[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'ctest_args' from command line to 'None' +[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'python_testing' from command line to 'None' +[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'pytest_args' from command line to 'None' +[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'pytest_with_coverage' from command line to 'False' +[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'unittest_args' from command line to 'None' +[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'retest_until_pass' from command line to '0' +[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'retest_until_fail' from command line to '0' +[0.437s] DEBUG:colcon.colcon_core.verb.test:Testing package 'ackermann_steering_controller' with the following arguments: {'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/ackermann_steering_controller', 'ctest_args': None, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller', 'path': '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller', 'pytest_args': None, 'pytest_with_coverage': False, 'python_testing': None, 'retest_until_fail': 0, 'retest_until_pass': 0, 'test_result_base': None, 'unittest_args': None} +[0.437s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.438s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.439s] INFO:colcon.colcon_ros.task.ament_cmake.test:Testing ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' with build type 'ament_cmake' +[0.439s] INFO:colcon.colcon_cmake.task.cmake.test:Testing CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' +[0.463s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[0.464s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[0.464s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with 'Has this package been built before?' +[0.464s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[0.534s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[0.536s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files +[0.536s] DEBUG:colcon.colcon_core.event_reactor:joined thread diff --git a/log/test_2025-03-19_19-38-11/events.log b/log/test_2025-03-19_19-38-11/events.log new file mode 100644 index 0000000000..2c36cd3adb --- /dev/null +++ b/log/test_2025-03-19_19-38-11/events.log @@ -0,0 +1,6 @@ +[0.000000] (-) TimerEvent: {} +[0.000827] (parallel_gripper_controller) JobQueued: {'identifier': 'parallel_gripper_controller', 'dependencies': OrderedDict({'parallel_gripper_controller': '/home/vedant87/ros_ws/src/ros2_controllers/install/parallel_gripper_controller'})} +[0.001225] (parallel_gripper_controller) JobStarted: {'identifier': 'parallel_gripper_controller'} +[0.002638] (parallel_gripper_controller) StderrLine: {'line': b'Traceback (most recent call last):\n File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__\n rc = await self.task(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__\n return await task_method(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test\n return await extension.test()\n ^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test\n assert os.path.exists(args.build_base), \\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Has this package been built before?\n'} +[0.004412] (parallel_gripper_controller) JobEnded: {'identifier': 'parallel_gripper_controller', 'rc': 1} +[0.013683] (-) EventReactorShutdown: {} diff --git a/log/test_2025-03-19_19-38-11/logger_all.log b/log/test_2025-03-19_19-38-11/logger_all.log new file mode 100644 index 0000000000..a165002400 --- /dev/null +++ b/log/test_2025-03-19_19-38-11/logger_all.log @@ -0,0 +1,397 @@ +[0.300s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'test', '--packages-select', 'parallel_gripper_controller'] +[0.300s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='test', build_base='build', install_base='install', merge_install=False, test_result_base=None, retest_until_fail=0, retest_until_pass=0, abort_on_error=False, return_code_on_test_failure=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['parallel_gripper_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], ctest_args=None, python_testing=None, pytest_args=None, pytest_with_coverage=False, unittest_args=None, verb_parser=, verb_extension=, main=>) +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.343s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' +[0.371s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' +[0.373s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' +[0.375s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore_ament_install' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_pkg'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_pkg' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_meta'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_meta' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ros'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ros' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['cmake', 'python'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'cmake' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['python_setup_py'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python_setup_py' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ignore' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ignore_ament_install' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['colcon_pkg'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'colcon_pkg' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['colcon_meta'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'colcon_meta' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['ros'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ros' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['cmake', 'python'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'cmake' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'python' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['python_setup_py'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'python_setup_py' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' +[0.378s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' +[0.381s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' +[0.383s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' +[0.385s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' +[0.386s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' +[0.387s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' +[0.389s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore_ament_install' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_pkg'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_pkg' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_meta'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_meta' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ros'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ros' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['cmake', 'python'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'cmake' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['python_setup_py'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python_setup_py' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' +[0.392s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' +[0.393s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' +[0.395s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' +[0.397s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' +[0.399s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' +[0.401s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' +[0.402s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' +[0.404s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' +[0.406s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' +[0.407s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' +[0.408s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' +[0.429s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' +[0.431s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' +[0.432s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' +[0.434s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' +[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.443s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ackermann_steering_controller' in 'ackermann_steering_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' +[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' +[0.444s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'ctest_args' from command line to 'None' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'python_testing' from command line to 'None' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'pytest_args' from command line to 'None' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'pytest_with_coverage' from command line to 'False' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'unittest_args' from command line to 'None' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'retest_until_pass' from command line to '0' +[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'retest_until_fail' from command line to '0' +[0.445s] DEBUG:colcon.colcon_core.verb.test:Testing package 'parallel_gripper_controller' with the following arguments: {'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/parallel_gripper_controller', 'ctest_args': None, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/parallel_gripper_controller', 'path': '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller', 'pytest_args': None, 'pytest_with_coverage': False, 'python_testing': None, 'retest_until_fail': 0, 'retest_until_pass': 0, 'test_result_base': None, 'unittest_args': None} +[0.445s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.446s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.446s] INFO:colcon.colcon_ros.task.ament_cmake.test:Testing ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller' with build type 'ament_cmake' +[0.447s] INFO:colcon.colcon_cmake.task.cmake.test:Testing CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller' +[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with 'Has this package been built before?' +[0.459s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[0.524s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[0.526s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files +[0.526s] DEBUG:colcon.colcon_core.event_reactor:joined thread diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log new file mode 100644 index 0000000000..82feb469a7 --- /dev/null +++ b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log @@ -0,0 +1,14 @@ +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log new file mode 100644 index 0000000000..82feb469a7 --- /dev/null +++ b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log @@ -0,0 +1,14 @@ +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log new file mode 100644 index 0000000000..20677fa889 --- /dev/null +++ b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log @@ -0,0 +1,14 @@ +[0.003s] Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ + rc = await self.task(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ + return await task_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test + return await extension.test() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test + assert os.path.exists(args.build_base), \ + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Has this package been built before? diff --git a/steering_controllers_library/test/test_steering_odometry.cpp b/steering_controllers_library/test/test_steering_odometry.cpp index a211ac8bf4..923dbad874 100644 --- a/steering_controllers_library/test/test_steering_odometry.cpp +++ b/steering_controllers_library/test/test_steering_odometry.cpp @@ -18,363 +18,873 @@ #include "steering_controllers_library/steering_odometry.hpp" -TEST(TestSteeringOdometry, initialize) +#include "test_steering_odometry_utils.hpp" + +TEST_P(SteeringOdometryTestParameterized, initialize) { - EXPECT_NO_THROW(steering_odometry::SteeringOdometry()); - - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 3.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - EXPECT_DOUBLE_EQ(odom.get_heading(), 0.); - EXPECT_DOUBLE_EQ(odom.get_x(), 0.); - EXPECT_DOUBLE_EQ(odom.get_y(), 0.); + if ((test_type_ == TestType::INITIALIZE && odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + // Test constructor + EXPECT_NO_THROW(steering_odometry::SteeringOdometry()); + + // Verify initial state + EXPECT_DOUBLE_EQ(odom_->get_heading(), 0.); + EXPECT_DOUBLE_EQ(odom_->get_x(), 0.); + EXPECT_DOUBLE_EQ(odom_->get_y(), 0.); + } + + else + { + GTEST_SKIP(); + } } // ----------------- Ackermann ----------------- -TEST(TestSteeringOdometry, ackermann_odometry) +TEST_P(SteeringOdometryTestParameterized, AckermannOdometryTest) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 1., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - ASSERT_TRUE(odom.update_from_velocity(1., 1., .1, .1, .1)); - EXPECT_NEAR(odom.get_linear(), 1.002, 1e-3); - EXPECT_NEAR(odom.get_angular(), .1, 1e-3); - EXPECT_NEAR(odom.get_x(), .1, 1e-3); - EXPECT_NEAR(odom.get_heading(), .01, 1e-3); + if (!(test_type_ == TestType::ODOMETRY && odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + ASSERT_TRUE(ackermann_velocity_.has_value()); + const auto & [v_r, v_l, w_r, w_l, dt] = ackermann_velocity_.value(); + ASSERT_TRUE(odom_->update_from_velocity(v_r, v_l, w_r, w_l, dt)); + + // Verify results + EXPECT_NEAR(odom_->get_linear(), 1.002, 1e-3); + EXPECT_NEAR(odom_->get_angular(), 0.1, 1e-3); + EXPECT_NEAR(odom_->get_x(), 0.1, 1e-3); + EXPECT_NEAR(odom_->get_heading(), 0.01, 1e-3); } -TEST(TestSteeringOdometry, ackermann_odometry_openloop_linear) +TEST_P(SteeringOdometryTestParameterized, ackermann_odometry_openloop_linear) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_open_loop(2., 0., 0.5); - EXPECT_DOUBLE_EQ(odom.get_linear(), 2.); - EXPECT_DOUBLE_EQ(odom.get_x(), 1.); - EXPECT_DOUBLE_EQ(odom.get_y(), 0.); + if (!(test_type_ == TestType::OPEN_LOOP_LINEAR && + odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + // Reset to ensure clean state for this test + odom_->reset_odometry(); + + // Use the fixture's odom_ instance + odom_->update_open_loop(vx_open_, wz_open_, dt_open_); + + EXPECT_DOUBLE_EQ(odom_->get_linear(), vx_open_); + EXPECT_DOUBLE_EQ(odom_->get_x(), vx_open_ * dt_open_); + EXPECT_DOUBLE_EQ(odom_->get_y(), 0.0); } -TEST(TestSteeringOdometry, ackermann_odometry_openloop_angular_left) +TEST_P(SteeringOdometryTestParameterized, ackermann_odometry_openloop_angular_left) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_open_loop(1., 1., 1.); - EXPECT_DOUBLE_EQ(odom.get_linear(), 1.); - EXPECT_DOUBLE_EQ(odom.get_angular(), 1.); - - EXPECT_GT(odom.get_x(), 0); // pos x - EXPECT_GT(odom.get_y(), 0); // pos y, ie. left + if (!(test_type_ == TestType::OPEN_LOOP_LEFT && + odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->update_open_loop(vx_open_, wz_open_, dt_open_); + + EXPECT_DOUBLE_EQ(odom_->get_linear(), vx_open_); + EXPECT_DOUBLE_EQ(odom_->get_angular(), wz_open_); + EXPECT_GT(odom_->get_x(), 0); // Should move forward + EXPECT_GT(odom_->get_y(), 0); // Should move left } -TEST(TestSteeringOdometry, ackermann_odometry_openloop_angular_right) +TEST_P(SteeringOdometryTestParameterized, ackermann_odometry_openloop_angular_right) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_open_loop(1., -1., 1.); - EXPECT_DOUBLE_EQ(odom.get_linear(), 1.); - EXPECT_DOUBLE_EQ(odom.get_angular(), -1.); - EXPECT_GT(odom.get_x(), 0); // pos x - EXPECT_LT(odom.get_y(), 0); // neg y ie. right + if (!(test_type_ == TestType::OPEN_LOOP_RIGHT && + odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->update_open_loop(vx_open_, wz_open_, dt_open_); + + EXPECT_DOUBLE_EQ(odom_->get_linear(), vx_open_); + EXPECT_DOUBLE_EQ(odom_->get_angular(), wz_open_); + EXPECT_GT(odom_->get_x(), 0); // Should move forward + EXPECT_LT(odom_->get_y(), 0); // Should move right } -TEST(TestSteeringOdometry, ackermann_IK_linear) +TEST_P(SteeringOdometryTestParameterized, ackermann_IK_linear) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_open_loop(1., 0., 1.); - auto cmd = odom.get_commands(1., 0., true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_EQ(cmd0[0], cmd0[1]); // linear - EXPECT_GT(cmd0[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_EQ(cmd1[0], cmd1[1]); // no steering - EXPECT_EQ(cmd1[0], 0); + if (!(test_type_ == TestType::IK_LINEAR && odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + // Set initial state + odom_->update_open_loop(vx_open_, wz_open_, dt_open_); + + // Get commands + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_); + auto cmd0 = std::get<0>(cmd); // velocity commands + auto cmd1 = std::get<1>(cmd); // steering commands + + // Verify results + EXPECT_EQ(cmd0[0], cmd0[1]); // Both wheels should have same velocity (linear) + EXPECT_GT(cmd0[0], 0); // Positive velocity + EXPECT_EQ(cmd1[0], cmd1[1]); // Both wheels should have same steering angle + EXPECT_EQ(cmd1[0], 0); // No steering for linear motion } -TEST(TestSteeringOdometry, ackermann_IK_left) +TEST_P(SteeringOdometryTestParameterized, ackermann_IK_left) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_from_position(0., 0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., 0.1, false); + if (!(test_type_ == TestType::IK_LEFT && odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto cmd0 = std::get<0>(cmd); // vel EXPECT_GT(cmd0[0], cmd0[1]); // right (outer) > left (inner) EXPECT_GT(cmd0[0], 0); + auto cmd1 = std::get<1>(cmd); // steer EXPECT_LT(cmd1[0], cmd1[1]); // right (outer) < left (inner) EXPECT_GT(cmd1[0], 0); } -TEST(TestSteeringOdometry, ackermann_IK_right) +TEST_P(SteeringOdometryTestParameterized, ackermann_IK_right) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); - odom.update_from_position(0., -0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., -0.1, false); + if (!(test_type_ == TestType::IK_RIGHT && odom_type_ == steering_odometry::ACKERMANN_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto cmd0 = std::get<0>(cmd); // vel EXPECT_LT(cmd0[0], cmd0[1]); // right (inner) < left (outer) EXPECT_GT(cmd0[0], 0); + auto cmd1 = std::get<1>(cmd); // steer EXPECT_GT(std::abs(cmd1[0]), std::abs(cmd1[1])); // abs right (inner) > abs left (outer) EXPECT_LT(cmd1[0], 0); } -TEST(TestSteeringOdometry, ackermann_IK_right_steering_limited) +TEST_P(IkSteeringLimitedParameterized, ackermann_IK_right_steering_limited) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::ACKERMANN_CONFIG); + // Only run for Ackermann configuration + if (odom_type_ != steering_odometry::ACKERMANN_CONFIG) + { + GTEST_SKIP() << "Skipping non-Ackermann configuration"; + } + // Test case 1: Already steered { - odom.update_from_position(0., -0.785, 1.); // already steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto vel_cmd_steered = std::get<0>(cmd); // vel + const auto & [pos, steer, dt] = std::get<0>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<0>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto vel_cmd_steered = std::get<0>(cmd); EXPECT_LT(vel_cmd_steered[0], vel_cmd_steered[1]); // right (inner) < left (outer) EXPECT_GT(vel_cmd_steered[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_GT(std::abs(cmd1[0]), std::abs(cmd1[1])); // abs right (inner) > abs left (outer) - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_GT(std::abs(steer_cmd[0]), std::abs(steer_cmd[1])); // abs right > abs left + EXPECT_LT(steer_cmd[0], 0); } + // Test case 2: Not fully steered (baseline) std::vector vel_cmd_not_steered; { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, false); - vel_cmd_not_steered = std::get<0>(cmd); // vel - EXPECT_LT(vel_cmd_not_steered[0], vel_cmd_not_steered[1]); // right (inner) < left (outer) + const auto & [pos, steer, dt] = std::get<1>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<1>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + vel_cmd_not_steered = std::get<0>(cmd); + EXPECT_LT(vel_cmd_not_steered[0], vel_cmd_not_steered[1]); EXPECT_GT(vel_cmd_not_steered[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_GT(std::abs(cmd1[0]), std::abs(cmd1[1])); // abs right (inner) > abs left (outer) - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_GT(std::abs(steer_cmd[0]), std::abs(steer_cmd[1])); + EXPECT_LT(steer_cmd[0], 0); } + // Test case 3: Not fully steered with speed reduction { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_LT(cmd0[0], cmd0[1]); // right (inner) < left (outer) - EXPECT_GT(cmd0[0], 0); - // vel should be less than vel_cmd_not_steered now - for (size_t i = 0; i < cmd0.size(); ++i) + const auto & [pos, steer, dt] = std::get<2>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<2>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto reduced_vel_cmd = std::get<0>(cmd); + EXPECT_LT(reduced_vel_cmd[0], reduced_vel_cmd[1]); + EXPECT_GT(reduced_vel_cmd[0], 0); + + // Verify speed reduction + for (size_t i = 0; i < reduced_vel_cmd.size(); ++i) { - EXPECT_LT(cmd0[i], vel_cmd_not_steered[i]); + EXPECT_LT(reduced_vel_cmd[i], vel_cmd_not_steered[i]); } - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_GT(std::abs(cmd1[0]), std::abs(cmd1[1])); // abs right (inner) > abs left (outer) - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_GT(std::abs(steer_cmd[0]), std::abs(steer_cmd[1])); + EXPECT_LT(steer_cmd[0], 0); } } // ----------------- bicycle ----------------- -TEST(TestSteeringOdometry, bicycle_IK_linear) +TEST_P(SteeringOdometryTestParameterized, bicycle_IK_linear) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::BICYCLE_CONFIG); - odom.update_open_loop(1., 0., 1.); - auto cmd = odom.get_commands(1., 0., true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_DOUBLE_EQ(cmd0[0], 1.0); // equals linear - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_DOUBLE_EQ(cmd1[0], 0); // no steering + if (!(test_type_ == TestType::IK_LINEAR && odom_type_ == steering_odometry::BICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_open_loop(ik_vx_, ik_wz_, dt_open_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + + auto vel_cmd = std::get<0>(cmd); // vel + EXPECT_DOUBLE_EQ(vel_cmd[0], vel_cmd[1]); // linear + EXPECT_GT(vel_cmd[0], 0); + + auto steer_cmd = std::get<1>(cmd); // steer + EXPECT_DOUBLE_EQ(steer_cmd[0], 0); // linear + EXPECT_DOUBLE_EQ(steer_cmd[1], 0); } -TEST(TestSteeringOdometry, bicycle_IK_left) +TEST_P(SteeringOdometryTestParameterized, bicycle_IK_left) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::BICYCLE_CONFIG); - odom.update_from_position(0., 0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., 0.1, false); + if (!(test_type_ == TestType::IK_LEFT && odom_type_ == steering_odometry::BICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto cmd0 = std::get<0>(cmd); // vel EXPECT_DOUBLE_EQ(cmd0[0], 1.0); // equals linear auto cmd1 = std::get<1>(cmd); // steer EXPECT_GT(cmd1[0], 0); // right steering } -TEST(TestSteeringOdometry, bicycle_IK_right) +TEST_P(SteeringOdometryTestParameterized, bicycle_IK_right) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::BICYCLE_CONFIG); - odom.update_from_position(0., -0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., -0.1, false); + if (!(test_type_ == TestType::IK_RIGHT && odom_type_ == steering_odometry::BICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto cmd0 = std::get<0>(cmd); // vel EXPECT_DOUBLE_EQ(cmd0[0], 1.0); // equals linear auto cmd1 = std::get<1>(cmd); // steer EXPECT_LT(cmd1[0], 0); // left steering } -TEST(TestSteeringOdometry, bicycle_IK_right_steering_limited) +TEST_P(IkSteeringLimitedParameterized, bicycle_IK_right_steering_limited) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::BICYCLE_CONFIG); + // Only run for Bicycle configuration + if (odom_type_ != steering_odometry::BICYCLE_CONFIG) + { + GTEST_SKIP() << "Skipping non-Bicycle configuration"; + } + // Test case 1: Already steered { - odom.update_from_position(0., -0.785, 1.); // already steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto vel_cmd_steered = std::get<0>(cmd); // vel - EXPECT_DOUBLE_EQ(vel_cmd_steered[0], 1.0); // equals linear - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + const auto & [pos, steer, dt] = std::get<0>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<0>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto vel_cmd_steered = std::get<0>(cmd); + EXPECT_DOUBLE_EQ(vel_cmd_steered[0], vx); // equals linear command + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering for right turn } + // Test case 2: Not fully steered (baseline) std::vector vel_cmd_not_steered; { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, false); - vel_cmd_not_steered = std::get<0>(cmd); // vel - EXPECT_DOUBLE_EQ(vel_cmd_not_steered[0], 1.0); // equals linear - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + const auto & [pos, steer, dt] = std::get<1>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<1>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + vel_cmd_not_steered = std::get<0>(cmd); + EXPECT_DOUBLE_EQ(vel_cmd_not_steered[0], vx); // equals linear command + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering for right turn } - std::vector vel_cmd_not_steered_limited; + // Test case 3: Not fully steered with speed reduction { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, true); - vel_cmd_not_steered_limited = std::get<0>(cmd); // vel - EXPECT_GT(vel_cmd_not_steered_limited[0], 0); - // vel should be less than vel_cmd_not_steered now - for (size_t i = 0; i < vel_cmd_not_steered_limited.size(); ++i) + const auto & [pos, steer, dt] = std::get<2>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<2>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto reduced_vel_cmd = std::get<0>(cmd); + EXPECT_GT(reduced_vel_cmd[0], 0); + + // Verify speed reduction + for (size_t i = 0; i < reduced_vel_cmd.size(); ++i) { - EXPECT_LT(vel_cmd_not_steered_limited[i], vel_cmd_not_steered[i]); + EXPECT_LT(reduced_vel_cmd[i], vel_cmd_not_steered[i]); } - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering for right turn } + // Test case 4: Extreme steering case { - // larger error -> check min of scale - odom.update_from_position(0., M_PI, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_GT(cmd0[0], 0); - // vel should be less than vel_cmd_not_steered_limited now - for (size_t i = 0; i < cmd0.size(); ++i) + auto pos_case = std::get<3>(position_cases_); + auto cmd_case = std::get<3>(command_cases_); + + if (pos_case.has_value() && cmd_case.has_value()) { - EXPECT_LT(cmd0[i], vel_cmd_not_steered_limited[i]); + const auto & [pos, steer, dt] = pos_case.value(); // Unpack the tuple + const auto & [vx, wz, open_loop, reduce_speed] = cmd_case.value(); + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto extreme_vel_cmd = std::get<0>(cmd); + EXPECT_GT(extreme_vel_cmd[0], 0); + + auto extreme_steer_cmd = std::get<1>(cmd); + EXPECT_LT(extreme_steer_cmd[0], 0); + } + + else + { + GTEST_SKIP(); } - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); } } -TEST(TestSteeringOdometry, bicycle_odometry) +TEST_P(SteeringOdometryTestParameterized, bicycle_odometry) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 1., 1.); - odom.set_odometry_type(steering_odometry::BICYCLE_CONFIG); - ASSERT_TRUE(odom.update_from_velocity(1., .1, .1)); - EXPECT_NEAR(odom.get_linear(), 1.0, 1e-3); - EXPECT_NEAR(odom.get_angular(), .1, 1e-3); - EXPECT_NEAR(odom.get_x(), .1, 1e-3); - EXPECT_NEAR(odom.get_heading(), .01, 1e-3); + if (!(test_type_ == TestType::ODOMETRY && odom_type_ == steering_odometry::BICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + // Update odometry from velocity + const auto & [v, w, dt] = *bicycle_velocity_; + ASSERT_TRUE(odom_->update_from_velocity(v, w, dt)); + + // Verify results + EXPECT_NEAR(odom_->get_linear(), 1.002, 1e-3); + EXPECT_NEAR(odom_->get_angular(), 0.1, 1e-3); + EXPECT_NEAR(odom_->get_x(), 0.1, 1e-3); + EXPECT_NEAR(odom_->get_heading(), 0.01, 1e-3); } // ----------------- tricycle ----------------- -TEST(TestSteeringOdometry, tricycle_IK_linear) +TEST_P(SteeringOdometryTestParameterized, tricycle_IK_linear) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::TRICYCLE_CONFIG); - odom.update_open_loop(1., 0., 1.); - auto cmd = odom.get_commands(1., 0., true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_EQ(cmd0[0], cmd0[1]); // linear - EXPECT_GT(cmd0[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_EQ(cmd1[0], 0); // no steering + if (!(test_type_ == TestType::IK_LINEAR && odom_type_ == steering_odometry::TRICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_open_loop(ik_vx_, ik_wz_, dt_open_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto vel_cmd = std::get<0>(cmd); + auto steer_cmd = std::get<1>(cmd); + + EXPECT_NEAR(vel_cmd[0], vel_cmd[1], 1e-6); + EXPECT_GT(vel_cmd[0], 0); + EXPECT_DOUBLE_EQ(steer_cmd[0], 0); } -TEST(TestSteeringOdometry, tricycle_IK_left) +TEST_P(SteeringOdometryTestParameterized, tricycle_IK_left) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::TRICYCLE_CONFIG); - odom.update_from_position(0., 0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., 0.1, false); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_GT(cmd0[0], cmd0[1]); // right (outer) > left (inner) - EXPECT_GT(cmd0[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_GT(cmd1[0], 0); // left steering + if (!(test_type_ == TestType::IK_LEFT && odom_type_ == steering_odometry::TRICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto vel_cmd = std::get<0>(cmd); + auto steer_cmd = std::get<1>(cmd); + + EXPECT_GT(vel_cmd[0], vel_cmd[1]); + EXPECT_GT(vel_cmd[0], 0); + EXPECT_GT(steer_cmd[0], 0); } -TEST(TestSteeringOdometry, tricycle_IK_right) +TEST_P(SteeringOdometryTestParameterized, tricycle_IK_right) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::TRICYCLE_CONFIG); - odom.update_from_position(0., -0.2, 1.); // assume already turn - auto cmd = odom.get_commands(1., -0.1, false); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_LT(cmd0[0], cmd0[1]); // right (inner) < left (outer) - EXPECT_GT(cmd0[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); // right steering + if (!(test_type_ == TestType::IK_RIGHT && odom_type_ == steering_odometry::TRICYCLE_CONFIG)) + { + GTEST_SKIP(); + } + + odom_->reset_odometry(); + odom_->update_from_position(pos_, steer_pos_, dt_pos_); + + auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); + auto vel_cmd = std::get<0>(cmd); + auto steer_cmd = std::get<1>(cmd); + + EXPECT_LT(vel_cmd[0], vel_cmd[1]); + EXPECT_GT(vel_cmd[0], 0); + EXPECT_LT(steer_cmd[0], 0); } -TEST(TestSteeringOdometry, tricycle_IK_right_steering_limited) +TEST_P(IkSteeringLimitedParameterized, tricycle_IK_right_steering_limited) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 2., 1.); - odom.set_odometry_type(steering_odometry::TRICYCLE_CONFIG); + // Only run for Tricycle configuration + if (odom_type_ != steering_odometry::TRICYCLE_CONFIG) + { + GTEST_SKIP() << "Skipping non-Tricycle configuration"; + } + // Test case 1: Already steered (-0.785 rad) { - odom.update_from_position(0., -0.785, 1.); // already steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto vel_cmd_steered = std::get<0>(cmd); // vel + const auto & [pos, steer, dt] = std::get<0>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<0>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto vel_cmd_steered = std::get<0>(cmd); EXPECT_LT(vel_cmd_steered[0], vel_cmd_steered[1]); // right (inner) < left (outer) EXPECT_GT(vel_cmd_steered[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering for right turn } + // Test case 2: Not fully steered (-0.1 rad, baseline) std::vector vel_cmd_not_steered; { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, false); - vel_cmd_not_steered = std::get<0>(cmd); // vel - EXPECT_LT(vel_cmd_not_steered[0], vel_cmd_not_steered[1]); // right (inner) < left (outer) + const auto & [pos, steer, dt] = std::get<1>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<1>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + vel_cmd_not_steered = std::get<0>(cmd); + EXPECT_LT(vel_cmd_not_steered[0], vel_cmd_not_steered[1]); // right < left EXPECT_GT(vel_cmd_not_steered[0], 0); - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering } + // Test case 3: Not fully steered with speed reduction (-0.1 rad) { - odom.update_from_position(0., -0.1, 1.); // not fully steered - auto cmd = odom.get_commands(1., -0.5, false, true); - auto cmd0 = std::get<0>(cmd); // vel - EXPECT_LT(cmd0[0], cmd0[1]); // right (inner) < left (outer) - EXPECT_GT(cmd0[0], 0); - // vel should be less than vel_cmd_not_steered now - for (size_t i = 0; i < cmd0.size(); ++i) + const auto & [pos, steer, dt] = std::get<2>(position_cases_); + const auto & [vx, wz, open_loop, reduce_speed] = std::get<2>(command_cases_); + + odom_->update_from_position(pos, steer, dt); + auto cmd = odom_->get_commands(vx, wz, open_loop, reduce_speed); + + auto reduced_vel_cmd = std::get<0>(cmd); + EXPECT_LT(reduced_vel_cmd[0], reduced_vel_cmd[1]); // right < left + EXPECT_GT(reduced_vel_cmd[0], 0); + + // Verify speed reduction compared to baseline + for (size_t i = 0; i < reduced_vel_cmd.size(); ++i) { - EXPECT_LT(cmd0[i], vel_cmd_not_steered[i]); + EXPECT_LT(reduced_vel_cmd[i], vel_cmd_not_steered[i]); } - auto cmd1 = std::get<1>(cmd); // steer - EXPECT_LT(cmd1[0], 0); + + auto steer_cmd = std::get<1>(cmd); + EXPECT_LT(steer_cmd[0], 0); // Negative steering } } - -TEST(TestSteeringOdometry, tricycle_odometry) +TEST_P(SteeringOdometryTestParameterized, tricycle_odometry) { - steering_odometry::SteeringOdometry odom(1); - odom.set_wheel_params(1., 1., 1.); - odom.set_odometry_type(steering_odometry::TRICYCLE_CONFIG); - ASSERT_TRUE(odom.update_from_velocity(1., 1., .1, .1)); - EXPECT_NEAR(odom.get_linear(), 1.002, 1e-3); - EXPECT_NEAR(odom.get_angular(), .1, 1e-3); - EXPECT_NEAR(odom.get_x(), .1, 1e-3); - EXPECT_NEAR(odom.get_heading(), .01, 1e-3); + if (!(odom_type_ == steering_odometry::TRICYCLE_CONFIG && test_type_ == TestType::ODOMETRY)) + { + GTEST_SKIP(); + } + + const auto & [v_l, v_r, w, dt] = *tricycle_velocity_; + ASSERT_TRUE(odom_->update_from_velocity(v_l, v_r, w, dt)); + + EXPECT_NEAR(odom_->get_linear(), 1.002, 1e-3); + EXPECT_NEAR(odom_->get_angular(), .1, 1e-3); + EXPECT_NEAR(odom_->get_x(), .1, 1e-3); + EXPECT_NEAR(odom_->get_heading(), .01, 1e-3); } + +INSTANTIATE_TEST_SUITE_P( + SteeringOdometryParameterizedTests, SteeringOdometryTestParameterized, + ::testing::Values( + // ==================== INITIALIZATION TESTS ==================== + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 3.), // wheel_radius, wheelbase, track_width + std::make_tuple(0.0, 0.0, 0.0), // position (pos, steer, dt) + std::nullopt, // ackermann velocity (v_r, v_l, w_r, w_l, dt) + std::nullopt, // bicycle_velocity (none for init) + std::nullopt, // tricycle_velocity (none for init) + std::make_tuple(0.0, 0.0, 0.0), // open_loop (vx, ωz, dt) + std::make_tuple(0.0, 0.0, false, false), // ik_params + TestType::INITIALIZE), + + // ==================== ACKERMANN CONFIG TESTS ==================== + // Ackermann Odometry + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, std::make_tuple(1., 1., 1.), + std::make_tuple(0., 0., 0.), // initial position + std::make_tuple(1., 1., .1, .1, .1), // ackermann velocity (v_r, v_l, w_r, w_l, dt) + std::nullopt, // bicycle_velocity + std::nullopt, // tricycle_velocity + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(0., 0., false, false), // ik_params (unused) + TestType::ODOMETRY), + + // Ackermann Open-Loop Linear + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, std::make_tuple(1., 2., 1.), + std::make_tuple(0., 0., 0.), // initial position + std::nullopt, // ackermann_velocity + std::nullopt, // bicycle_velocity + std::nullopt, // tricycle_velocity + std::make_tuple(2., 0., 0.5), // open_loop (vx, ωz, dt) + std::make_tuple(0., 0., true, false), // ik_params (unused) + TestType::OPEN_LOOP_LINEAR), + + // Ackermann Open-Loop Left + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(1., 1., 1.), // open_loop (vx, ωz, dt) + std::make_tuple(0., 0., false, false), // ik_params (unused) + TestType::OPEN_LOOP_LEFT // test type + ), + + // Ackermann Open-Loop Right + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(1., -1., 1.), // open_loop (vx, ωz, dt) + std::make_tuple(0., 0., false, false), // ik_params (unused) + TestType::OPEN_LOOP_RIGHT // test type + ), + + // Ackermann IK_Linear + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(1., 0., 1.), // open_loop (vx, ωz, dt) + std::make_tuple(1., 0., true, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LINEAR // test type + ), + + // Ackermann IK_Left + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., 0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LEFT // test type + ), + + // Ackermann IK_right + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., -0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., -0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_RIGHT // test type + ), + + // ==================== BICYCLE CONFIG TESTS ==================== + // Bicycle Odometry + std::make_tuple( + steering_odometry::BICYCLE_CONFIG, // odom_type + std::make_tuple(1., 1., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::make_tuple(1., 0.1, 0.1), // bicycle_velocity (v, ω, dt) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(0., 0., false, false), // ik_params (unused) + TestType::ODOMETRY // test type + ), + + // Bicycle IK_linear + std::make_tuple( + steering_odometry::BICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(1., 0., 1.), // open_loop (vx, ωz, dt) + std::make_tuple(1., 0., true, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LINEAR // test type + ), + + // Bicycle IK_left + std::make_tuple( + steering_odometry::BICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., 0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LEFT // test type + ), + + // Bicycle IK_right + std::make_tuple( + steering_odometry::BICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., -0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., -0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_RIGHT // test type + ), + + // ==================== TRICYCLE CONFIG TESTS ==================== + // Tricycle Odometry + std::make_tuple( + steering_odometry::TRICYCLE_CONFIG, // odom_type + std::make_tuple(1., 1., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::make_tuple(1., 1., .1, .1), // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(0., 0., false, false), // ik_params (unused) + TestType::ODOMETRY // test type + ), + + // Tricycle IK Linear + std::make_tuple( + steering_odometry::TRICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0., 0.), // position (unused) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(1., 0., 1.), // open_loop (vx, ωz, dt) + std::make_tuple(1., 0., true, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LINEAR // test type + ), + + // Tricycle IK_left + std::make_tuple( + steering_odometry::TRICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., 0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., 0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_LEFT // test type + ), + + // Tricycle IK_right + std::make_tuple( + steering_odometry::TRICYCLE_CONFIG, // odom_type + std::make_tuple(1., 2., 1.), // wheel_radius, wheelbase, track_width + std::make_tuple(0., -0.2, 1.), // position (x, steer, dt) + std::nullopt, // ackermann_velocity (unused) + std::nullopt, // bicycle_velocity (unused) + std::nullopt, // tricycle_velocity (unused) + std::make_tuple(0., 0., 0.), // open_loop (unused) + std::make_tuple(1., -0.1, false, false), // ik_params (vx, ωz, open_loop, reduce_speed) + TestType::IK_RIGHT // test type + ) + + ), + [](const ::testing::TestParamInfo & test_info) + { + std::string name; + const auto & params = test_info.param; + + // Configuration type + switch (static_cast(std::get<0>(params))) + { + case steering_odometry::ACKERMANN_CONFIG: + name = "Ackermann"; + break; + case steering_odometry::BICYCLE_CONFIG: + name = "Bicycle"; + break; + case steering_odometry::TRICYCLE_CONFIG: + name = "Tricycle"; + break; + default: + name = "Unknown"; + break; + } + + // Add unique identifier (e.g., test index) + name += "_" + std::to_string(test_info.index); // ← This ensures uniqueness + // Test type + switch (std::get<8>(params)) + { + case TestType::INITIALIZE: + name += "_Init"; + break; + case TestType::ODOMETRY: + name += "_Odom"; + break; + case TestType::OPEN_LOOP_LINEAR: + name += "_OpenLinear"; + break; + case TestType::OPEN_LOOP_LEFT: + name += "_OpenLeft"; + break; + case TestType::OPEN_LOOP_RIGHT: + name += "_OpenRight"; + break; + case TestType::IK_LINEAR: + name += "_IKLinear"; + break; + case TestType::IK_LEFT: + name += "_IKLeft"; + break; + case TestType::IK_RIGHT: + name += "_IKRight"; + break; + } + + return name; + }); + +INSTANTIATE_TEST_SUITE_P( + IkSteeringLimitedParameterizedTests, IkSteeringLimitedParameterized, + ::testing::Values( + // Ackermann configuration (3 cases) + std::make_tuple( + steering_odometry::ACKERMANN_CONFIG, + std::make_tuple(1., 2., 1.), + std::make_tuple( // Position cases + std::make_tuple(0., -0.785, 1.), // Case 1 + std::make_tuple(0., -0.1, 1.), // Case 2 + std::make_tuple(0., -0.1, 1.), // Case 3 + std::nullopt // No Case 4 + ), + std::make_tuple( // Command cases + std::make_tuple(1., -0.5, false, true), + std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), + std::nullopt // No Case 4 + )), + + // Bicycle configuration (4 cases) + std::make_tuple( + steering_odometry::BICYCLE_CONFIG, + std::make_tuple(1., 2., 1.), + std::make_tuple( + std::make_tuple(0., -0.785, 1.), // Case 1 + std::make_tuple(0., -0.1, 1.), // Case 2 + std::make_tuple(0., -0.1, 1.), // Case 3 + std::make_optional(std::make_tuple(0.0, M_PI, 1.0)) // Case 4 + ), + std::make_tuple( + std::make_tuple(1., -0.5, false, true), + std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), + std::make_optional(std::make_tuple(1., -0.5, false, true)) // Case 4 + )), + + // Tricycle configuration + std::make_tuple( + steering_odometry::TRICYCLE_CONFIG, + std::make_tuple(1., 2., 1.0), + std::make_tuple( + std::make_tuple(0., -0.785, 1.), // Case 1 + std::make_tuple(0., -0.1, 1.), // Case 2 + std::make_tuple(0., -0.1, 1.), // Case 3 + std::nullopt // No Case 4 + ), + std::make_tuple( + std::make_tuple(1., -0.5, false, true), + std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), + std::nullopt // No Case 4 + ))), + + [](const auto & test_info) + { + std::string name; + const auto & params = test_info.param; + + // Add configuration type + switch (std::get<0>(params)) + { + case steering_odometry::ACKERMANN_CONFIG: + name = "ackermann"; + break; + case steering_odometry::BICYCLE_CONFIG: + name = "bicycle"; + break; + case steering_odometry::TRICYCLE_CONFIG: + name = "tricycle"; + break; + default: + name = "unknownConfig"; + break; + } + + // Add test identifier + name += "_IK_right_steering_limited"; + return name; + } +); diff --git a/steering_controllers_library/test/test_steering_odometry_utils.hpp b/steering_controllers_library/test/test_steering_odometry_utils.hpp new file mode 100644 index 0000000000..d450e11fc1 --- /dev/null +++ b/steering_controllers_library/test/test_steering_odometry_utils.hpp @@ -0,0 +1,135 @@ +// Copyright 2020 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. + +#ifndef TEST_STEERING_ODOMETRY_UTILS_HPP +#define TEST_STEERING_ODOMETRY_UTILS_HPP + +#include +#include +#include +#include +#include +#include "steering_controllers_library/steering_odometry.hpp" + +enum class TestType { + INITIALIZE, + ODOMETRY, + OPEN_LOOP_LINEAR, + OPEN_LOOP_LEFT, + OPEN_LOOP_RIGHT, + IK_LINEAR, + IK_LEFT, + IK_RIGHT +}; + +class SteeringOdometryTestParameterized + : public ::testing::TestWithParam, // wheel_radius, wheelbase, track_width + std::tuple, // position (pos, steer, dt) + std::optional>, // ackermann velocity (v_r, v_l, w_r, w_l, dt) + std::optional>, // bicycle odometry (v,w,dt) + std::optional>, // tricycle velocity (v_r, v_l, steer, dt) + std::tuple, // open_loop (vx, ωz, dt) + std::tuple, // ik_params (vx, ωz, open_loop, reduce_speed) + TestType>> { +protected: + void SetUp() override { + const auto& params = GetParam(); + odom_type_ = std::get<0>(params); + std::tie(wheel_radius_, wheelbase_, track_width_) = std::get<1>(params); + std::tie(pos_, steer_pos_, dt_pos_) = std::get<2>(params); + ackermann_velocity_ = std::get<3>(params); + bicycle_velocity_ = std::get<4>(params); + tricycle_velocity_ = std::get<5>(params); + + std::tie(vx_open_, wz_open_, dt_open_) = std::get<6>(params); + std::tie(ik_vx_, ik_wz_, open_loop_, reduce_speed_) = std::get<7>(params); + test_type_ = std::get<8>(params); + + odom_ = std::make_unique(1); + odom_->set_wheel_params(wheel_radius_, wheelbase_, track_width_); + odom_->set_odometry_type(odom_type_); + } + +protected: + // Parameters + unsigned int odom_type_; + double wheel_radius_, wheelbase_, track_width_; + double pos_, steer_pos_, dt_pos_; + std::optional> ackermann_velocity_; + std::optional> bicycle_velocity_; + std::optional> tricycle_velocity_; + double vx_open_, wz_open_, dt_open_; + double ik_vx_, ik_wz_; + bool open_loop_, reduce_speed_; + TestType test_type_; + + std::unique_ptr odom_; +}; + +class IkSteeringLimitedParameterized + : public ::testing::Test, + public ::testing::WithParamInterface, // wheel_radius, wheelbase, track_width + std::tuple< // Position cases (nested tuple) + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 + std::optional> // Optional Case 4 + >, + std::tuple< // Command cases (nested tuple) + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 + std::optional> // Optional Case 4 + > + >> +{ +protected: + void SetUp() override { + const auto& params = GetParam(); + odom_type_ = std::get<0>(params); + std::tie(wheel_radius_, wheelbase_, track_width_) = std::get<1>(params); + position_cases_ = std::get<2>(params); + command_cases_ = std::get<3>(params); + + odom_ = std::make_unique(1); + odom_->reset_odometry(); + odom_->set_wheel_params(wheel_radius_, wheelbase_, track_width_); + odom_->set_odometry_type(odom_type_); + } + +protected: + double wheel_radius_; + double wheelbase_; + double track_width_; + unsigned int odom_type_; + std::tuple< + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 + std::optional> // Optional Case 4 + > position_cases_; + std::tuple< + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 + std::optional> // Optional Case 4 + > command_cases_; + std::unique_ptr odom_; +}; + +#endif // TEST_STEERING_ODOMETRY_UTILS_HPP \ No newline at end of file From 59d015ae35444d6e027fd9b6d82cacd3aadb23dc Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Mon, 7 Apr 2025 20:38:13 +0000 Subject: [PATCH 2/6] Improve steering controller odometry tests --- build/.built_by | 1 - build/COLCON_IGNORE | 0 build/ackermann_steering_controller/colcon_build.rc | 1 - build/ackermann_steering_controller/colcon_test.rc | 1 - build/parallel_gripper_controller/colcon_test.rc | 1 - 5 files changed, 4 deletions(-) delete mode 100644 build/.built_by delete mode 100644 build/COLCON_IGNORE delete mode 100644 build/ackermann_steering_controller/colcon_build.rc delete mode 100644 build/ackermann_steering_controller/colcon_test.rc delete mode 100644 build/parallel_gripper_controller/colcon_test.rc diff --git a/build/.built_by b/build/.built_by deleted file mode 100644 index 06e74acb63..0000000000 --- a/build/.built_by +++ /dev/null @@ -1 +0,0 @@ -colcon diff --git a/build/COLCON_IGNORE b/build/COLCON_IGNORE deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/build/ackermann_steering_controller/colcon_build.rc b/build/ackermann_steering_controller/colcon_build.rc deleted file mode 100644 index d00491fd7e..0000000000 --- a/build/ackermann_steering_controller/colcon_build.rc +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/build/ackermann_steering_controller/colcon_test.rc b/build/ackermann_steering_controller/colcon_test.rc deleted file mode 100644 index d00491fd7e..0000000000 --- a/build/ackermann_steering_controller/colcon_test.rc +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/build/parallel_gripper_controller/colcon_test.rc b/build/parallel_gripper_controller/colcon_test.rc deleted file mode 100644 index d00491fd7e..0000000000 --- a/build/parallel_gripper_controller/colcon_test.rc +++ /dev/null @@ -1 +0,0 @@ -1 From 40ce2db78231fe2f0a646398a2264221ed2c4477 Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Mon, 7 Apr 2025 20:39:46 +0000 Subject: [PATCH 3/6] Improve steering controller odometry tests --- install/.colcon_install_layout | 1 - install/COLCON_IGNORE | 0 install/_local_setup_util_ps1.py | 407 ------------------ install/_local_setup_util_sh.py | 407 ------------------ .../package.bash | 31 -- .../ackermann_steering_controller/package.dsv | 0 .../ackermann_steering_controller/package.ps1 | 108 ----- .../ackermann_steering_controller/package.sh | 52 --- .../ackermann_steering_controller/package.zsh | 42 -- .../packages/ackermann_steering_controller | 1 - install/local_setup.bash | 121 ------ install/local_setup.ps1 | 55 --- install/local_setup.sh | 137 ------ install/local_setup.zsh | 134 ------ install/setup.bash | 31 -- install/setup.ps1 | 29 -- install/setup.sh | 45 -- install/setup.zsh | 31 -- log/COLCON_IGNORE | 0 log/build_2025-03-19_19-39-21/events.log | 29 -- log/build_2025-03-19_19-39-21/logger_all.log | 397 ----------------- log/latest | 1 - log/latest_build | 1 - log/latest_test | 1 - .../ackermann_steering_controller/command.log | 0 .../ackermann_steering_controller/stderr.log | 14 - .../ackermann_steering_controller/stdout.log | 0 .../stdout_stderr.log | 14 - .../ackermann_steering_controller/streams.log | 14 - log/test_2025-03-19_19-37-33/events.log | 6 - log/test_2025-03-19_19-37-33/logger_all.log | 383 ---------------- log/test_2025-03-19_19-38-11/events.log | 6 - log/test_2025-03-19_19-38-11/logger_all.log | 397 ----------------- .../parallel_gripper_controller/command.log | 0 .../parallel_gripper_controller/stderr.log | 14 - .../parallel_gripper_controller/stdout.log | 0 .../stdout_stderr.log | 14 - .../parallel_gripper_controller/streams.log | 14 - 38 files changed, 2937 deletions(-) delete mode 100644 install/.colcon_install_layout delete mode 100644 install/COLCON_IGNORE delete mode 100644 install/_local_setup_util_ps1.py delete mode 100644 install/_local_setup_util_sh.py delete mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash delete mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv delete mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 delete mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh delete mode 100644 install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh delete mode 100644 install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller delete mode 100644 install/local_setup.bash delete mode 100644 install/local_setup.ps1 delete mode 100644 install/local_setup.sh delete mode 100644 install/local_setup.zsh delete mode 100644 install/setup.bash delete mode 100644 install/setup.ps1 delete mode 100644 install/setup.sh delete mode 100644 install/setup.zsh delete mode 100644 log/COLCON_IGNORE delete mode 100644 log/build_2025-03-19_19-39-21/events.log delete mode 100644 log/build_2025-03-19_19-39-21/logger_all.log delete mode 120000 log/latest delete mode 120000 log/latest_build delete mode 120000 log/latest_test delete mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log delete mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log delete mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log delete mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log delete mode 100644 log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log delete mode 100644 log/test_2025-03-19_19-37-33/events.log delete mode 100644 log/test_2025-03-19_19-37-33/logger_all.log delete mode 100644 log/test_2025-03-19_19-38-11/events.log delete mode 100644 log/test_2025-03-19_19-38-11/logger_all.log delete mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log delete mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log delete mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log delete mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log delete mode 100644 log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log diff --git a/install/.colcon_install_layout b/install/.colcon_install_layout deleted file mode 100644 index 3aad5336af..0000000000 --- a/install/.colcon_install_layout +++ /dev/null @@ -1 +0,0 @@ -isolated diff --git a/install/COLCON_IGNORE b/install/COLCON_IGNORE deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/install/_local_setup_util_ps1.py b/install/_local_setup_util_ps1.py deleted file mode 100644 index 3c6d9e8779..0000000000 --- a/install/_local_setup_util_ps1.py +++ /dev/null @@ -1,407 +0,0 @@ -# Copyright 2016-2019 Dirk Thomas -# Licensed under the Apache License, Version 2.0 - -import argparse -from collections import OrderedDict -import os -from pathlib import Path -import sys - - -FORMAT_STR_COMMENT_LINE = '# {comment}' -FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"' -FORMAT_STR_USE_ENV_VAR = '$env:{name}' -FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501 -FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501 -FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501 - -DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' -DSV_TYPE_SET = 'set' -DSV_TYPE_SET_IF_UNSET = 'set-if-unset' -DSV_TYPE_SOURCE = 'source' - - -def main(argv=sys.argv[1:]): # noqa: D103 - parser = argparse.ArgumentParser( - description='Output shell commands for the packages in topological ' - 'order') - parser.add_argument( - 'primary_extension', - help='The file extension of the primary shell') - parser.add_argument( - 'additional_extension', nargs='?', - help='The additional file extension to be considered') - parser.add_argument( - '--merged-install', action='store_true', - help='All install prefixes are merged into a single location') - args = parser.parse_args(argv) - - packages = get_packages(Path(__file__).parent, args.merged_install) - - ordered_packages = order_packages(packages) - for pkg_name in ordered_packages: - if _include_comments(): - print( - FORMAT_STR_COMMENT_LINE.format_map( - {'comment': 'Package: ' + pkg_name})) - prefix = os.path.abspath(os.path.dirname(__file__)) - if not args.merged_install: - prefix = os.path.join(prefix, pkg_name) - for line in get_commands( - pkg_name, prefix, args.primary_extension, - args.additional_extension - ): - print(line) - - for line in _remove_ending_separators(): - print(line) - - -def get_packages(prefix_path, merged_install): - """ - Find packages based on colcon-specific files created during installation. - - :param Path prefix_path: The install prefix path of all packages - :param bool merged_install: The flag if the packages are all installed - directly in the prefix or if each package is installed in a subdirectory - named after the package - :returns: A mapping from the package name to the set of runtime - dependencies - :rtype: dict - """ - packages = {} - # since importing colcon_core isn't feasible here the following constant - # must match colcon_core.location.get_relative_package_index_path() - subdirectory = 'share/colcon-core/packages' - if merged_install: - # return if workspace is empty - if not (prefix_path / subdirectory).is_dir(): - return packages - # find all files in the subdirectory - for p in (prefix_path / subdirectory).iterdir(): - if not p.is_file(): - continue - if p.name.startswith('.'): - continue - add_package_runtime_dependencies(p, packages) - else: - # for each subdirectory look for the package specific file - for p in prefix_path.iterdir(): - if not p.is_dir(): - continue - if p.name.startswith('.'): - continue - p = p / subdirectory / p.name - if p.is_file(): - add_package_runtime_dependencies(p, packages) - - # remove unknown dependencies - pkg_names = set(packages.keys()) - for k in packages.keys(): - packages[k] = {d for d in packages[k] if d in pkg_names} - - return packages - - -def add_package_runtime_dependencies(path, packages): - """ - Check the path and if it exists extract the packages runtime dependencies. - - :param Path path: The resource file containing the runtime dependencies - :param dict packages: A mapping from package names to the sets of runtime - dependencies to add to - """ - content = path.read_text() - dependencies = set(content.split(os.pathsep) if content else []) - packages[path.name] = dependencies - - -def order_packages(packages): - """ - Order packages topologically. - - :param dict packages: A mapping from package name to the set of runtime - dependencies - :returns: The package names - :rtype: list - """ - # select packages with no dependencies in alphabetical order - to_be_ordered = list(packages.keys()) - ordered = [] - while to_be_ordered: - pkg_names_without_deps = [ - name for name in to_be_ordered if not packages[name]] - if not pkg_names_without_deps: - reduce_cycle_set(packages) - raise RuntimeError( - 'Circular dependency between: ' + ', '.join(sorted(packages))) - pkg_names_without_deps.sort() - pkg_name = pkg_names_without_deps[0] - to_be_ordered.remove(pkg_name) - ordered.append(pkg_name) - # remove item from dependency lists - for k in list(packages.keys()): - if pkg_name in packages[k]: - packages[k].remove(pkg_name) - return ordered - - -def reduce_cycle_set(packages): - """ - Reduce the set of packages to the ones part of the circular dependency. - - :param dict packages: A mapping from package name to the set of runtime - dependencies which is modified in place - """ - last_depended = None - while len(packages) > 0: - # get all remaining dependencies - depended = set() - for pkg_name, dependencies in packages.items(): - depended = depended.union(dependencies) - # remove all packages which are not dependent on - for name in list(packages.keys()): - if name not in depended: - del packages[name] - if last_depended: - # if remaining packages haven't changed return them - if last_depended == depended: - return packages.keys() - # otherwise reduce again - last_depended = depended - - -def _include_comments(): - # skipping comment lines when COLCON_TRACE is not set speeds up the - # processing especially on Windows - return bool(os.environ.get('COLCON_TRACE')) - - -def get_commands(pkg_name, prefix, primary_extension, additional_extension): - commands = [] - package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') - if os.path.exists(package_dsv_path): - commands += process_dsv_file( - package_dsv_path, prefix, primary_extension, additional_extension) - return commands - - -def process_dsv_file( - dsv_path, prefix, primary_extension=None, additional_extension=None -): - commands = [] - if _include_comments(): - commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) - with open(dsv_path, 'r') as h: - content = h.read() - lines = content.splitlines() - - basenames = OrderedDict() - for i, line in enumerate(lines): - # skip over empty or whitespace-only lines - if not line.strip(): - continue - # skip over comments - if line.startswith('#'): - continue - try: - type_, remainder = line.split(';', 1) - except ValueError: - raise RuntimeError( - "Line %d in '%s' doesn't contain a semicolon separating the " - 'type from the arguments' % (i + 1, dsv_path)) - if type_ != DSV_TYPE_SOURCE: - # handle non-source lines - try: - commands += handle_dsv_types_except_source( - type_, remainder, prefix) - except RuntimeError as e: - raise RuntimeError( - "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e - else: - # group remaining source lines by basename - path_without_ext, ext = os.path.splitext(remainder) - if path_without_ext not in basenames: - basenames[path_without_ext] = set() - assert ext.startswith('.') - ext = ext[1:] - if ext in (primary_extension, additional_extension): - basenames[path_without_ext].add(ext) - - # add the dsv extension to each basename if the file exists - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if os.path.exists(basename + '.dsv'): - extensions.add('dsv') - - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if 'dsv' in extensions: - # process dsv files recursively - commands += process_dsv_file( - basename + '.dsv', prefix, primary_extension=primary_extension, - additional_extension=additional_extension) - elif primary_extension in extensions and len(extensions) == 1: - # source primary-only files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + primary_extension})] - elif additional_extension in extensions: - # source non-primary files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + additional_extension})] - - return commands - - -def handle_dsv_types_except_source(type_, remainder, prefix): - commands = [] - if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): - try: - env_name, value = remainder.split(';', 1) - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the value') - try_prefixed_value = os.path.join(prefix, value) if value else prefix - if os.path.exists(try_prefixed_value): - value = try_prefixed_value - if type_ == DSV_TYPE_SET: - commands += _set(env_name, value) - elif type_ == DSV_TYPE_SET_IF_UNSET: - commands += _set_if_unset(env_name, value) - else: - assert False - elif type_ in ( - DSV_TYPE_APPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS - ): - try: - env_name_and_values = remainder.split(';') - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the values') - env_name = env_name_and_values[0] - values = env_name_and_values[1:] - for value in values: - if not value: - value = prefix - elif not os.path.isabs(value): - value = os.path.join(prefix, value) - if ( - type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and - not os.path.exists(value) - ): - comment = f'skip extending {env_name} with not existing ' \ - f'path: {value}' - if _include_comments(): - commands.append( - FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) - elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: - commands += _append_unique_value(env_name, value) - else: - commands += _prepend_unique_value(env_name, value) - else: - raise RuntimeError( - 'contains an unknown environment hook type: ' + type_) - return commands - - -env_state = {} - - -def _append_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # append even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional leading separator - extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': extend + value}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -def _prepend_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # prepend even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional trailing separator - extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value + extend}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -# generate commands for removing prepended underscores -def _remove_ending_separators(): - # do nothing if the shell extension does not implement the logic - if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: - return [] - - global env_state - commands = [] - for name in env_state: - # skip variables that already had values before this script started prepending - if name in os.environ: - continue - commands += [ - FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), - FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] - return commands - - -def _set(name, value): - global env_state - env_state[name] = value - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - return [line] - - -def _set_if_unset(name, value): - global env_state - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - if env_state.get(name, os.environ.get(name)): - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -if __name__ == '__main__': # pragma: no cover - try: - rc = main() - except RuntimeError as e: - print(str(e), file=sys.stderr) - rc = 1 - sys.exit(rc) diff --git a/install/_local_setup_util_sh.py b/install/_local_setup_util_sh.py deleted file mode 100644 index f67eaa9891..0000000000 --- a/install/_local_setup_util_sh.py +++ /dev/null @@ -1,407 +0,0 @@ -# Copyright 2016-2019 Dirk Thomas -# Licensed under the Apache License, Version 2.0 - -import argparse -from collections import OrderedDict -import os -from pathlib import Path -import sys - - -FORMAT_STR_COMMENT_LINE = '# {comment}' -FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"' -FORMAT_STR_USE_ENV_VAR = '${name}' -FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501 -FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'if [ "$(echo -n ${name} | head -c 1)" = ":" ]; then export {name}=${{{name}#?}} ; fi' # noqa: E501 -FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'if [ "$(echo -n ${name} | tail -c 1)" = ":" ]; then export {name}=${{{name}%?}} ; fi' # noqa: E501 - -DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' -DSV_TYPE_SET = 'set' -DSV_TYPE_SET_IF_UNSET = 'set-if-unset' -DSV_TYPE_SOURCE = 'source' - - -def main(argv=sys.argv[1:]): # noqa: D103 - parser = argparse.ArgumentParser( - description='Output shell commands for the packages in topological ' - 'order') - parser.add_argument( - 'primary_extension', - help='The file extension of the primary shell') - parser.add_argument( - 'additional_extension', nargs='?', - help='The additional file extension to be considered') - parser.add_argument( - '--merged-install', action='store_true', - help='All install prefixes are merged into a single location') - args = parser.parse_args(argv) - - packages = get_packages(Path(__file__).parent, args.merged_install) - - ordered_packages = order_packages(packages) - for pkg_name in ordered_packages: - if _include_comments(): - print( - FORMAT_STR_COMMENT_LINE.format_map( - {'comment': 'Package: ' + pkg_name})) - prefix = os.path.abspath(os.path.dirname(__file__)) - if not args.merged_install: - prefix = os.path.join(prefix, pkg_name) - for line in get_commands( - pkg_name, prefix, args.primary_extension, - args.additional_extension - ): - print(line) - - for line in _remove_ending_separators(): - print(line) - - -def get_packages(prefix_path, merged_install): - """ - Find packages based on colcon-specific files created during installation. - - :param Path prefix_path: The install prefix path of all packages - :param bool merged_install: The flag if the packages are all installed - directly in the prefix or if each package is installed in a subdirectory - named after the package - :returns: A mapping from the package name to the set of runtime - dependencies - :rtype: dict - """ - packages = {} - # since importing colcon_core isn't feasible here the following constant - # must match colcon_core.location.get_relative_package_index_path() - subdirectory = 'share/colcon-core/packages' - if merged_install: - # return if workspace is empty - if not (prefix_path / subdirectory).is_dir(): - return packages - # find all files in the subdirectory - for p in (prefix_path / subdirectory).iterdir(): - if not p.is_file(): - continue - if p.name.startswith('.'): - continue - add_package_runtime_dependencies(p, packages) - else: - # for each subdirectory look for the package specific file - for p in prefix_path.iterdir(): - if not p.is_dir(): - continue - if p.name.startswith('.'): - continue - p = p / subdirectory / p.name - if p.is_file(): - add_package_runtime_dependencies(p, packages) - - # remove unknown dependencies - pkg_names = set(packages.keys()) - for k in packages.keys(): - packages[k] = {d for d in packages[k] if d in pkg_names} - - return packages - - -def add_package_runtime_dependencies(path, packages): - """ - Check the path and if it exists extract the packages runtime dependencies. - - :param Path path: The resource file containing the runtime dependencies - :param dict packages: A mapping from package names to the sets of runtime - dependencies to add to - """ - content = path.read_text() - dependencies = set(content.split(os.pathsep) if content else []) - packages[path.name] = dependencies - - -def order_packages(packages): - """ - Order packages topologically. - - :param dict packages: A mapping from package name to the set of runtime - dependencies - :returns: The package names - :rtype: list - """ - # select packages with no dependencies in alphabetical order - to_be_ordered = list(packages.keys()) - ordered = [] - while to_be_ordered: - pkg_names_without_deps = [ - name for name in to_be_ordered if not packages[name]] - if not pkg_names_without_deps: - reduce_cycle_set(packages) - raise RuntimeError( - 'Circular dependency between: ' + ', '.join(sorted(packages))) - pkg_names_without_deps.sort() - pkg_name = pkg_names_without_deps[0] - to_be_ordered.remove(pkg_name) - ordered.append(pkg_name) - # remove item from dependency lists - for k in list(packages.keys()): - if pkg_name in packages[k]: - packages[k].remove(pkg_name) - return ordered - - -def reduce_cycle_set(packages): - """ - Reduce the set of packages to the ones part of the circular dependency. - - :param dict packages: A mapping from package name to the set of runtime - dependencies which is modified in place - """ - last_depended = None - while len(packages) > 0: - # get all remaining dependencies - depended = set() - for pkg_name, dependencies in packages.items(): - depended = depended.union(dependencies) - # remove all packages which are not dependent on - for name in list(packages.keys()): - if name not in depended: - del packages[name] - if last_depended: - # if remaining packages haven't changed return them - if last_depended == depended: - return packages.keys() - # otherwise reduce again - last_depended = depended - - -def _include_comments(): - # skipping comment lines when COLCON_TRACE is not set speeds up the - # processing especially on Windows - return bool(os.environ.get('COLCON_TRACE')) - - -def get_commands(pkg_name, prefix, primary_extension, additional_extension): - commands = [] - package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') - if os.path.exists(package_dsv_path): - commands += process_dsv_file( - package_dsv_path, prefix, primary_extension, additional_extension) - return commands - - -def process_dsv_file( - dsv_path, prefix, primary_extension=None, additional_extension=None -): - commands = [] - if _include_comments(): - commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) - with open(dsv_path, 'r') as h: - content = h.read() - lines = content.splitlines() - - basenames = OrderedDict() - for i, line in enumerate(lines): - # skip over empty or whitespace-only lines - if not line.strip(): - continue - # skip over comments - if line.startswith('#'): - continue - try: - type_, remainder = line.split(';', 1) - except ValueError: - raise RuntimeError( - "Line %d in '%s' doesn't contain a semicolon separating the " - 'type from the arguments' % (i + 1, dsv_path)) - if type_ != DSV_TYPE_SOURCE: - # handle non-source lines - try: - commands += handle_dsv_types_except_source( - type_, remainder, prefix) - except RuntimeError as e: - raise RuntimeError( - "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e - else: - # group remaining source lines by basename - path_without_ext, ext = os.path.splitext(remainder) - if path_without_ext not in basenames: - basenames[path_without_ext] = set() - assert ext.startswith('.') - ext = ext[1:] - if ext in (primary_extension, additional_extension): - basenames[path_without_ext].add(ext) - - # add the dsv extension to each basename if the file exists - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if os.path.exists(basename + '.dsv'): - extensions.add('dsv') - - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if 'dsv' in extensions: - # process dsv files recursively - commands += process_dsv_file( - basename + '.dsv', prefix, primary_extension=primary_extension, - additional_extension=additional_extension) - elif primary_extension in extensions and len(extensions) == 1: - # source primary-only files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + primary_extension})] - elif additional_extension in extensions: - # source non-primary files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + additional_extension})] - - return commands - - -def handle_dsv_types_except_source(type_, remainder, prefix): - commands = [] - if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): - try: - env_name, value = remainder.split(';', 1) - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the value') - try_prefixed_value = os.path.join(prefix, value) if value else prefix - if os.path.exists(try_prefixed_value): - value = try_prefixed_value - if type_ == DSV_TYPE_SET: - commands += _set(env_name, value) - elif type_ == DSV_TYPE_SET_IF_UNSET: - commands += _set_if_unset(env_name, value) - else: - assert False - elif type_ in ( - DSV_TYPE_APPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS - ): - try: - env_name_and_values = remainder.split(';') - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the values') - env_name = env_name_and_values[0] - values = env_name_and_values[1:] - for value in values: - if not value: - value = prefix - elif not os.path.isabs(value): - value = os.path.join(prefix, value) - if ( - type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and - not os.path.exists(value) - ): - comment = f'skip extending {env_name} with not existing ' \ - f'path: {value}' - if _include_comments(): - commands.append( - FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) - elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: - commands += _append_unique_value(env_name, value) - else: - commands += _prepend_unique_value(env_name, value) - else: - raise RuntimeError( - 'contains an unknown environment hook type: ' + type_) - return commands - - -env_state = {} - - -def _append_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # append even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional leading separator - extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': extend + value}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -def _prepend_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # prepend even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional trailing separator - extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value + extend}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -# generate commands for removing prepended underscores -def _remove_ending_separators(): - # do nothing if the shell extension does not implement the logic - if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: - return [] - - global env_state - commands = [] - for name in env_state: - # skip variables that already had values before this script started prepending - if name in os.environ: - continue - commands += [ - FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), - FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] - return commands - - -def _set(name, value): - global env_state - env_state[name] = value - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - return [line] - - -def _set_if_unset(name, value): - global env_state - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - if env_state.get(name, os.environ.get(name)): - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -if __name__ == '__main__': # pragma: no cover - try: - rc = main() - except RuntimeError as e: - print(str(e), file=sys.stderr) - rc = 1 - sys.exit(rc) diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash deleted file mode 100644 index c84827fcf8..0000000000 --- a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash +++ /dev/null @@ -1,31 +0,0 @@ -# generated from colcon_bash/shell/template/package.bash.em - -# This script extends the environment for this package. - -# a bash script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - # the prefix is two levels up from the package specific share directory - _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" -else - _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -_colcon_package_bash_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$@" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source sh script of this package -_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/ackermann_steering_controller/package.sh" - -unset _colcon_package_bash_source_script -unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 deleted file mode 100644 index 4198e42ecf..0000000000 --- a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1 +++ /dev/null @@ -1,108 +0,0 @@ -# generated from colcon_powershell/shell/template/package.ps1.em - -# function to append a value to a variable -# which uses colons as separators -# duplicates as well as leading separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -function colcon_append_unique_value { - param ( - $_listname, - $_value - ) - - # get values from variable - if (Test-Path Env:$_listname) { - $_values=(Get-Item env:$_listname).Value - } else { - $_values="" - } - $_duplicate="" - # start with no values - $_all_values="" - # iterate over existing values in the variable - if ($_values) { - $_values.Split(";") | ForEach { - # not an empty string - if ($_) { - # not a duplicate of _value - if ($_ -eq $_value) { - $_duplicate="1" - } - if ($_all_values) { - $_all_values="${_all_values};$_" - } else { - $_all_values="$_" - } - } - } - } - # append only non-duplicates - if (!$_duplicate) { - # avoid leading separator - if ($_all_values) { - $_all_values="${_all_values};${_value}" - } else { - $_all_values="${_value}" - } - } - - # export the updated variable - Set-Item env:\$_listname -Value "$_all_values" -} - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -function colcon_prepend_unique_value { - param ( - $_listname, - $_value - ) - - # get values from variable - if (Test-Path Env:$_listname) { - $_values=(Get-Item env:$_listname).Value - } else { - $_values="" - } - # start with the new value - $_all_values="$_value" - # iterate over existing values in the variable - if ($_values) { - $_values.Split(";") | ForEach { - # not an empty string - if ($_) { - # not a duplicate of _value - if ($_ -ne $_value) { - # keep non-duplicate values - $_all_values="${_all_values};$_" - } - } - } - } - # export the updated variable - Set-Item env:\$_listname -Value "$_all_values" -} - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -function colcon_package_source_powershell_script { - param ( - $_colcon_package_source_powershell_script - ) - # source script with conditional trace output - if (Test-Path $_colcon_package_source_powershell_script) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_package_source_powershell_script'" - } - . "$_colcon_package_source_powershell_script" - } else { - Write-Error "not found: '$_colcon_package_source_powershell_script'" - } -} - - diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh deleted file mode 100644 index 7d7278e5f0..0000000000 --- a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh +++ /dev/null @@ -1,52 +0,0 @@ -# generated from colcon_core/shell/template/package.sh.em - -# This script extends the environment for this package. - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prepend_unique_value_IFS=$IFS - IFS=":" - # start with the new value - _all_values="$_value" - # workaround SH_WORD_SPLIT not being set in zsh - if [ "$(command -v colcon_zsh_convert_to_array)" ]; then - colcon_zsh_convert_to_array _values - fi - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - # restore the field separator - IFS=$_colcon_prepend_unique_value_IFS - unset _colcon_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh b/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh deleted file mode 100644 index be0b458edc..0000000000 --- a/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh +++ /dev/null @@ -1,42 +0,0 @@ -# generated from colcon_zsh/shell/template/package.zsh.em - -# This script extends the environment for this package. - -# a zsh script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - # the prefix is two levels up from the package specific share directory - _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" -else - _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -_colcon_package_zsh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$@" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# function to convert array-like strings into arrays -# to workaround SH_WORD_SPLIT not being set -colcon_zsh_convert_to_array() { - local _listname=$1 - local _dollar="$" - local _split="{=" - local _to_array="(\"$_dollar$_split$_listname}\")" - eval $_listname=$_to_array -} - -# source sh script of this package -_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/ackermann_steering_controller/package.sh" -unset convert_zsh_to_array - -unset _colcon_package_zsh_source_script -unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller b/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller deleted file mode 100644 index 31e56ccb03..0000000000 --- a/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller +++ /dev/null @@ -1 +0,0 @@ -backward_ros:control_msgs:controller_interface:hardware_interface:pluginlib:rclcpp:rclcpp_lifecycle:std_srvs:steering_controllers_library \ No newline at end of file diff --git a/install/local_setup.bash b/install/local_setup.bash deleted file mode 100644 index 03f00256c1..0000000000 --- a/install/local_setup.bash +++ /dev/null @@ -1,121 +0,0 @@ -# generated from colcon_bash/shell/template/prefix.bash.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# a bash script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" -else - _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_bash_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_bash_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_bash_prepend_unique_value_IFS" - unset _colcon_prefix_bash_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_bash_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_bash_prepend_unique_value - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh bash)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "$(declare -f _colcon_prefix_sh_source_script)" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_bash_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.ps1 b/install/local_setup.ps1 deleted file mode 100644 index 6f68c8dede..0000000000 --- a/install/local_setup.ps1 +++ /dev/null @@ -1,55 +0,0 @@ -# generated from colcon_powershell/shell/template/prefix.ps1.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# check environment variable for custom Python executable -if ($env:COLCON_PYTHON_EXECUTABLE) { - if (!(Test-Path "$env:COLCON_PYTHON_EXECUTABLE" -PathType Leaf)) { - echo "error: COLCON_PYTHON_EXECUTABLE '$env:COLCON_PYTHON_EXECUTABLE' doesn't exist" - exit 1 - } - $_colcon_python_executable="$env:COLCON_PYTHON_EXECUTABLE" -} else { - # use the Python executable known at configure time - $_colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if (!(Test-Path "$_colcon_python_executable" -PathType Leaf)) { - if (!(Get-Command "python3" -ErrorAction SilentlyContinue)) { - echo "error: unable to find python3 executable" - exit 1 - } - $_colcon_python_executable="python3" - } -} - -# function to source another script with conditional trace output -# first argument: the path of the script -function _colcon_prefix_powershell_source_script { - param ( - $_colcon_prefix_powershell_source_script_param - ) - # source script with conditional trace output - if (Test-Path $_colcon_prefix_powershell_source_script_param) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_prefix_powershell_source_script_param'" - } - . "$_colcon_prefix_powershell_source_script_param" - } else { - Write-Error "not found: '$_colcon_prefix_powershell_source_script_param'" - } -} - -# get all commands in topological order -$_colcon_ordered_commands = & "$_colcon_python_executable" "$(Split-Path $PSCommandPath -Parent)/_local_setup_util_ps1.py" ps1 - -# execute all commands in topological order -if ($env:COLCON_TRACE) { - echo "Execute generated script:" - echo "<<<" - $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Write-Output - echo ">>>" -} -if ($_colcon_ordered_commands) { - $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Invoke-Expression -} diff --git a/install/local_setup.sh b/install/local_setup.sh deleted file mode 100644 index de4cdbdc70..0000000000 --- a/install/local_setup.sh +++ /dev/null @@ -1,137 +0,0 @@ -# generated from colcon_core/shell/template/prefix.sh.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# since a plain shell script can't determine its own path when being sourced -# either use the provided COLCON_CURRENT_PREFIX -# or fall back to the build time prefix (if it exists) -_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/home/vedant87/ros_ws/src/ros2_controllers/install" -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - if [ ! -d "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" ]; then - echo "The build time path \"$_colcon_prefix_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 - unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX - return 1 - fi -else - _colcon_prefix_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_sh_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_sh_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_sh_prepend_unique_value_IFS" - unset _colcon_prefix_sh_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_sh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_sh_prepend_unique_value - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "_colcon_prefix_sh_source_script() { - if [ -f \"\$1\" ]; then - if [ -n \"\$COLCON_TRACE\" ]; then - echo \"# . \\\"\$1\\\"\" - fi - . \"\$1\" - else - echo \"not found: \\\"\$1\\\"\" 1>&2 - fi - }" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.zsh b/install/local_setup.zsh deleted file mode 100644 index b6487102f2..0000000000 --- a/install/local_setup.zsh +++ /dev/null @@ -1,134 +0,0 @@ -# generated from colcon_zsh/shell/template/prefix.zsh.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# a zsh script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" -else - _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to convert array-like strings into arrays -# to workaround SH_WORD_SPLIT not being set -_colcon_prefix_zsh_convert_to_array() { - local _listname=$1 - local _dollar="$" - local _split="{=" - local _to_array="(\"$_dollar$_split$_listname}\")" - eval $_listname=$_to_array -} - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_zsh_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_zsh_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # workaround SH_WORD_SPLIT not being set - _colcon_prefix_zsh_convert_to_array _values - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_zsh_prepend_unique_value_IFS" - unset _colcon_prefix_zsh_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_zsh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_zsh_prepend_unique_value -unset _colcon_prefix_zsh_convert_to_array - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh zsh)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "$(declare -f _colcon_prefix_sh_source_script)" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_zsh_COLCON_CURRENT_PREFIX diff --git a/install/setup.bash b/install/setup.bash deleted file mode 100644 index bb38dd20e8..0000000000 --- a/install/setup.bash +++ /dev/null @@ -1,31 +0,0 @@ -# generated from colcon_bash/shell/template/prefix_chain.bash.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_bash_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/jazzy" -_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" -_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" - -unset COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_bash_source_script diff --git a/install/setup.ps1 b/install/setup.ps1 deleted file mode 100644 index 0b38e3e78c..0000000000 --- a/install/setup.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# generated from colcon_powershell/shell/template/prefix_chain.ps1.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -function _colcon_prefix_chain_powershell_source_script { - param ( - $_colcon_prefix_chain_powershell_source_script_param - ) - # source script with conditional trace output - if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_prefix_chain_powershell_source_script_param'" - } - . "$_colcon_prefix_chain_powershell_source_script_param" - } else { - Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'" - } -} - -# source chained prefixes -_colcon_prefix_chain_powershell_source_script "/opt/ros/jazzy\local_setup.ps1" - -# source this prefix -$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent) -_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1" diff --git a/install/setup.sh b/install/setup.sh deleted file mode 100644 index 44da871bd0..0000000000 --- a/install/setup.sh +++ /dev/null @@ -1,45 +0,0 @@ -# generated from colcon_core/shell/template/prefix_chain.sh.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# since a plain shell script can't determine its own path when being sourced -# either use the provided COLCON_CURRENT_PREFIX -# or fall back to the build time prefix (if it exists) -_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/home/vedant87/ros_ws/src/ros2_controllers/install -if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then - echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 - unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX - return 1 -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/jazzy" -_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" - - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script -COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" -_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" - -unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_sh_source_script -unset COLCON_CURRENT_PREFIX diff --git a/install/setup.zsh b/install/setup.zsh deleted file mode 100644 index 6e4a496a39..0000000000 --- a/install/setup.zsh +++ /dev/null @@ -1,31 +0,0 @@ -# generated from colcon_zsh/shell/template/prefix_chain.zsh.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_zsh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/jazzy" -_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" -_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" - -unset COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_zsh_source_script diff --git a/log/COLCON_IGNORE b/log/COLCON_IGNORE deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/log/build_2025-03-19_19-39-21/events.log b/log/build_2025-03-19_19-39-21/events.log deleted file mode 100644 index 9e911890bf..0000000000 --- a/log/build_2025-03-19_19-39-21/events.log +++ /dev/null @@ -1,29 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000825] (-) JobUnselected: {'identifier': 'admittance_controller'} -[0.000920] (-) JobUnselected: {'identifier': 'bicycle_steering_controller'} -[0.000984] (-) JobUnselected: {'identifier': 'diff_drive_controller'} -[0.001375] (-) JobUnselected: {'identifier': 'effort_controllers'} -[0.001447] (-) JobUnselected: {'identifier': 'force_torque_sensor_broadcaster'} -[0.001509] (-) JobUnselected: {'identifier': 'forward_command_controller'} -[0.001593] (-) JobUnselected: {'identifier': 'gpio_controllers'} -[0.001658] (-) JobUnselected: {'identifier': 'gripper_controllers'} -[0.001719] (-) JobUnselected: {'identifier': 'imu_sensor_broadcaster'} -[0.002311] (-) JobUnselected: {'identifier': 'joint_state_broadcaster'} -[0.002435] (-) JobUnselected: {'identifier': 'joint_trajectory_controller'} -[0.002498] (-) JobUnselected: {'identifier': 'mecanum_drive_controller'} -[0.002560] (-) JobUnselected: {'identifier': 'parallel_gripper_controller'} -[0.002624] (-) JobUnselected: {'identifier': 'pid_controller'} -[0.002685] (-) JobUnselected: {'identifier': 'pose_broadcaster'} -[0.002748] (-) JobUnselected: {'identifier': 'position_controllers'} -[0.002808] (-) JobUnselected: {'identifier': 'range_sensor_broadcaster'} -[0.002871] (-) JobUnselected: {'identifier': 'ros2_controllers'} -[0.002932] (-) JobUnselected: {'identifier': 'ros2_controllers_test_nodes'} -[0.003008] (-) JobUnselected: {'identifier': 'rqt_joint_trajectory_controller'} -[0.003074] (-) JobUnselected: {'identifier': 'steering_controllers_library'} -[0.003138] (-) JobUnselected: {'identifier': 'tricycle_controller'} -[0.003220] (-) JobUnselected: {'identifier': 'tricycle_steering_controller'} -[0.003277] (-) JobUnselected: {'identifier': 'velocity_controllers'} -[0.003348] (ackermann_steering_controller) JobQueued: {'identifier': 'ackermann_steering_controller', 'dependencies': OrderedDict({'steering_controllers_library': '/home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library'})} -[0.003495] (ackermann_steering_controller) JobStarted: {'identifier': 'ackermann_steering_controller'} -[0.020187] (ackermann_steering_controller) JobEnded: {'identifier': 'ackermann_steering_controller', 'rc': 1} -[0.031005] (-) EventReactorShutdown: {} diff --git a/log/build_2025-03-19_19-39-21/logger_all.log b/log/build_2025-03-19_19-39-21/logger_all.log deleted file mode 100644 index badf91e975..0000000000 --- a/log/build_2025-03-19_19-39-21/logger_all.log +++ /dev/null @@ -1,397 +0,0 @@ -[0.235s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'ackermann_steering_controller'] -[0.235s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['ackermann_steering_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=, verb_extension=, main=>) -[0.276s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.276s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.277s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.277s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' -[0.311s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' -[0.314s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' -[0.317s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' -[0.319s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' -[0.322s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' -[0.324s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' -[0.325s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' -[0.327s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' -[0.329s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' -[0.330s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' -[0.332s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' -[0.334s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' -[0.336s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' -[0.338s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' -[0.339s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' -[0.340s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' -[0.342s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' -[0.344s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' -[0.345s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' -[0.347s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' -[0.348s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' -[0.349s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' -[0.351s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' -[0.353s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' -[0.355s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' -[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.355s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'parallel_gripper_controller' in 'parallel_gripper_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' -[0.382s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' -[0.383s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters -[0.383s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover -[0.386s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 310 installed packages in /opt/ros/jazzy -[0.387s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_args' from command line to 'None' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_target' from command line to 'None' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_clean_cache' from command line to 'False' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_clean_first' from command line to 'False' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'cmake_force_configure' from command line to 'False' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'ament_cmake_args' from command line to 'None' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'catkin_cmake_args' from command line to 'None' -[0.434s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.434s] DEBUG:colcon.colcon_core.verb:Building package 'ackermann_steering_controller' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/ackermann_steering_controller', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller', 'merge_install': False, 'path': '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller', 'symlink_install': False, 'test_result_base': None} -[0.434s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.436s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.436s] INFO:colcon.colcon_ros.task.ament_cmake.build:Building ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' with build type 'ament_cmake' -[0.437s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' -[0.441s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.441s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.441s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment -[0.443s] ERROR:colcon.colcon_cmake.task.cmake.build:Failed to find the following files: -- /home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library/share/steering_controllers_library/package.sh -Check that the following packages have been built: -- steering_controllers_library -[0.444s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(ackermann_steering_controller) -[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller' for CMake module files -[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller' for CMake config files -[0.447s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/bin' -[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/lib/pkgconfig/ackermann_steering_controller.pc' -[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/lib/python3.12/site-packages' -[0.448s] Level 1:colcon.colcon_core.environment:checking '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/bin' -[0.448s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.ps1' -[0.451s] INFO:colcon.colcon_core.shell:Creating package descriptor '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.dsv' -[0.452s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.sh' -[0.453s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.bash' -[0.453s] INFO:colcon.colcon_core.shell:Creating package script '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/ackermann_steering_controller/package.zsh' -[0.454s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller/share/colcon-core/packages/ackermann_steering_controller) -[0.466s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[0.467s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[0.467s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '1' -[0.467s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[0.535s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[0.535s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[0.535s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[0.536s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files -[0.536s] DEBUG:colcon.colcon_core.event_reactor:joined thread -[0.537s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.ps1' -[0.537s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/vedant87/ros_ws/src/ros2_controllers/install/_local_setup_util_ps1.py' -[0.538s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.ps1' -[0.539s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.sh' -[0.540s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/vedant87/ros_ws/src/ros2_controllers/install/_local_setup_util_sh.py' -[0.541s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.sh' -[0.542s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.bash' -[0.543s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.bash' -[0.544s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/vedant87/ros_ws/src/ros2_controllers/install/local_setup.zsh' -[0.544s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/vedant87/ros_ws/src/ros2_controllers/install/setup.zsh' diff --git a/log/latest b/log/latest deleted file mode 120000 index b57d247c77..0000000000 --- a/log/latest +++ /dev/null @@ -1 +0,0 @@ -latest_build \ No newline at end of file diff --git a/log/latest_build b/log/latest_build deleted file mode 120000 index 1a8050921d..0000000000 --- a/log/latest_build +++ /dev/null @@ -1 +0,0 @@ -build_2025-03-19_19-39-21 \ No newline at end of file diff --git a/log/latest_test b/log/latest_test deleted file mode 120000 index b6beba4557..0000000000 --- a/log/latest_test +++ /dev/null @@ -1 +0,0 @@ -test_2025-03-19_19-38-11 \ No newline at end of file diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/command.log deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log deleted file mode 100644 index 82feb469a7..0000000000 --- a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stderr.log +++ /dev/null @@ -1,14 +0,0 @@ -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout.log deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log deleted file mode 100644 index 82feb469a7..0000000000 --- a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/stdout_stderr.log +++ /dev/null @@ -1,14 +0,0 @@ -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log b/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log deleted file mode 100644 index 35fc2d1df5..0000000000 --- a/log/test_2025-03-19_19-37-33/ackermann_steering_controller/streams.log +++ /dev/null @@ -1,14 +0,0 @@ -[0.016s] Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-37-33/events.log b/log/test_2025-03-19_19-37-33/events.log deleted file mode 100644 index 3c7e8f50f9..0000000000 --- a/log/test_2025-03-19_19-37-33/events.log +++ /dev/null @@ -1,6 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000541] (ackermann_steering_controller) JobQueued: {'identifier': 'ackermann_steering_controller', 'dependencies': OrderedDict({'steering_controllers_library': '/home/vedant87/ros_ws/src/ros2_controllers/install/steering_controllers_library', 'ackermann_steering_controller': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller'})} -[0.001114] (ackermann_steering_controller) JobStarted: {'identifier': 'ackermann_steering_controller'} -[0.015384] (ackermann_steering_controller) StderrLine: {'line': b'Traceback (most recent call last):\n File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__\n rc = await self.task(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__\n return await task_method(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test\n return await extension.test()\n ^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test\n assert os.path.exists(args.build_base), \\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Has this package been built before?\n'} -[0.017001] (ackermann_steering_controller) JobEnded: {'identifier': 'ackermann_steering_controller', 'rc': 1} -[0.026081] (-) EventReactorShutdown: {} diff --git a/log/test_2025-03-19_19-37-33/logger_all.log b/log/test_2025-03-19_19-37-33/logger_all.log deleted file mode 100644 index de8c613479..0000000000 --- a/log/test_2025-03-19_19-37-33/logger_all.log +++ /dev/null @@ -1,383 +0,0 @@ -[0.291s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'test', '--packages-select', 'ackermann_steering_controller'] -[0.292s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='test', build_base='build', install_base='install', merge_install=False, test_result_base=None, retest_until_fail=0, retest_until_pass=0, abort_on_error=False, return_code_on_test_failure=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['ackermann_steering_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], ctest_args=None, python_testing=None, pytest_args=None, pytest_with_coverage=False, unittest_args=None, verb_parser=, verb_extension=, main=>) -[0.333s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.333s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.334s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.334s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' -[0.362s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' -[0.364s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' -[0.365s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore_ament_install' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_pkg'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_pkg' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_meta'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_meta' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ros'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ros' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['cmake', 'python'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'cmake' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['python_setup_py'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python_setup_py' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' -[0.370s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' -[0.375s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' -[0.377s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' -[0.378s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' -[0.380s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' -[0.381s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' -[0.383s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore_ament_install' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_pkg'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_pkg' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_meta'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_meta' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ros'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ros' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['cmake', 'python'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'cmake' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['python_setup_py'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python_setup_py' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' -[0.386s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' -[0.388s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' -[0.390s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' -[0.391s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' -[0.393s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' -[0.394s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' -[0.396s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' -[0.398s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' -[0.399s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' -[0.401s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' -[0.402s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' -[0.422s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' -[0.424s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' -[0.425s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' -[0.426s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' -[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.426s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.435s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'parallel_gripper_controller' in 'parallel_gripper_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' -[0.436s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' -[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'ctest_args' from command line to 'None' -[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'python_testing' from command line to 'None' -[0.436s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'pytest_args' from command line to 'None' -[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'pytest_with_coverage' from command line to 'False' -[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'unittest_args' from command line to 'None' -[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'retest_until_pass' from command line to '0' -[0.437s] Level 5:colcon.colcon_core.verb:set package 'ackermann_steering_controller' test argument 'retest_until_fail' from command line to '0' -[0.437s] DEBUG:colcon.colcon_core.verb.test:Testing package 'ackermann_steering_controller' with the following arguments: {'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/ackermann_steering_controller', 'ctest_args': None, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/ackermann_steering_controller', 'path': '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller', 'pytest_args': None, 'pytest_with_coverage': False, 'python_testing': None, 'retest_until_fail': 0, 'retest_until_pass': 0, 'test_result_base': None, 'unittest_args': None} -[0.437s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.438s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.439s] INFO:colcon.colcon_ros.task.ament_cmake.test:Testing ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' with build type 'ament_cmake' -[0.439s] INFO:colcon.colcon_cmake.task.cmake.test:Testing CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/ackermann_steering_controller' -[0.463s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[0.464s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[0.464s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with 'Has this package been built before?' -[0.464s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[0.534s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[0.534s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[0.536s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files -[0.536s] DEBUG:colcon.colcon_core.event_reactor:joined thread diff --git a/log/test_2025-03-19_19-38-11/events.log b/log/test_2025-03-19_19-38-11/events.log deleted file mode 100644 index 2c36cd3adb..0000000000 --- a/log/test_2025-03-19_19-38-11/events.log +++ /dev/null @@ -1,6 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000827] (parallel_gripper_controller) JobQueued: {'identifier': 'parallel_gripper_controller', 'dependencies': OrderedDict({'parallel_gripper_controller': '/home/vedant87/ros_ws/src/ros2_controllers/install/parallel_gripper_controller'})} -[0.001225] (parallel_gripper_controller) JobStarted: {'identifier': 'parallel_gripper_controller'} -[0.002638] (parallel_gripper_controller) StderrLine: {'line': b'Traceback (most recent call last):\n File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__\n rc = await self.task(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__\n return await task_method(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test\n return await extension.test()\n ^^^^^^^^^^^^^^^^^^^^^^\n File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test\n assert os.path.exists(args.build_base), \\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Has this package been built before?\n'} -[0.004412] (parallel_gripper_controller) JobEnded: {'identifier': 'parallel_gripper_controller', 'rc': 1} -[0.013683] (-) EventReactorShutdown: {} diff --git a/log/test_2025-03-19_19-38-11/logger_all.log b/log/test_2025-03-19_19-38-11/logger_all.log deleted file mode 100644 index a165002400..0000000000 --- a/log/test_2025-03-19_19-38-11/logger_all.log +++ /dev/null @@ -1,397 +0,0 @@ -[0.300s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'test', '--packages-select', 'parallel_gripper_controller'] -[0.300s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='test', build_base='build', install_base='install', merge_install=False, test_result_base=None, retest_until_fail=0, retest_until_pass=0, abort_on_error=False, return_code_on_test_failure=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['parallel_gripper_controller'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], ctest_args=None, python_testing=None, pytest_args=None, pytest_with_coverage=False, unittest_args=None, verb_parser=, verb_extension=, main=>) -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.343s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.343s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/vedant87/ros_ws/src/ros2_controllers' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ignore_ament_install' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_pkg'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_pkg' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['colcon_meta'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'colcon_meta' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extensions ['ros'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(ackermann_steering_controller) by extension 'ros' -[0.371s] DEBUG:colcon.colcon_core.package_identification:Package 'ackermann_steering_controller' with type 'ros.ament_cmake' and name 'ackermann_steering_controller' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ignore_ament_install' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_pkg'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_pkg' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['colcon_meta'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'colcon_meta' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extensions ['ros'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(admittance_controller) by extension 'ros' -[0.373s] DEBUG:colcon.colcon_core.package_identification:Package 'admittance_controller' with type 'ros.ament_cmake' and name 'admittance_controller' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ignore_ament_install' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_pkg'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_pkg' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['colcon_meta'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'colcon_meta' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extensions ['ros'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(bicycle_steering_controller) by extension 'ros' -[0.375s] DEBUG:colcon.colcon_core.package_identification:Package 'bicycle_steering_controller' with type 'ros.ament_cmake' and name 'bicycle_steering_controller' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore_ament_install' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_pkg'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_pkg' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['colcon_meta'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'colcon_meta' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ros'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ros' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['cmake', 'python'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'cmake' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['python_setup_py'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'python_setup_py' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ignore' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ignore_ament_install' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['colcon_pkg'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'colcon_pkg' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['colcon_meta'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'colcon_meta' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['ros'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'ros' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['cmake', 'python'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'cmake' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'python' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extensions ['python_setup_py'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(build/ackermann_steering_controller) by extension 'python_setup_py' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ignore_ament_install' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_pkg'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_pkg' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['colcon_meta'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'colcon_meta' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extensions ['ros'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(diff_drive_controller) by extension 'ros' -[0.378s] DEBUG:colcon.colcon_core.package_identification:Package 'diff_drive_controller' with type 'ros.ament_cmake' and name 'diff_drive_controller' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ignore', 'ignore_ament_install'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ignore_ament_install' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_pkg'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_pkg' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['colcon_meta'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'colcon_meta' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['ros'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'ros' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['cmake', 'python'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'cmake' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extensions ['python_setup_py'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc) by extension 'python_setup_py' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ignore', 'ignore_ament_install'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ignore_ament_install' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_pkg'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_pkg' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['colcon_meta'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'colcon_meta' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['ros'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'ros' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['cmake', 'python'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'cmake' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extensions ['python_setup_py'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(doc/images) by extension 'python_setup_py' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ignore_ament_install' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_pkg'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_pkg' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['colcon_meta'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'colcon_meta' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extensions ['ros'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(effort_controllers) by extension 'ros' -[0.381s] DEBUG:colcon.colcon_core.package_identification:Package 'effort_controllers' with type 'ros.ament_cmake' and name 'effort_controllers' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ignore_ament_install' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_pkg' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['colcon_meta'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'colcon_meta' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extensions ['ros'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(force_torque_sensor_broadcaster) by extension 'ros' -[0.383s] DEBUG:colcon.colcon_core.package_identification:Package 'force_torque_sensor_broadcaster' with type 'ros.ament_cmake' and name 'force_torque_sensor_broadcaster' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ignore_ament_install' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_pkg'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_pkg' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['colcon_meta'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'colcon_meta' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extensions ['ros'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(forward_command_controller) by extension 'ros' -[0.385s] DEBUG:colcon.colcon_core.package_identification:Package 'forward_command_controller' with type 'ros.ament_cmake' and name 'forward_command_controller' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ignore_ament_install' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_pkg'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_pkg' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['colcon_meta'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'colcon_meta' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extensions ['ros'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(gpio_controllers) by extension 'ros' -[0.386s] DEBUG:colcon.colcon_core.package_identification:Package 'gpio_controllers' with type 'ros.ament_cmake' and name 'gpio_controllers' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ignore_ament_install' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_pkg'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_pkg' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['colcon_meta'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'colcon_meta' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extensions ['ros'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(gripper_controllers) by extension 'ros' -[0.387s] DEBUG:colcon.colcon_core.package_identification:Package 'gripper_controllers' with type 'ros.ament_cmake' and name 'gripper_controllers' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ignore_ament_install' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_pkg' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['colcon_meta'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'colcon_meta' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extensions ['ros'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(imu_sensor_broadcaster) by extension 'ros' -[0.389s] DEBUG:colcon.colcon_core.package_identification:Package 'imu_sensor_broadcaster' with type 'ros.ament_cmake' and name 'imu_sensor_broadcaster' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore_ament_install' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_pkg'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_pkg' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['colcon_meta'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'colcon_meta' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ros'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ros' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['cmake', 'python'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'cmake' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['python_setup_py'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'python_setup_py' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ignore_ament_install' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_pkg'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_pkg' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['colcon_meta'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'colcon_meta' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extensions ['ros'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(joint_state_broadcaster) by extension 'ros' -[0.392s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_state_broadcaster' with type 'ros.ament_cmake' and name 'joint_state_broadcaster' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ignore_ament_install' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_pkg' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['colcon_meta'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'colcon_meta' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extensions ['ros'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(joint_trajectory_controller) by extension 'ros' -[0.393s] DEBUG:colcon.colcon_core.package_identification:Package 'joint_trajectory_controller' with type 'ros.ament_cmake' and name 'joint_trajectory_controller' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ignore_ament_install' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_pkg'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_pkg' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['colcon_meta'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'colcon_meta' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extensions ['ros'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(mecanum_drive_controller) by extension 'ros' -[0.395s] DEBUG:colcon.colcon_core.package_identification:Package 'mecanum_drive_controller' with type 'ros.ament_cmake' and name 'mecanum_drive_controller' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ignore_ament_install' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_pkg'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_pkg' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['colcon_meta'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'colcon_meta' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extensions ['ros'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(parallel_gripper_controller) by extension 'ros' -[0.397s] DEBUG:colcon.colcon_core.package_identification:Package 'parallel_gripper_controller' with type 'ros.ament_cmake' and name 'parallel_gripper_controller' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ignore_ament_install' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_pkg'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_pkg' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['colcon_meta'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'colcon_meta' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extensions ['ros'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(pid_controller) by extension 'ros' -[0.399s] DEBUG:colcon.colcon_core.package_identification:Package 'pid_controller' with type 'ros.ament_cmake' and name 'pid_controller' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ignore_ament_install' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_pkg'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_pkg' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['colcon_meta'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'colcon_meta' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extensions ['ros'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(pose_broadcaster) by extension 'ros' -[0.401s] DEBUG:colcon.colcon_core.package_identification:Package 'pose_broadcaster' with type 'ros.ament_cmake' and name 'pose_broadcaster' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ignore_ament_install' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_pkg'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_pkg' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['colcon_meta'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'colcon_meta' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extensions ['ros'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(position_controllers) by extension 'ros' -[0.402s] DEBUG:colcon.colcon_core.package_identification:Package 'position_controllers' with type 'ros.ament_cmake' and name 'position_controllers' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ignore', 'ignore_ament_install'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ignore_ament_install' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_pkg'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_pkg' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['colcon_meta'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'colcon_meta' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extensions ['ros'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(range_sensor_broadcaster) by extension 'ros' -[0.404s] DEBUG:colcon.colcon_core.package_identification:Package 'range_sensor_broadcaster' with type 'ros.ament_cmake' and name 'range_sensor_broadcaster' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ignore_ament_install' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_pkg'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_pkg' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['colcon_meta'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'colcon_meta' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extensions ['ros'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers) by extension 'ros' -[0.406s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers' with type 'ros.ament_cmake' and name 'ros2_controllers' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ignore', 'ignore_ament_install'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ignore_ament_install' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_pkg'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_pkg' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['colcon_meta'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'colcon_meta' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extensions ['ros'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(ros2_controllers_test_nodes) by extension 'ros' -[0.407s] DEBUG:colcon.colcon_core.package_identification:Package 'ros2_controllers_test_nodes' with type 'ros.ament_python' and name 'ros2_controllers_test_nodes' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ignore_ament_install' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_pkg'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_pkg' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['colcon_meta'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'colcon_meta' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extensions ['ros'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(rqt_joint_trajectory_controller) by extension 'ros' -[0.408s] DEBUG:colcon.colcon_core.package_identification:Package 'rqt_joint_trajectory_controller' with type 'ros.ament_python' and name 'rqt_joint_trajectory_controller' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ignore', 'ignore_ament_install'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ignore_ament_install' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_pkg'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_pkg' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['colcon_meta'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'colcon_meta' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extensions ['ros'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(steering_controllers_library) by extension 'ros' -[0.429s] DEBUG:colcon.colcon_core.package_identification:Package 'steering_controllers_library' with type 'ros.ament_cmake' and name 'steering_controllers_library' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ignore_ament_install' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_pkg'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_pkg' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['colcon_meta'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'colcon_meta' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extensions ['ros'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_controller) by extension 'ros' -[0.431s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_controller' with type 'ros.ament_cmake' and name 'tricycle_controller' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ignore', 'ignore_ament_install'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ignore_ament_install' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_pkg'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_pkg' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['colcon_meta'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'colcon_meta' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extensions ['ros'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(tricycle_steering_controller) by extension 'ros' -[0.432s] DEBUG:colcon.colcon_core.package_identification:Package 'tricycle_steering_controller' with type 'ros.ament_cmake' and name 'tricycle_steering_controller' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ignore', 'ignore_ament_install'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ignore_ament_install' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_pkg'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_pkg' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['colcon_meta'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'colcon_meta' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extensions ['ros'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(velocity_controllers) by extension 'ros' -[0.434s] DEBUG:colcon.colcon_core.package_identification:Package 'velocity_controllers' with type 'ros.ament_cmake' and name 'velocity_controllers' -[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.434s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.443s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'admittance_controller' in 'admittance_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'diff_drive_controller' in 'diff_drive_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'force_torque_sensor_broadcaster' in 'force_torque_sensor_broadcaster' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'forward_command_controller' in 'forward_command_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gpio_controllers' in 'gpio_controllers' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'gripper_controllers' in 'gripper_controllers' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'imu_sensor_broadcaster' in 'imu_sensor_broadcaster' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_state_broadcaster' in 'joint_state_broadcaster' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'joint_trajectory_controller' in 'joint_trajectory_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mecanum_drive_controller' in 'mecanum_drive_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pid_controller' in 'pid_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pose_broadcaster' in 'pose_broadcaster' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'range_sensor_broadcaster' in 'range_sensor_broadcaster' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers_test_nodes' in 'ros2_controllers_test_nodes' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'rqt_joint_trajectory_controller' in 'rqt_joint_trajectory_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'steering_controllers_library' in 'steering_controllers_library' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_controller' in 'tricycle_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ackermann_steering_controller' in 'ackermann_steering_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'bicycle_steering_controller' in 'bicycle_steering_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'effort_controllers' in 'effort_controllers' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'position_controllers' in 'position_controllers' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'tricycle_steering_controller' in 'tricycle_steering_controller' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'velocity_controllers' in 'velocity_controllers' -[0.444s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'ros2_controllers' in 'ros2_controllers' -[0.444s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'ctest_args' from command line to 'None' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'python_testing' from command line to 'None' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'pytest_args' from command line to 'None' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'pytest_with_coverage' from command line to 'False' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'unittest_args' from command line to 'None' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'retest_until_pass' from command line to '0' -[0.445s] Level 5:colcon.colcon_core.verb:set package 'parallel_gripper_controller' test argument 'retest_until_fail' from command line to '0' -[0.445s] DEBUG:colcon.colcon_core.verb.test:Testing package 'parallel_gripper_controller' with the following arguments: {'build_base': '/home/vedant87/ros_ws/src/ros2_controllers/build/parallel_gripper_controller', 'ctest_args': None, 'install_base': '/home/vedant87/ros_ws/src/ros2_controllers/install/parallel_gripper_controller', 'path': '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller', 'pytest_args': None, 'pytest_with_coverage': False, 'python_testing': None, 'retest_until_fail': 0, 'retest_until_pass': 0, 'test_result_base': None, 'unittest_args': None} -[0.445s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.446s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.446s] INFO:colcon.colcon_ros.task.ament_cmake.test:Testing ROS package in '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller' with build type 'ament_cmake' -[0.447s] INFO:colcon.colcon_cmake.task.cmake.test:Testing CMake package in '/home/vedant87/ros_ws/src/ros2_controllers/parallel_gripper_controller' -[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[0.459s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with 'Has this package been built before?' -[0.459s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[0.524s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[0.524s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[0.526s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files -[0.526s] DEBUG:colcon.colcon_core.event_reactor:joined thread diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/command.log deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log deleted file mode 100644 index 82feb469a7..0000000000 --- a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stderr.log +++ /dev/null @@ -1,14 +0,0 @@ -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout.log deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log deleted file mode 100644 index 82feb469a7..0000000000 --- a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/stdout_stderr.log +++ /dev/null @@ -1,14 +0,0 @@ -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? diff --git a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log b/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log deleted file mode 100644 index 20677fa889..0000000000 --- a/log/test_2025-03-19_19-38-11/parallel_gripper_controller/streams.log +++ /dev/null @@ -1,14 +0,0 @@ -[0.003s] Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__ - rc = await self.task(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__ - return await task_method(*args, **kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_cmake/test.py", line 29, in test - return await extension.test() - ^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/colcon_cmake/task/cmake/test.py", line 44, in test - assert os.path.exists(args.build_base), \ - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -AssertionError: Has this package been built before? From 0644d6a5825cc36826f51524596b9e3dd2c83048 Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Mon, 7 Apr 2025 20:56:41 +0000 Subject: [PATCH 4/6] Fix errors --- .../test/test_steering_odometry_utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steering_controllers_library/test/test_steering_odometry_utils.hpp b/steering_controllers_library/test/test_steering_odometry_utils.hpp index d450e11fc1..e0fba0d33c 100644 --- a/steering_controllers_library/test/test_steering_odometry_utils.hpp +++ b/steering_controllers_library/test/test_steering_odometry_utils.hpp @@ -132,4 +132,4 @@ class IkSteeringLimitedParameterized std::unique_ptr odom_; }; -#endif // TEST_STEERING_ODOMETRY_UTILS_HPP \ No newline at end of file +#endif // TEST_STEERING_ODOMETRY_UTILS_HPP From ca3c9e5e99f8afa410cff8e995bf4dc572b6d409 Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Mon, 7 Apr 2025 21:41:52 +0000 Subject: [PATCH 5/6] Fix test failures --- .../test/test_steering_odometry.cpp | 8 +- .../test/test_steering_odometry_utils.hpp | 108 ++++++++++-------- 2 files changed, 61 insertions(+), 55 deletions(-) diff --git a/steering_controllers_library/test/test_steering_odometry.cpp b/steering_controllers_library/test/test_steering_odometry.cpp index 923dbad874..27e3528e10 100644 --- a/steering_controllers_library/test/test_steering_odometry.cpp +++ b/steering_controllers_library/test/test_steering_odometry.cpp @@ -254,13 +254,11 @@ TEST_P(SteeringOdometryTestParameterized, bicycle_IK_linear) auto cmd = odom_->get_commands(ik_vx_, ik_wz_, open_loop_, reduce_speed_); - auto vel_cmd = std::get<0>(cmd); // vel - EXPECT_DOUBLE_EQ(vel_cmd[0], vel_cmd[1]); // linear - EXPECT_GT(vel_cmd[0], 0); + auto vel_cmd = std::get<0>(cmd); // vel + EXPECT_DOUBLE_EQ(vel_cmd[0], 1.0); // linear auto steer_cmd = std::get<1>(cmd); // steer EXPECT_DOUBLE_EQ(steer_cmd[0], 0); // linear - EXPECT_DOUBLE_EQ(steer_cmd[1], 0); } TEST_P(SteeringOdometryTestParameterized, bicycle_IK_left) @@ -397,7 +395,7 @@ TEST_P(SteeringOdometryTestParameterized, bicycle_odometry) ASSERT_TRUE(odom_->update_from_velocity(v, w, dt)); // Verify results - EXPECT_NEAR(odom_->get_linear(), 1.002, 1e-3); + EXPECT_NEAR(odom_->get_linear(), 1.0, 1e-3); EXPECT_NEAR(odom_->get_angular(), 0.1, 1e-3); EXPECT_NEAR(odom_->get_x(), 0.1, 1e-3); EXPECT_NEAR(odom_->get_heading(), 0.01, 1e-3); diff --git a/steering_controllers_library/test/test_steering_odometry_utils.hpp b/steering_controllers_library/test/test_steering_odometry_utils.hpp index e0fba0d33c..a6c0f6618f 100644 --- a/steering_controllers_library/test/test_steering_odometry_utils.hpp +++ b/steering_controllers_library/test/test_steering_odometry_utils.hpp @@ -18,11 +18,12 @@ #include #include #include -#include #include +#include #include "steering_controllers_library/steering_odometry.hpp" -enum class TestType { +enum class TestType +{ INITIALIZE, ODOMETRY, OPEN_LOOP_LINEAR, @@ -34,49 +35,53 @@ enum class TestType { }; class SteeringOdometryTestParameterized - : public ::testing::TestWithParam, // wheel_radius, wheelbase, track_width - std::tuple, // position (pos, steer, dt) - std::optional>, // ackermann velocity (v_r, v_l, w_r, w_l, dt) - std::optional>, // bicycle odometry (v,w,dt) - std::optional>, // tricycle velocity (v_r, v_l, steer, dt) - std::tuple, // open_loop (vx, ωz, dt) - std::tuple, // ik_params (vx, ωz, open_loop, reduce_speed) - TestType>> { +: public ::testing::TestWithParam, // wheel_radius, wheelbase, track_width + std::tuple, // position (pos, steer, dt) + std::optional>, // ackermann velocity (v_r, + // v_l, w_r, w_l, dt) + std::optional>, // bicycle odometry (v,w,dt) + std::optional>, // tricycle velocity (v_r, v_l, + // steer, dt) + std::tuple, // open_loop (vx, ωz, dt) + std::tuple, // ik_params (vx, ωz, open_loop, reduce_speed) + TestType>> +{ protected: - void SetUp() override { - const auto& params = GetParam(); - odom_type_ = std::get<0>(params); - std::tie(wheel_radius_, wheelbase_, track_width_) = std::get<1>(params); - std::tie(pos_, steer_pos_, dt_pos_) = std::get<2>(params); - ackermann_velocity_ = std::get<3>(params); - bicycle_velocity_ = std::get<4>(params); - tricycle_velocity_ = std::get<5>(params); + void SetUp() override + { + const auto & params = GetParam(); + odom_type_ = std::get<0>(params); + std::tie(wheel_radius_, wheelbase_, track_width_) = std::get<1>(params); + std::tie(pos_, steer_pos_, dt_pos_) = std::get<2>(params); + ackermann_velocity_ = std::get<3>(params); + bicycle_velocity_ = std::get<4>(params); + tricycle_velocity_ = std::get<5>(params); - std::tie(vx_open_, wz_open_, dt_open_) = std::get<6>(params); - std::tie(ik_vx_, ik_wz_, open_loop_, reduce_speed_) = std::get<7>(params); - test_type_ = std::get<8>(params); + std::tie(vx_open_, wz_open_, dt_open_) = std::get<6>(params); + std::tie(ik_vx_, ik_wz_, open_loop_, reduce_speed_) = std::get<7>(params); + test_type_ = std::get<8>(params); - odom_ = std::make_unique(1); - odom_->set_wheel_params(wheel_radius_, wheelbase_, track_width_); - odom_->set_odometry_type(odom_type_); - } + odom_ = std::make_unique(1); + odom_->set_wheel_params(wheel_radius_, wheelbase_, track_width_); + odom_->set_odometry_type(odom_type_); + } protected: - // Parameters - unsigned int odom_type_; - double wheel_radius_, wheelbase_, track_width_; - double pos_, steer_pos_, dt_pos_; - std::optional> ackermann_velocity_; - std::optional> bicycle_velocity_; - std::optional> tricycle_velocity_; - double vx_open_, wz_open_, dt_open_; - double ik_vx_, ik_wz_; - bool open_loop_, reduce_speed_; - TestType test_type_; + // Parameters + unsigned int odom_type_; + double wheel_radius_, wheelbase_, track_width_; + double pos_, steer_pos_, dt_pos_; + std::optional> ackermann_velocity_; + std::optional> bicycle_velocity_; + std::optional> tricycle_velocity_; + double vx_open_, wz_open_, dt_open_; + double ik_vx_, ik_wz_; + bool open_loop_, reduce_speed_; + TestType test_type_; - std::unique_ptr odom_; + std::unique_ptr odom_; }; class IkSteeringLimitedParameterized @@ -99,8 +104,9 @@ class IkSteeringLimitedParameterized >> { protected: - void SetUp() override { - const auto& params = GetParam(); + void SetUp() override + { + const auto & params = GetParam(); odom_type_ = std::get<0>(params); std::tie(wheel_radius_, wheelbase_, track_width_) = std::get<1>(params); position_cases_ = std::get<2>(params); @@ -118,18 +124,20 @@ class IkSteeringLimitedParameterized double track_width_; unsigned int odom_type_; std::tuple< - std::tuple, // Case 1 - std::tuple, // Case 2 - std::tuple, // Case 3 + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 std::optional> // Optional Case 4 - > position_cases_; + > + position_cases_; std::tuple< - std::tuple, // Case 1 - std::tuple, // Case 2 - std::tuple, // Case 3 + std::tuple, // Case 1 + std::tuple, // Case 2 + std::tuple, // Case 3 std::optional> // Optional Case 4 - > command_cases_; + > + command_cases_; std::unique_ptr odom_; }; -#endif // TEST_STEERING_ODOMETRY_UTILS_HPP +#endif // TEST_STEERING_ODOMETRY_UTILS_HPP From 1d9049cf6d9fd6102905f045141d976e5aa5e449 Mon Sep 17 00:00:00 2001 From: Vedant87 Date: Fri, 11 Apr 2025 04:17:01 +0000 Subject: [PATCH 6/6] Fix linting issues during pre-commit run --- .../test/test_steering_odometry.cpp | 47 ++++++++----------- .../test/test_steering_odometry_utils.hpp | 18 +++---- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/steering_controllers_library/test/test_steering_odometry.cpp b/steering_controllers_library/test/test_steering_odometry.cpp index 27e3528e10..6fe9d29cc3 100644 --- a/steering_controllers_library/test/test_steering_odometry.cpp +++ b/steering_controllers_library/test/test_steering_odometry.cpp @@ -32,7 +32,6 @@ TEST_P(SteeringOdometryTestParameterized, initialize) EXPECT_DOUBLE_EQ(odom_->get_x(), 0.); EXPECT_DOUBLE_EQ(odom_->get_y(), 0.); } - else { GTEST_SKIP(); @@ -375,7 +374,6 @@ TEST_P(IkSteeringLimitedParameterized, bicycle_IK_right_steering_limited) auto extreme_steer_cmd = std::get<1>(cmd); EXPECT_LT(extreme_steer_cmd[0], 0); } - else { GTEST_SKIP(); @@ -810,54 +808,48 @@ INSTANTIATE_TEST_SUITE_P( ::testing::Values( // Ackermann configuration (3 cases) std::make_tuple( - steering_odometry::ACKERMANN_CONFIG, - std::make_tuple(1., 2., 1.), - std::make_tuple( // Position cases + steering_odometry::ACKERMANN_CONFIG, std::make_tuple(1., 2., 1.), + std::make_tuple( // Position cases std::make_tuple(0., -0.785, 1.), // Case 1 std::make_tuple(0., -0.1, 1.), // Case 2 std::make_tuple(0., -0.1, 1.), // Case 3 - std::nullopt // No Case 4 - ), + std::nullopt // No Case 4 + ), std::make_tuple( // Command cases - std::make_tuple(1., -0.5, false, true), - std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), std::make_tuple(1., -0.5, false, false), std::make_tuple(1., -0.5, false, true), std::nullopt // No Case 4 - )), + )), // Bicycle configuration (4 cases) std::make_tuple( - steering_odometry::BICYCLE_CONFIG, - std::make_tuple(1., 2., 1.), + steering_odometry::BICYCLE_CONFIG, std::make_tuple(1., 2., 1.), std::make_tuple( - std::make_tuple(0., -0.785, 1.), // Case 1 - std::make_tuple(0., -0.1, 1.), // Case 2 - std::make_tuple(0., -0.1, 1.), // Case 3 + std::make_tuple(0., -0.785, 1.), // Case 1 + std::make_tuple(0., -0.1, 1.), // Case 2 + std::make_tuple(0., -0.1, 1.), // Case 3 std::make_optional(std::make_tuple(0.0, M_PI, 1.0)) // Case 4 - ), + ), std::make_tuple( - std::make_tuple(1., -0.5, false, true), - std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), std::make_tuple(1., -0.5, false, false), std::make_tuple(1., -0.5, false, true), std::make_optional(std::make_tuple(1., -0.5, false, true)) // Case 4 - )), + )), // Tricycle configuration std::make_tuple( - steering_odometry::TRICYCLE_CONFIG, - std::make_tuple(1., 2., 1.0), + steering_odometry::TRICYCLE_CONFIG, std::make_tuple(1., 2., 1.0), std::make_tuple( std::make_tuple(0., -0.785, 1.), // Case 1 std::make_tuple(0., -0.1, 1.), // Case 2 std::make_tuple(0., -0.1, 1.), // Case 3 - std::nullopt // No Case 4 - ), + std::nullopt // No Case 4 + ), std::make_tuple( - std::make_tuple(1., -0.5, false, true), - std::make_tuple(1., -0.5, false, false), + std::make_tuple(1., -0.5, false, true), std::make_tuple(1., -0.5, false, false), std::make_tuple(1., -0.5, false, true), std::nullopt // No Case 4 - ))), + ))), [](const auto & test_info) { @@ -884,5 +876,4 @@ INSTANTIATE_TEST_SUITE_P( // Add test identifier name += "_IK_right_steering_limited"; return name; - } -); + }); diff --git a/steering_controllers_library/test/test_steering_odometry_utils.hpp b/steering_controllers_library/test/test_steering_odometry_utils.hpp index a6c0f6618f..f85a5be542 100644 --- a/steering_controllers_library/test/test_steering_odometry_utils.hpp +++ b/steering_controllers_library/test/test_steering_odometry_utils.hpp @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef TEST_STEERING_ODOMETRY_UTILS_HPP -#define TEST_STEERING_ODOMETRY_UTILS_HPP +#ifndef TEST_STEERING_ODOMETRY_UTILS_HPP_ +#define TEST_STEERING_ODOMETRY_UTILS_HPP_ #include #include +#include #include #include -#include #include "steering_controllers_library/steering_odometry.hpp" enum class TestType @@ -39,12 +39,12 @@ class SteeringOdometryTestParameterized unsigned int, // odom_type (ACKERMANN_CONFIG, BICYCLE_CONFIG, TRICYCLE_CONFIG) std::tuple, // wheel_radius, wheelbase, track_width std::tuple, // position (pos, steer, dt) - std::optional>, // ackermann velocity (v_r, - // v_l, w_r, w_l, dt) + std::optional>, // ackermann velocity + // (v_r,v_l, w_r, w_l, dt) std::optional>, // bicycle odometry (v,w,dt) - std::optional>, // tricycle velocity (v_r, v_l, - // steer, dt) - std::tuple, // open_loop (vx, ωz, dt) + std::optional>, // tricycle velocity + // (v_r, v_l, steer, dt) + std::tuple, // open_loop (vx, ωz, dt) std::tuple, // ik_params (vx, ωz, open_loop, reduce_speed) TestType>> { @@ -140,4 +140,4 @@ class IkSteeringLimitedParameterized std::unique_ptr odom_; }; -#endif // TEST_STEERING_ODOMETRY_UTILS_HPP +#endif // TEST_STEERING_ODOMETRY_UTILS_HPP_