AS: creating packages

This commit is contained in:
Alexander Schaefer 2025-03-14 17:52:15 +01:00
parent dbaab8d886
commit 7b047387eb
281 changed files with 10301 additions and 4 deletions

View File

@ -42,7 +42,7 @@ def main():
with open(urdf_path, "w") as file:
file.write(urdf_string)
print(f"URDF saved to {urdf_path}")
print(f"URDF saved to {urdf_path}")
# Load into Robotic Toolbox
robot = rtb.ERobot.URDF(urdf_path)

View File

@ -16,7 +16,7 @@ class ScaledJointTrajectoryPublisher(Node):
self.client = self.create_client(GetParameters, '/robot_state_publisher/get_parameters')
while not self.client.wait_for_service(timeout_sec=3.0):
self.get_logger().warn("Waiting for /robot_state_publisher parameter service...")
self.get_logger().warn("Waiting for /robot_state_publisher parameter service...")
# Create and send a request to get 'robot_description'
self.request = GetParameters.Request()
@ -68,7 +68,7 @@ def main():
urdf_string = node.urdf_string
# Save to a file
urdf_path = "/tmp/robot.urdf"
urdf_path = "/BA/robot.urdf"
with open(urdf_path, "w") as file:
file.write(urdf_string)

View File

@ -15,7 +15,7 @@ class ScaledJointTrajectoryPublisher(Node):
self.client = self.create_client(GetParameters, '/robot_state_publisher/get_parameters')
while not self.client.wait_for_service(timeout_sec=3.0):
self.get_logger().warn("Waiting for /robot_state_publisher parameter service...")
self.get_logger().warn("Waiting for /robot_state_publisher parameter service...")
# Create and send a request to get 'robot_description'
self.request = GetParameters.Request()

1
ros_osc/build/.built_by Normal file
View File

@ -0,0 +1 @@
colcon

View File

View File

@ -0,0 +1 @@
isolated

View File

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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
}

View File

@ -0,0 +1,137 @@
# generated from colcon_core/shell/template/prefix.sh.em
# This script extends the environment with all packages contained in this
# prefix path.
# since a plain shell script can't determine its own path when being sourced
# either use the provided COLCON_CURRENT_PREFIX
# or fall back to the build time prefix (if it exists)
_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/BA/ros_osc/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

View File

@ -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

View File

@ -0,0 +1,26 @@
# 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 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

26
ros_osc/install/setup.ps1 Normal file
View File

@ -0,0 +1,26 @@
# 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 this prefix
$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent)
_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1"

39
ros_osc/install/setup.sh Normal file
View File

@ -0,0 +1,39 @@
# generated from colcon_core/shell/template/prefix_chain.sh.em
# This script extends the environment with the environment of other prefix
# paths which were sourced when this file was generated as well as all packages
# contained in this prefix path.
# since a plain shell script can't determine its own path when being sourced
# either use the provided COLCON_CURRENT_PREFIX
# or fall back to the build time prefix (if it exists)
_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/BA/ros_osc/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 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

26
ros_osc/install/setup.zsh Normal file
View File

@ -0,0 +1,26 @@
# 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 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

View File

@ -0,0 +1,62 @@
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import JointState
from osc4py3.as_eventloop import *
from osc4py3 import oscbuildparse
import roboticstoolbox as rtb
class JointStateOSC(Node):
def __init__(self):
super().__init__('joint_states_osc')
# Create a ROS 2 subscriber to /joint_states topic
self.subscription = self.create_subscription(
JointState,
'/joint_states',
self.joint_states_callback,
1 # Queue size
)
# Open Sound Control (OSC) Client settings
self.osc_ip = "127.0.0.1" # Replace with the target IP
self.osc_port = 8000 # Replace with the target port
# Start the OSC system
osc_startup()
# Make client channels to send packets
osc_udp_client(self.osc_ip, self.osc_port, "osc_client")
# Load the robot model
self.robot = rtb.ERobot.URDF('BA/robot.urdf')
def joint_states_callback(self, msg):
"""Callback function to handle incoming joint states."""
header = msg.header
joint_names = msg.name
joint_positions = msg.position
# Compute the forward kinematics to get the TCP position
tcp_pos = self.robot.fkine(joint_positions).t
# Prepare the OSC message with the TCP position
msg = oscbuildparse.OSCMessage("/tcp_position", None, tcp_pos.tolist())
osc_send(msg, "osc_client")
osc_process()
print(f"Published TCP position: {tcp_pos}")
def main():
rclpy.init()
node = JointStateOSC()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
finally:
node.destroy_node()
rclpy.shutdown()
osc_terminate()
if __name__ == '__main__':
main()

View File

View File

@ -0,0 +1,2 @@
[0.000000] (-) TimerEvent: {}
[0.000953] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,146 @@
[0.099s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
[0.100s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=<colcon_mixin.mixin.mixin_argument.MixinArgumentDecorator object at 0x7ffffe3b3880>, verb_extension=<colcon_core.verb.build.BuildVerb object at 0x7ffffe2f07c0>, main=<bound method BuildVerb.main of <colcon_core.verb.build.BuildVerb object at 0x7ffffe2f07c0>>, mixin_verb=('build',))
[0.183s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[0.184s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
[0.184s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
[0.184s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[0.184s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[0.184s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[0.184s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[0.185s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[0.185s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/ros_osc'
[0.185s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[0.185s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[0.185s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[0.185s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[0.185s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[0.186s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[0.186s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[0.186s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[0.186s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['cmake', 'python']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'cmake'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'python'
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['python_setup_py']
[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'python_setup_py'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['ignore', 'ignore_ament_install']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ignore'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ignore_ament_install'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['colcon_pkg']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'colcon_pkg'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['colcon_meta']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'colcon_meta'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['ros']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ros'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['cmake', 'python']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'cmake'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'python'
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['python_setup_py']
[0.199s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'python_setup_py'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['cmake', 'python']
[0.200s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'cmake'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'python'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['python_setup_py']
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'python_setup_py'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['ignore', 'ignore_ament_install']
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ignore'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ignore_ament_install'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['colcon_pkg']
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'colcon_pkg'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['colcon_meta']
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'colcon_meta'
[0.201s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['ros']
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ros'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['cmake', 'python']
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'cmake'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'python'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['python_setup_py']
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'python_setup_py'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['ignore', 'ignore_ament_install']
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ignore'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ignore_ament_install'
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['colcon_pkg']
[0.202s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'colcon_pkg'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['colcon_meta']
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'colcon_meta'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['ros']
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ros'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['cmake', 'python']
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'cmake'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'python'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['python_setup_py']
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'python_setup_py'
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['ignore', 'ignore_ament_install']
[0.203s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ignore'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ignore_ament_install'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['colcon_pkg']
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'colcon_pkg'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['colcon_meta']
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'colcon_meta'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['ros']
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ros'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['cmake', 'python']
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'cmake'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'python'
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['python_setup_py']
[0.204s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'python_setup_py'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[0.220s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[0.224s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[0.225s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[0.225s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[0.225s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[0.226s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[0.237s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[0.237s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[0.237s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[0.237s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[0.238s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0.239s] DEBUG:colcon.colcon_core.event_reactor:joined thread
[0.242s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
[0.242s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/ros_osc/install/local_setup.ps1'
[0.244s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/ros_osc/install/_local_setup_util_ps1.py'
[0.245s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/ros_osc/install/setup.ps1'
[0.247s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/ros_osc/install/local_setup.sh'
[0.248s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/ros_osc/install/_local_setup_util_sh.py'
[0.248s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/ros_osc/install/setup.sh'
[0.249s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/ros_osc/install/local_setup.bash'
[0.250s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/ros_osc/install/setup.bash'
[0.251s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/ros_osc/install/local_setup.zsh'
[0.251s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/ros_osc/install/setup.zsh'

1
ros_osc/log/latest Symbolic link
View File

@ -0,0 +1 @@
latest_test

1
ros_osc/log/latest_build Symbolic link
View File

@ -0,0 +1 @@
build_2025-03-14_09-46-22

1
ros_osc/log/latest_test Symbolic link
View File

@ -0,0 +1 @@
test_2025-03-14_09-46-33

View File

@ -0,0 +1,2 @@
[0.000000] (-) TimerEvent: {}
[0.000901] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,135 @@
[0.137s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'test']
[0.138s] 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=8, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, ctest_args=None, python_testing=None, pytest_args=None, pytest_with_coverage=False, unittest_args=None, mixin_files=None, mixin=None, verb_parser=<colcon_mixin.mixin.mixin_argument.MixinArgumentDecorator object at 0x7ffffe1f0940>, verb_extension=<colcon_core.verb.test.TestVerb object at 0x7ffffe2f0790>, main=<bound method TestVerb.main of <colcon_core.verb.test.TestVerb object at 0x7ffffe2f0790>>, mixin_verb=('test',))
[0.204s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[0.204s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
[0.204s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[0.205s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[0.205s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/ros_osc'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ignore', 'ignore_ament_install']
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore'
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ignore_ament_install'
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_pkg']
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_pkg'
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['colcon_meta']
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'colcon_meta'
[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['ros']
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'ros'
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['cmake', 'python']
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'cmake'
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'python'
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extensions ['python_setup_py']
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control) by extension 'python_setup_py'
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['ignore', 'ignore_ament_install']
[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ignore'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ignore_ament_install'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['colcon_pkg']
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'colcon_pkg'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['colcon_meta']
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'colcon_meta'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['ros']
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'ros'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['cmake', 'python']
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'cmake'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'python'
[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extensions ['python_setup_py']
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_control/__pycache__) by extension 'python_setup_py'
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ignore', 'ignore_ament_install']
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore'
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ignore_ament_install'
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_pkg']
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_pkg'
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['colcon_meta']
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'colcon_meta'
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['ros']
[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'ros'
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['cmake', 'python']
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'cmake'
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'python'
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extensions ['python_setup_py']
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info) by extension 'python_setup_py'
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['ignore', 'ignore_ament_install']
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ignore'
[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ignore_ament_install'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['colcon_pkg']
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'colcon_pkg'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['colcon_meta']
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'colcon_meta'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['ros']
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'ros'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['cmake', 'python']
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'cmake'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'python'
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extensions ['python_setup_py']
[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/osc4py3) by extension 'python_setup_py'
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['ignore', 'ignore_ament_install']
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ignore'
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ignore_ament_install'
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['colcon_pkg']
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'colcon_pkg'
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['colcon_meta']
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'colcon_meta'
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['ros']
[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'ros'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['cmake', 'python']
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'cmake'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'python'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extensions ['python_setup_py']
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc) by extension 'python_setup_py'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['ignore', 'ignore_ament_install']
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ignore'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ignore_ament_install'
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['colcon_pkg']
[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'colcon_pkg'
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['colcon_meta']
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'colcon_meta'
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['ros']
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'ros'
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['cmake', 'python']
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'cmake'
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'python'
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extensions ['python_setup_py']
[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(joint_info/pythonosc/bundles) by extension 'python_setup_py'
[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[0.224s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[0.226s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[0.228s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[0.229s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[0.229s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[0.229s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[0.230s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[0.234s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[0.234s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[0.234s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[0.234s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[0.236s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0.236s] DEBUG:colcon.colcon_core.event_reactor:joined thread

View File

@ -0,0 +1 @@
colcon

View File

View File

@ -0,0 +1,102 @@
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import JointState
from osc4py3.as_eventloop import *
from osc4py3 import oscbuildparse
class JointStateOSC(Node):
def __init__(self):
super().__init__('joint_states_osc')
# Create a ROS 2 subscriber to /joint_states topic
self.subscription = self.create_subscription(
JointState,
'/joint_states',
self.joint_states_callback,
1 # Queue size
)
# Open Sound Control (OSC) Client settings
self.osc_ip = "127.0.0.1" # Replace with the target IP
self.osc_port = 8000 # Replace with the target port
# Start the OSC system
osc_startup()
# Make client channels to send packets
osc_udp_client(self.osc_ip, self.osc_port, "osc_client")
def joint_states_callback(self, msg):
"""Callback function to handle incoming joint states."""
header = msg.header
joint_names = msg.name
joint_positions = msg.position
joint_velocity = msg.velocity
joint_effort = msg.effort
joint_names_str = "\n- ".join(joint_names)
joint_positions_str = "\n- ".join(map(str, joint_positions))
joint_velocity_str = "\n- ".join(map(str, joint_velocity))
joint_effort_str = "\n- ".join(map(str, joint_effort))
info = f"""
---
header:
stamp:
sec: {header.stamp.sec}
nanosec: {header.stamp.nanosec}
name:
- {joint_names_str}
position:
- {joint_positions_str}
velocity:
- {joint_velocity_str}
effort:
- {joint_effort_str}
---"""
# Send the info message
msg_info = oscbuildparse.OSCMessage("/joint_states", None, info)
msg_name = oscbuildparse.OSCMessage("/joint_states/name", None, type(joint_names))
msg_position = oscbuildparse.OSCMessage("/joint_states/position", None, type(joint_positions))
msg_velocity = oscbuildparse.OSCMessage("/joint_states/velocity", None, type(joint_velocity))
msg_effort = oscbuildparse.OSCMessage("/joint_states/effort", None, type(joint_effort))
bun = oscbuildparse.OSCBundle(oscbuildparse.OSC_IMMEDIATELY, [msg_info, msg_name, msg_position, msg_velocity, msg_effort])
osc_send(bun, "osc_client")
osc_process()
#print(f"Publishing: {info}")
'''
# Send each joint state as an OSC message
for i, name in enumerate(joint_names):
#msg_sec = oscbuildparse.OSCMessage(f"/joint_states/header/sec", None, [header.stamp.sec])
#msg_nanosec = oscbuildparse.OSCMessage(f"/joint_states/header/nanosec", None, [header.stamp.nanosec])
msg_position = oscbuildparse.OSCMessage(f"/joint_states/{name}/position", None, [joint_positions[i]])
msg_velocity = oscbuildparse.OSCMessage(f"/joint_states/{name}/velocity", None, [joint_velocity[i]])
msg_effort = oscbuildparse.OSCMessage(f"/joint_states/{name}/effort", None, [joint_effort[i]])
bun = oscbuildparse.OSCBundle(oscbuildparse.unixtime2timetag(header.stamp.sec + header.stamp.nanosec), [msg_position, msg_velocity, msg_effort])
#bun = oscbuildparse.OSCBundle(oscbuildparse.OSC_IMMEDIATELY , [msg_position, msg_velocity, msg_effort])
osc_send(bun, "osc_client")
osc_process()
#print(f"OSC bundle sent for joint {name}")
'''
def main():
rclpy.init()
node = JointStateOSC()
print(f"Publishing joint states to OSC on {node.osc_ip}:{node.osc_port}...")
try:
rclpy.spin(node)
except KeyboardInterrupt:
print("shutting down...")
finally:
node.destroy_node()
rclpy.shutdown()
osc_terminate()
if __name__ == '__main__':
main()

View File

@ -0,0 +1,39 @@
from osc4py3.as_eventloop import *
from osc4py3 import oscmethod as osm
import time
def joint_states_handler(*args):
"""Handler function to process incoming joint states."""
for arg in args:
print(arg)
def main():
ip = "0.0.0.0" # IP address to listen on
port = 8000 # Port to listen on
# Start the OSC system
osc_startup()
# Make server channels to receive packets
osc_udp_server(ip, port, "osc_server")
# Associate Python functions with message address patterns
osc_method("/joint_states", joint_states_handler, argscheme=osm.OSCARG_DATAUNPACK)
print(f"Listening for OSC messages on {ip}:{port}...")
try:
# Run the event loop
while True:
osc_process() # Process OSC messages
time.sleep(0.01) # Sleep to avoid high CPU usage
except KeyboardInterrupt:
print("")
finally:
# Properly close the system
osc_terminate()
if __name__ == "__main__":
main()

View File

@ -0,0 +1 @@
0

View File

@ -0,0 +1 @@
# generated from colcon_core/shell/template/command_prefix.sh.em

View File

@ -0,0 +1,21 @@
AMENT_PREFIX_PATH=/BA/workspace/install/joint_info:/opt/ros/humble
COLCON=1
COLCON_PREFIX_PATH=/BA/workspace/install:/BA/ros_osc/install
HOME=/root
HOSTNAME=3230bc57d699
LANG=C.UTF-8
LC_ALL=C.UTF-8
LD_LIBRARY_PATH=/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
OLDPWD=/BA/workspace/src
PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/BA/workspace/build/joint_info
PYTHONPATH=/BA/workspace/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
ROS_DISTRO=humble
ROS_LOCALHOST_ONLY=0
ROS_PYTHON_VERSION=3
ROS_VERSION=2
SHLVL=1
TERM=xterm
_=/usr/bin/colcon
_colcon_cd_root=/opt/ros/foxy/

View File

@ -0,0 +1 @@
/BA/workspace/src/joint_info/joint_info

View File

@ -0,0 +1,12 @@
Metadata-Version: 2.1
Name: joint-info
Version: 0.0.0
Summary: TODO: Package description
Home-page: UNKNOWN
Maintainer: root
Maintainer-email: root@todo.todo
License: TODO: License declaration
Platform: UNKNOWN
UNKNOWN

View File

@ -0,0 +1,21 @@
package.xml
setup.cfg
setup.py
../../build/joint_info/joint_info.egg-info/PKG-INFO
../../build/joint_info/joint_info.egg-info/SOURCES.txt
../../build/joint_info/joint_info.egg-info/dependency_links.txt
../../build/joint_info/joint_info.egg-info/entry_points.txt
../../build/joint_info/joint_info.egg-info/requires.txt
../../build/joint_info/joint_info.egg-info/top_level.txt
../../build/joint_info/joint_info.egg-info/zip-safe
joint_info/__init__.py
joint_info/osc_joint_states_pub.py
joint_info/osc_joint_states_sub.py
joint_info.egg-info/PKG-INFO
joint_info.egg-info/SOURCES.txt
joint_info.egg-info/dependency_links.txt
joint_info.egg-info/entry_points.txt
joint_info.egg-info/requires.txt
joint_info.egg-info/top_level.txt
joint_info.egg-info/zip-safe
resource/joint_info

View File

@ -0,0 +1,4 @@
[console_scripts]
joint_states_pub = joint_info.osc_joint_states_pub:main
joint_states_sub = joint_info.osc_joint_states_sub:main

View File

@ -0,0 +1 @@
setuptoolsosc4py3

View File

@ -0,0 +1 @@
joint_info

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
/BA/workspace/src/joint_info/package.xml

View File

@ -0,0 +1,4 @@
import sys
if sys.prefix == '/usr':
sys.real_prefix = sys.prefix
sys.prefix = sys.exec_prefix = '/BA/workspace/install/joint_info'

View File

@ -0,0 +1 @@
/BA/workspace/src/joint_info/resource/joint_info

View File

@ -0,0 +1 @@
/BA/workspace/src/joint_info/setup.cfg

View File

@ -0,0 +1 @@
/BA/workspace/src/joint_info/setup.py

View File

@ -0,0 +1 @@
prepend-non-duplicate;PYTHONPATH;/BA/workspace/build/joint_info

View File

@ -0,0 +1,3 @@
# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em
colcon_prepend_unique_value PYTHONPATH "$env:COLCON_CURRENT_PREFIX\/BA/workspace/build/joint_info"

View File

@ -0,0 +1,3 @@
# generated from colcon_core/shell/template/hook_prepend_value.sh.em
_colcon_prepend_unique_value PYTHONPATH "/BA/workspace/build/joint_info"

View File

@ -0,0 +1 @@
isolated

View File

View File

@ -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)

View File

@ -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)

View File

@ -0,0 +1,33 @@
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info==0.0.0','console_scripts','joint_info'
import re
import sys
# for compatibility with easy_install; see #2198
__requires__ = 'joint-info==0.0.0'
try:
from importlib.metadata import distribution
except ImportError:
try:
from importlib_metadata import distribution
except ImportError:
from pkg_resources import load_entry_point
def importlib_load_entry_point(spec, group, name):
dist_name, _, _ = spec.partition('==')
matches = (
entry_point
for entry_point in distribution(dist_name).entry_points
if entry_point.group == group and entry_point.name == name
)
return next(matches).load()
globals().setdefault('load_entry_point', importlib_load_entry_point)
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(load_entry_point('joint-info==0.0.0', 'console_scripts', 'joint_info')())

View File

@ -0,0 +1,33 @@
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','joint_states_pub'
import re
import sys
# for compatibility with easy_install; see #2198
__requires__ = 'joint-info'
try:
from importlib.metadata import distribution
except ImportError:
try:
from importlib_metadata import distribution
except ImportError:
from pkg_resources import load_entry_point
def importlib_load_entry_point(spec, group, name):
dist_name, _, _ = spec.partition('==')
matches = (
entry_point
for entry_point in distribution(dist_name).entry_points
if entry_point.group == group and entry_point.name == name
)
return next(matches).load()
globals().setdefault('load_entry_point', importlib_load_entry_point)
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(load_entry_point('joint-info', 'console_scripts', 'joint_states_pub')())

View File

@ -0,0 +1,33 @@
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'joint-info','console_scripts','joint_states_sub'
import re
import sys
# for compatibility with easy_install; see #2198
__requires__ = 'joint-info'
try:
from importlib.metadata import distribution
except ImportError:
try:
from importlib_metadata import distribution
except ImportError:
from pkg_resources import load_entry_point
def importlib_load_entry_point(spec, group, name):
dist_name, _, _ = spec.partition('==')
matches = (
entry_point
for entry_point in distribution(dist_name).entry_points
if entry_point.group == group and entry_point.name == name
)
return next(matches).load()
globals().setdefault('load_entry_point', importlib_load_entry_point)
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(load_entry_point('joint-info', 'console_scripts', 'joint_states_sub')())

View File

@ -0,0 +1,2 @@
/BA/workspace/build/joint_info
.

View File

@ -0,0 +1 @@
/BA/workspace/build/joint_info/resource/joint_info

View File

@ -0,0 +1 @@
osc4py3:rclpy:sensor_msgs

View File

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

View File

@ -0,0 +1,3 @@
# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em
colcon_prepend_unique_value AMENT_PREFIX_PATH "$env:COLCON_CURRENT_PREFIX"

View File

@ -0,0 +1,3 @@
# generated from colcon_core/shell/template/hook_prepend_value.sh.em
_colcon_prepend_unique_value AMENT_PREFIX_PATH "$COLCON_CURRENT_PREFIX"

View File

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

View File

@ -0,0 +1,3 @@
# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em
colcon_prepend_unique_value PYTHONPATH "$env:COLCON_CURRENT_PREFIX\lib/python3.10/site-packages"

View File

@ -0,0 +1,3 @@
# generated from colcon_core/shell/template/hook_prepend_value.sh.em
_colcon_prepend_unique_value PYTHONPATH "$COLCON_CURRENT_PREFIX/lib/python3.10/site-packages"

View File

@ -0,0 +1,31 @@
# generated from colcon_bash/shell/template/package.bash.em
# This script extends the environment for this package.
# a bash script is able to determine its own path if necessary
if [ -z "$COLCON_CURRENT_PREFIX" ]; then
# the prefix is two levels up from the package specific share directory
_colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)"
else
_colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX"
fi
# function to source another script with conditional trace output
# first argument: the path of the script
# additional arguments: arguments to the script
_colcon_package_bash_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$@"
else
echo "not found: \"$1\"" 1>&2
fi
}
# source sh script of this package
_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/joint_info/package.sh"
unset _colcon_package_bash_source_script
unset _colcon_package_bash_COLCON_CURRENT_PREFIX

View File

@ -0,0 +1,9 @@
source;share/joint_info/hook/pythonpath.ps1
source;share/joint_info/hook/pythonpath.dsv
source;share/joint_info/hook/pythonpath.sh
source;share/joint_info/hook/ament_prefix_path.ps1
source;share/joint_info/hook/ament_prefix_path.dsv
source;share/joint_info/hook/ament_prefix_path.sh
source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.ps1
source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.dsv
source;../../build/joint_info/share/joint_info/hook/pythonpath_develop.sh

View File

@ -0,0 +1,117 @@
# generated from colcon_powershell/shell/template/package.ps1.em
# function to append a value to a variable
# which uses colons as separators
# duplicates as well as leading separators are avoided
# first argument: the name of the result variable
# second argument: the value to be prepended
function colcon_append_unique_value {
param (
$_listname,
$_value
)
# get values from variable
if (Test-Path Env:$_listname) {
$_values=(Get-Item env:$_listname).Value
} else {
$_values=""
}
$_duplicate=""
# start with no values
$_all_values=""
# iterate over existing values in the variable
if ($_values) {
$_values.Split(";") | ForEach {
# not an empty string
if ($_) {
# not a duplicate of _value
if ($_ -eq $_value) {
$_duplicate="1"
}
if ($_all_values) {
$_all_values="${_all_values};$_"
} else {
$_all_values="$_"
}
}
}
}
# append only non-duplicates
if (!$_duplicate) {
# avoid leading separator
if ($_all_values) {
$_all_values="${_all_values};${_value}"
} else {
$_all_values="${_value}"
}
}
# export the updated variable
Set-Item env:\$_listname -Value "$_all_values"
}
# function to prepend a value to a variable
# which uses colons as separators
# duplicates as well as trailing separators are avoided
# first argument: the name of the result variable
# second argument: the value to be prepended
function colcon_prepend_unique_value {
param (
$_listname,
$_value
)
# get values from variable
if (Test-Path Env:$_listname) {
$_values=(Get-Item env:$_listname).Value
} else {
$_values=""
}
# start with the new value
$_all_values="$_value"
# iterate over existing values in the variable
if ($_values) {
$_values.Split(";") | ForEach {
# not an empty string
if ($_) {
# not a duplicate of _value
if ($_ -ne $_value) {
# keep non-duplicate values
$_all_values="${_all_values};$_"
}
}
}
}
# export the updated variable
Set-Item env:\$_listname -Value "$_all_values"
}
# function to source another script with conditional trace output
# first argument: the path of the script
# additional arguments: arguments to the script
function colcon_package_source_powershell_script {
param (
$_colcon_package_source_powershell_script
)
# source script with conditional trace output
if (Test-Path $_colcon_package_source_powershell_script) {
if ($env:COLCON_TRACE) {
echo ". '$_colcon_package_source_powershell_script'"
}
. "$_colcon_package_source_powershell_script"
} else {
Write-Error "not found: '$_colcon_package_source_powershell_script'"
}
}
# a powershell script is able to determine its own path
# the prefix is two levels up from the package specific share directory
$env:COLCON_CURRENT_PREFIX=(Get-Item $PSCommandPath).Directory.Parent.Parent.FullName
colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/joint_info/hook/pythonpath.ps1"
colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/joint_info/hook/ament_prefix_path.ps1"
colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\../../build/joint_info/share/joint_info/hook/pythonpath_develop.ps1"
Remove-Item Env:\COLCON_CURRENT_PREFIX

View File

@ -0,0 +1,88 @@
# generated from colcon_core/shell/template/package.sh.em
# This script extends the environment for this package.
# function to prepend a value to a variable
# which uses colons as separators
# duplicates as well as trailing separators are avoided
# first argument: the name of the result variable
# second argument: the value to be prepended
_colcon_prepend_unique_value() {
# arguments
_listname="$1"
_value="$2"
# get values from variable
eval _values=\"\$$_listname\"
# backup the field separator
_colcon_prepend_unique_value_IFS=$IFS
IFS=":"
# start with the new value
_all_values="$_value"
# workaround SH_WORD_SPLIT not being set in zsh
if [ "$(command -v colcon_zsh_convert_to_array)" ]; then
colcon_zsh_convert_to_array _values
fi
# iterate over existing values in the variable
for _item in $_values; do
# ignore empty strings
if [ -z "$_item" ]; then
continue
fi
# ignore duplicates of _value
if [ "$_item" = "$_value" ]; then
continue
fi
# keep non-duplicate values
_all_values="$_all_values:$_item"
done
unset _item
# restore the field separator
IFS=$_colcon_prepend_unique_value_IFS
unset _colcon_prepend_unique_value_IFS
# export the updated variable
eval export $_listname=\"$_all_values\"
unset _all_values
unset _values
unset _value
unset _listname
}
# since a plain shell script can't determine its own path when being sourced
# either use the provided COLCON_CURRENT_PREFIX
# or fall back to the build time prefix (if it exists)
_colcon_package_sh_COLCON_CURRENT_PREFIX="/BA/workspace/install/joint_info"
if [ -z "$COLCON_CURRENT_PREFIX" ]; then
if [ ! -d "$_colcon_package_sh_COLCON_CURRENT_PREFIX" ]; then
echo "The build time path \"$_colcon_package_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2
unset _colcon_package_sh_COLCON_CURRENT_PREFIX
return 1
fi
COLCON_CURRENT_PREFIX="$_colcon_package_sh_COLCON_CURRENT_PREFIX"
fi
unset _colcon_package_sh_COLCON_CURRENT_PREFIX
# function to source another script with conditional trace output
# first argument: the path of the script
# additional arguments: arguments to the script
_colcon_package_sh_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$@"
else
echo "not found: \"$1\"" 1>&2
fi
}
# source sh hooks
_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/joint_info/hook/pythonpath.sh"
_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/joint_info/hook/ament_prefix_path.sh"
_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/../../build/joint_info/share/joint_info/hook/pythonpath_develop.sh"
unset _colcon_package_sh_source_script
unset COLCON_CURRENT_PREFIX
# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks

View File

@ -0,0 +1 @@
/BA/workspace/build/joint_info/package.xml

View File

@ -0,0 +1,42 @@
# generated from colcon_zsh/shell/template/package.zsh.em
# This script extends the environment for this package.
# a zsh script is able to determine its own path if necessary
if [ -z "$COLCON_CURRENT_PREFIX" ]; then
# the prefix is two levels up from the package specific share directory
_colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)"
else
_colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX"
fi
# function to source another script with conditional trace output
# first argument: the path of the script
# additional arguments: arguments to the script
_colcon_package_zsh_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$@"
else
echo "not found: \"$1\"" 1>&2
fi
}
# function to convert array-like strings into arrays
# to workaround SH_WORD_SPLIT not being set
colcon_zsh_convert_to_array() {
local _listname=$1
local _dollar="$"
local _split="{="
local _to_array="(\"$_dollar$_split$_listname}\")"
eval $_listname=$_to_array
}
# source sh script of this package
_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/joint_info/package.sh"
unset convert_zsh_to_array
unset _colcon_package_zsh_source_script
unset _colcon_package_zsh_COLCON_CURRENT_PREFIX

View File

@ -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

View File

@ -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
}

View File

@ -0,0 +1,137 @@
# generated from colcon_core/shell/template/prefix.sh.em
# This script extends the environment with all packages contained in this
# prefix path.
# since a plain shell script can't determine its own path when being sourced
# either use the provided COLCON_CURRENT_PREFIX
# or fall back to the build time prefix (if it exists)
_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/BA/workspace/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

View File

@ -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

View File

@ -0,0 +1,34 @@
# generated from colcon_bash/shell/template/prefix_chain.bash.em
# This script extends the environment with the environment of other prefix
# paths which were sourced when this file was generated as well as all packages
# contained in this prefix path.
# function to source another script with conditional trace output
# first argument: the path of the script
_colcon_prefix_chain_bash_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$1"
else
echo "not found: \"$1\"" 1>&2
fi
}
# source chained prefixes
# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
COLCON_CURRENT_PREFIX="/opt/ros/humble"
_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash"
# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
COLCON_CURRENT_PREFIX="/BA/ros_osc/install"
_colcon_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

View File

@ -0,0 +1,30 @@
# generated from colcon_powershell/shell/template/prefix_chain.ps1.em
# This script extends the environment with the environment of other prefix
# paths which were sourced when this file was generated as well as all packages
# contained in this prefix path.
# function to source another script with conditional trace output
# first argument: the path of the script
function _colcon_prefix_chain_powershell_source_script {
param (
$_colcon_prefix_chain_powershell_source_script_param
)
# source script with conditional trace output
if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) {
if ($env:COLCON_TRACE) {
echo ". '$_colcon_prefix_chain_powershell_source_script_param'"
}
. "$_colcon_prefix_chain_powershell_source_script_param"
} else {
Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'"
}
}
# source chained prefixes
_colcon_prefix_chain_powershell_source_script "/opt/ros/humble\local_setup.ps1"
_colcon_prefix_chain_powershell_source_script "/BA/ros_osc/install\local_setup.ps1"
# source this prefix
$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent)
_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1"

View File

@ -0,0 +1,49 @@
# generated from colcon_core/shell/template/prefix_chain.sh.em
# This script extends the environment with the environment of other prefix
# paths which were sourced when this file was generated as well as all packages
# contained in this prefix path.
# since a plain shell script can't determine its own path when being sourced
# either use the provided COLCON_CURRENT_PREFIX
# or fall back to the build time prefix (if it exists)
_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/BA/workspace/install
if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then
_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX"
elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then
echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2
unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX
return 1
fi
# function to source another script with conditional trace output
# first argument: the path of the script
_colcon_prefix_chain_sh_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$1"
else
echo "not found: \"$1\"" 1>&2
fi
}
# source chained prefixes
# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script
COLCON_CURRENT_PREFIX="/opt/ros/humble"
_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh"
# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script
COLCON_CURRENT_PREFIX="/BA/ros_osc/install"
_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh"
# source this prefix
# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script
COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX"
_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh"
unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX
unset _colcon_prefix_chain_sh_source_script
unset COLCON_CURRENT_PREFIX

View File

@ -0,0 +1,34 @@
# generated from colcon_zsh/shell/template/prefix_chain.zsh.em
# This script extends the environment with the environment of other prefix
# paths which were sourced when this file was generated as well as all packages
# contained in this prefix path.
# function to source another script with conditional trace output
# first argument: the path of the script
_colcon_prefix_chain_zsh_source_script() {
if [ -f "$1" ]; then
if [ -n "$COLCON_TRACE" ]; then
echo "# . \"$1\""
fi
. "$1"
else
echo "not found: \"$1\"" 1>&2
fi
}
# source chained prefixes
# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
COLCON_CURRENT_PREFIX="/opt/ros/humble"
_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh"
# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script
COLCON_CURRENT_PREFIX="/BA/ros_osc/install"
_colcon_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

View File

View File

@ -0,0 +1,2 @@
[0.000000] (-) TimerEvent: {}
[0.000927] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,76 @@
[0.143s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--symlink-install']
[0.143s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=True, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=<colcon_mixin.mixin.mixin_argument.MixinArgumentDecorator object at 0x7ffffe20c8e0>, verb_extension=<colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>, main=<bound method BuildVerb.main of <colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>>, mixin_verb=('build',))
[0.266s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[0.266s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
[0.267s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
[0.267s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[0.267s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[0.267s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[0.267s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[0.267s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[0.267s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace'
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ignore', 'ignore_ament_install']
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore'
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore_ament_install'
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_pkg']
[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_pkg'
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_meta']
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_meta'
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ros']
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ros'
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['cmake', 'python']
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'cmake'
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python'
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['python_setup_py']
[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python_setup_py'
[0.280s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[0.280s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[0.281s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[0.281s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[0.281s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[0.294s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[0.297s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[0.298s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[0.298s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[0.298s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[0.299s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[0.304s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[0.304s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[0.304s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[0.304s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[0.305s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0.305s] DEBUG:colcon.colcon_core.event_reactor:joined thread
[0.307s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
[0.307s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.ps1'
[0.309s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_ps1.py'
[0.310s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.ps1'
[0.312s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.sh'
[0.312s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_sh.py'
[0.313s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.sh'
[0.314s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.bash'
[0.314s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.bash'
[0.315s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.zsh'
[0.316s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.zsh'

View File

@ -0,0 +1,47 @@
[0.000000] (-) TimerEvent: {}
[0.000744] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
[0.000918] (joint_info) JobStarted: {'identifier': 'joint_info'}
[0.098064] (-) TimerEvent: {}
[0.200074] (-) TimerEvent: {}
[0.304023] (-) TimerEvent: {}
[0.406070] (-) TimerEvent: {}
[0.508277] (-) TimerEvent: {}
[0.612222] (-) TimerEvent: {}
[0.642018] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/joint_info', 'build', '--build-base', '/BA/workspace/build/joint_info/build', 'install', '--record', '/BA/workspace/build/joint_info/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/BA/workspace/src/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src', 'ROS_PYTHON_VERSION': '3', 'COLCON_PREFIX_PATH': '/BA/ros_osc/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
[0.713036] (-) TimerEvent: {}
[0.814151] (-) TimerEvent: {}
[0.869137] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
[0.870146] (joint_info) StdoutLine: {'line': b'creating ../../build/joint_info/joint_info.egg-info\n'}
[0.870675] (joint_info) StdoutLine: {'line': b'writing ../../build/joint_info/joint_info.egg-info/PKG-INFO\n'}
[0.872057] (joint_info) StdoutLine: {'line': b'writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt\n'}
[0.872847] (joint_info) StdoutLine: {'line': b'writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt\n'}
[0.874106] (joint_info) StdoutLine: {'line': b'writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt\n'}
[0.874672] (joint_info) StdoutLine: {'line': b'writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt\n'}
[0.875334] (joint_info) StdoutLine: {'line': b"writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.878065] (joint_info) StdoutLine: {'line': b"reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.879356] (joint_info) StdoutLine: {'line': b"writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.879863] (joint_info) StdoutLine: {'line': b'running build\n'}
[0.880343] (joint_info) StdoutLine: {'line': b'running build_py\n'}
[0.880894] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/build/joint_info/build\n'}
[0.881607] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/build/joint_info/build/lib\n'}
[0.881983] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/build/joint_info/build/lib/joint_info\n'}
[0.882403] (joint_info) StdoutLine: {'line': b'copying joint_info/__init__.py -> /BA/workspace/build/joint_info/build/lib/joint_info\n'}
[0.883682] (joint_info) StdoutLine: {'line': b'running install\n'}
[0.883927] (joint_info) StdoutLine: {'line': b'running install_lib\n'}
[0.884397] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info\n'}
[0.884763] (joint_info) StdoutLine: {'line': b'copying /BA/workspace/build/joint_info/build/lib/joint_info/__init__.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info\n'}
[0.886245] (joint_info) StdoutLine: {'line': b'byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/__init__.py to __init__.cpython-310.pyc\n'}
[0.887806] (joint_info) StdoutLine: {'line': b'running install_data\n'}
[0.888257] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/install/joint_info/share/ament_index\n'}
[0.889041] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/install/joint_info/share/ament_index/resource_index\n'}
[0.889367] (joint_info) StdoutLine: {'line': b'creating /BA/workspace/install/joint_info/share/ament_index/resource_index/packages\n'}
[0.889748] (joint_info) StdoutLine: {'line': b'copying resource/joint_info -> /BA/workspace/install/joint_info/share/ament_index/resource_index/packages\n'}
[0.890763] (joint_info) StdoutLine: {'line': b'copying package.xml -> /BA/workspace/install/joint_info/share/joint_info\n'}
[0.892362] (joint_info) StdoutLine: {'line': b'running install_egg_info\n'}
[0.894267] (joint_info) StdoutLine: {'line': b'Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info\n'}
[0.902313] (joint_info) StdoutLine: {'line': b'running install_scripts\n'}
[0.915056] (-) TimerEvent: {}
[0.927347] (joint_info) StdoutLine: {'line': b"writing list of installed files to '/BA/workspace/build/joint_info/install.log'\n"}
[0.949468] (joint_info) CommandEnded: {'returncode': 0}
[0.968775] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
[0.971416] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,2 @@
Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data

View File

@ -0,0 +1,31 @@
running egg_info
creating ../../build/joint_info/joint_info.egg-info
writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
running build
running build_py
creating /BA/workspace/build/joint_info/build
creating /BA/workspace/build/joint_info/build/lib
creating /BA/workspace/build/joint_info/build/lib/joint_info
copying joint_info/__init__.py -> /BA/workspace/build/joint_info/build/lib/joint_info
running install
running install_lib
creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
copying /BA/workspace/build/joint_info/build/lib/joint_info/__init__.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/__init__.py to __init__.cpython-310.pyc
running install_data
creating /BA/workspace/install/joint_info/share/ament_index
creating /BA/workspace/install/joint_info/share/ament_index/resource_index
creating /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
copying resource/joint_info -> /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
copying package.xml -> /BA/workspace/install/joint_info/share/joint_info
running install_egg_info
Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
running install_scripts
writing list of installed files to '/BA/workspace/build/joint_info/install.log'

View File

@ -0,0 +1,31 @@
running egg_info
creating ../../build/joint_info/joint_info.egg-info
writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
running build
running build_py
creating /BA/workspace/build/joint_info/build
creating /BA/workspace/build/joint_info/build/lib
creating /BA/workspace/build/joint_info/build/lib/joint_info
copying joint_info/__init__.py -> /BA/workspace/build/joint_info/build/lib/joint_info
running install
running install_lib
creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
copying /BA/workspace/build/joint_info/build/lib/joint_info/__init__.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/__init__.py to __init__.cpython-310.pyc
running install_data
creating /BA/workspace/install/joint_info/share/ament_index
creating /BA/workspace/install/joint_info/share/ament_index/resource_index
creating /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
copying resource/joint_info -> /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
copying package.xml -> /BA/workspace/install/joint_info/share/joint_info
running install_egg_info
Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
running install_scripts
writing list of installed files to '/BA/workspace/build/joint_info/install.log'

View File

@ -0,0 +1,33 @@
[0.646s] Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[0.869s] running egg_info
[0.870s] creating ../../build/joint_info/joint_info.egg-info
[0.870s] writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
[0.871s] writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
[0.872s] writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
[0.873s] writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
[0.874s] writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
[0.875s] writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
[0.877s] reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
[0.879s] writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
[0.879s] running build
[0.880s] running build_py
[0.880s] creating /BA/workspace/build/joint_info/build
[0.881s] creating /BA/workspace/build/joint_info/build/lib
[0.881s] creating /BA/workspace/build/joint_info/build/lib/joint_info
[0.882s] copying joint_info/__init__.py -> /BA/workspace/build/joint_info/build/lib/joint_info
[0.883s] running install
[0.883s] running install_lib
[0.884s] creating /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
[0.884s] copying /BA/workspace/build/joint_info/build/lib/joint_info/__init__.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
[0.886s] byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/__init__.py to __init__.cpython-310.pyc
[0.887s] running install_data
[0.888s] creating /BA/workspace/install/joint_info/share/ament_index
[0.888s] creating /BA/workspace/install/joint_info/share/ament_index/resource_index
[0.889s] creating /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
[0.889s] copying resource/joint_info -> /BA/workspace/install/joint_info/share/ament_index/resource_index/packages
[0.890s] copying package.xml -> /BA/workspace/install/joint_info/share/joint_info
[0.893s] running install_egg_info
[0.893s] Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
[0.903s] running install_scripts
[0.927s] writing list of installed files to '/BA/workspace/build/joint_info/install.log'
[0.949s] Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data

View File

@ -0,0 +1,126 @@
[0.086s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build']
[0.087s] 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=8, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=<colcon_mixin.mixin.mixin_argument.MixinArgumentDecorator object at 0x7ffffe20c8e0>, verb_extension=<colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>, main=<bound method BuildVerb.main of <colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>>, mixin_verb=('build',))
[0.176s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[0.177s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
[0.177s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
[0.177s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[0.178s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[0.178s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[0.178s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[0.178s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[0.178s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace'
[0.178s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[0.178s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[0.179s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[0.188s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[0.189s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ignore', 'ignore_ament_install']
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore'
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore_ament_install'
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_pkg']
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_pkg'
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_meta']
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_meta'
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ros']
[0.190s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ros'
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['cmake', 'python']
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'cmake'
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python'
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['python_setup_py']
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python_setup_py'
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ignore', 'ignore_ament_install']
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore'
[0.191s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore_ament_install'
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_pkg']
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_pkg'
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_meta']
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_meta'
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ros']
[0.192s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ros'
[0.198s] DEBUG:colcon.colcon_core.package_identification:Package 'src/joint_info' with type 'ros.ament_python' and name 'joint_info'
[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[0.199s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
[0.213s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
[0.214s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
[0.214s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
[0.214s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
[0.214s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/build/joint_info', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/BA/workspace/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': False, 'test_result_base': None}
[0.214s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[0.217s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[0.217s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
[0.218s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
[0.219s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
[0.219s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
[0.221s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
[0.222s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
[0.223s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[0.223s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[0.476s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
[0.476s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[0.477s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[0.866s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[1.168s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[1.173s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake module files
[1.174s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake config files
[1.176s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib'
[1.177s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
[1.177s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/pkgconfig/joint_info.pc'
[1.177s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/python3.10/site-packages'
[1.177s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
[1.177s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.ps1'
[1.178s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.dsv'
[1.179s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.sh'
[1.179s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
[1.180s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
[1.180s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.ps1'
[1.181s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/install/joint_info/share/joint_info/package.dsv'
[1.182s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.sh'
[1.183s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.bash'
[1.185s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.zsh'
[1.186s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/install/joint_info/share/colcon-core/packages/joint_info)
[1.187s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[1.188s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[1.188s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[1.188s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[1.203s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[1.204s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[1.204s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[1.204s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[1.206s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[1.207s] DEBUG:colcon.colcon_core.event_reactor:joined thread
[1.207s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.ps1'
[1.208s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_ps1.py'
[1.210s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.ps1'
[1.211s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.sh'
[1.212s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_sh.py'
[1.212s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.sh'
[1.213s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.bash'
[1.214s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.bash'
[1.215s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.zsh'
[1.215s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.zsh'

View File

@ -0,0 +1,37 @@
[0.000000] (-) TimerEvent: {}
[0.001646] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
[0.001987] (joint_info) JobStarted: {'identifier': 'joint_info'}
[0.098936] (-) TimerEvent: {}
[0.200923] (-) TimerEvent: {}
[0.302892] (-) TimerEvent: {}
[0.405029] (-) TimerEvent: {}
[0.506942] (-) TimerEvent: {}
[0.596080] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/joint_info', 'build', '--build-base', '/BA/workspace/build/joint_info/build', 'install', '--record', '/BA/workspace/build/joint_info/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/BA/workspace/src/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src', 'ROS_PYTHON_VERSION': '3', 'COLCON_PREFIX_PATH': '/BA/ros_osc/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
[0.608178] (-) TimerEvent: {}
[0.708895] (-) TimerEvent: {}
[0.809894] (-) TimerEvent: {}
[0.817503] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
[0.818441] (joint_info) StdoutLine: {'line': b'writing ../../build/joint_info/joint_info.egg-info/PKG-INFO\n'}
[0.819095] (joint_info) StdoutLine: {'line': b'writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt\n'}
[0.819768] (joint_info) StdoutLine: {'line': b'writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt\n'}
[0.820734] (joint_info) StdoutLine: {'line': b'writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt\n'}
[0.821219] (joint_info) StdoutLine: {'line': b'writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt\n'}
[0.823666] (joint_info) StdoutLine: {'line': b"reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.824765] (joint_info) StdoutLine: {'line': b"writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.825059] (joint_info) StdoutLine: {'line': b'running build\n'}
[0.825228] (joint_info) StdoutLine: {'line': b'running build_py\n'}
[0.825577] (joint_info) StdoutLine: {'line': b'copying joint_info/osc_joint_states_pub.py -> /BA/workspace/build/joint_info/build/lib/joint_info\n'}
[0.826514] (joint_info) StdoutLine: {'line': b'running install\n'}
[0.827263] (joint_info) StdoutLine: {'line': b'running install_lib\n'}
[0.827691] (joint_info) StdoutLine: {'line': b'copying /BA/workspace/build/joint_info/build/lib/joint_info/osc_joint_states_pub.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info\n'}
[0.828844] (joint_info) StdoutLine: {'line': b'byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/osc_joint_states_pub.py to osc_joint_states_pub.cpython-310.pyc\n'}
[0.833499] (joint_info) StdoutLine: {'line': b'running install_data\n'}
[0.833953] (joint_info) StdoutLine: {'line': b'running install_egg_info\n'}
[0.835256] (joint_info) StdoutLine: {'line': b"removing '/BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info' (and everything under it)\n"}
[0.836331] (joint_info) StdoutLine: {'line': b'Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info\n'}
[0.842079] (joint_info) StdoutLine: {'line': b'running install_scripts\n'}
[0.864775] (joint_info) StdoutLine: {'line': b'Installing joint_info script to /BA/workspace/install/joint_info/lib/joint_info\n'}
[0.865894] (joint_info) StdoutLine: {'line': b"writing list of installed files to '/BA/workspace/build/joint_info/install.log'\n"}
[0.881587] (joint_info) CommandEnded: {'returncode': 0}
[0.896384] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
[0.897655] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,2 @@
Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data

View File

@ -0,0 +1,22 @@
running egg_info
writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
running build
running build_py
copying joint_info/osc_joint_states_pub.py -> /BA/workspace/build/joint_info/build/lib/joint_info
running install
running install_lib
copying /BA/workspace/build/joint_info/build/lib/joint_info/osc_joint_states_pub.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/osc_joint_states_pub.py to osc_joint_states_pub.cpython-310.pyc
running install_data
running install_egg_info
removing '/BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info' (and everything under it)
Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
running install_scripts
Installing joint_info script to /BA/workspace/install/joint_info/lib/joint_info
writing list of installed files to '/BA/workspace/build/joint_info/install.log'

View File

@ -0,0 +1,22 @@
running egg_info
writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
running build
running build_py
copying joint_info/osc_joint_states_pub.py -> /BA/workspace/build/joint_info/build/lib/joint_info
running install
running install_lib
copying /BA/workspace/build/joint_info/build/lib/joint_info/osc_joint_states_pub.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/osc_joint_states_pub.py to osc_joint_states_pub.cpython-310.pyc
running install_data
running install_egg_info
removing '/BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info' (and everything under it)
Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
running install_scripts
Installing joint_info script to /BA/workspace/install/joint_info/lib/joint_info
writing list of installed files to '/BA/workspace/build/joint_info/install.log'

View File

@ -0,0 +1,24 @@
[0.605s] Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[0.816s] running egg_info
[0.816s] writing ../../build/joint_info/joint_info.egg-info/PKG-INFO
[0.817s] writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt
[0.817s] writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt
[0.818s] writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt
[0.819s] writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt
[0.821s] reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
[0.822s] writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'
[0.822s] running build
[0.823s] running build_py
[0.823s] copying joint_info/osc_joint_states_pub.py -> /BA/workspace/build/joint_info/build/lib/joint_info
[0.825s] running install
[0.825s] running install_lib
[0.825s] copying /BA/workspace/build/joint_info/build/lib/joint_info/osc_joint_states_pub.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info
[0.826s] byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/osc_joint_states_pub.py to osc_joint_states_pub.cpython-310.pyc
[0.831s] running install_data
[0.832s] running install_egg_info
[0.833s] removing '/BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info' (and everything under it)
[0.834s] Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info
[0.841s] running install_scripts
[0.863s] Installing joint_info script to /BA/workspace/install/joint_info/lib/joint_info
[0.863s] writing list of installed files to '/BA/workspace/build/joint_info/install.log'
[0.879s] Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data

View File

@ -0,0 +1,126 @@
[0.096s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build']
[0.096s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=8, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=<colcon_mixin.mixin.mixin_argument.MixinArgumentDecorator object at 0x7ffffe2088e0>, verb_extension=<colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>, main=<bound method BuildVerb.main of <colcon_core.verb.build.BuildVerb object at 0x7ffffe321870>>, mixin_verb=('build',))
[0.193s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[0.194s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/Gazebo.meta'
[0.194s] INFO:colcon.colcon_metadata.package_discovery.colcon_meta:Using configuration from '/root/.colcon/metadata/default/fastrtps.meta'
[0.194s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[0.194s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[0.194s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[0.195s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[0.195s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[0.195s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/BA/workspace'
[0.195s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[0.195s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[0.196s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ignore', 'ignore_ament_install']
[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore_ament_install'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_pkg']
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_pkg'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_meta']
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_meta'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ros']
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ros'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['cmake', 'python']
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'cmake'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python'
[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['python_setup_py']
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python_setup_py'
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ignore', 'ignore_ament_install']
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore'
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ignore_ament_install'
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_pkg']
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_pkg'
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['colcon_meta']
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'colcon_meta'
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extensions ['ros']
[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(src/joint_info) by extension 'ros'
[0.214s] DEBUG:colcon.colcon_core.package_identification:Package 'src/joint_info' with type 'ros.ament_python' and name 'joint_info'
[0.215s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[0.215s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[0.215s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[0.215s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[0.215s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_args' from command line to 'None'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target' from command line to 'None'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_target_skip_unavailable' from command line to 'False'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_cache' from command line to 'False'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_clean_first' from command line to 'False'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'cmake_force_configure' from command line to 'False'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'ament_cmake_args' from command line to 'None'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_cmake_args' from command line to 'None'
[0.230s] Level 5:colcon.colcon_core.verb:set package 'joint_info' build argument 'catkin_skip_building_tests' from command line to 'False'
[0.230s] DEBUG:colcon.colcon_core.verb:Building package 'joint_info' with the following arguments: {'ament_cmake_args': None, 'build_base': '/BA/workspace/build/joint_info', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/BA/workspace/install/joint_info', 'merge_install': False, 'path': '/BA/workspace/src/joint_info', 'symlink_install': False, 'test_result_base': None}
[0.230s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[0.233s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[0.234s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/BA/workspace/src/joint_info' with build type 'ament_python'
[0.234s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'ament_prefix_path')
[0.235s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
[0.236s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.ps1'
[0.238s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.dsv'
[0.238s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/ament_prefix_path.sh'
[0.239s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[0.239s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[0.493s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/BA/workspace/src/joint_info'
[0.494s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[0.494s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[0.842s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[1.116s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
[1.118s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake module files
[1.119s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info' for CMake config files
[1.123s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib'
[1.123s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
[1.123s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/pkgconfig/joint_info.pc'
[1.124s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/lib/python3.10/site-packages'
[1.124s] Level 1:colcon.colcon_core.shell:create_environment_hook('joint_info', 'pythonpath')
[1.124s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.ps1'
[1.125s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.dsv'
[1.125s] INFO:colcon.colcon_core.shell:Creating environment hook '/BA/workspace/install/joint_info/share/joint_info/hook/pythonpath.sh'
[1.126s] Level 1:colcon.colcon_core.environment:checking '/BA/workspace/install/joint_info/bin'
[1.126s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(joint_info)
[1.126s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.ps1'
[1.127s] INFO:colcon.colcon_core.shell:Creating package descriptor '/BA/workspace/install/joint_info/share/joint_info/package.dsv'
[1.128s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.sh'
[1.129s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.bash'
[1.129s] INFO:colcon.colcon_core.shell:Creating package script '/BA/workspace/install/joint_info/share/joint_info/package.zsh'
[1.130s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/BA/workspace/install/joint_info/share/colcon-core/packages/joint_info)
[1.131s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[1.131s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[1.131s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[1.131s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[1.143s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[1.143s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[1.143s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[1.143s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[1.145s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[1.145s] DEBUG:colcon.colcon_core.event_reactor:joined thread
[1.145s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.ps1'
[1.146s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_ps1.py'
[1.148s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.ps1'
[1.149s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.sh'
[1.150s] INFO:colcon.colcon_core.shell:Creating prefix util module '/BA/workspace/install/_local_setup_util_sh.py'
[1.151s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.sh'
[1.152s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.bash'
[1.152s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.bash'
[1.153s] INFO:colcon.colcon_core.shell:Creating prefix script '/BA/workspace/install/local_setup.zsh'
[1.154s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/BA/workspace/install/setup.zsh'

View File

@ -0,0 +1,37 @@
[0.000000] (-) TimerEvent: {}
[0.000990] (joint_info) JobQueued: {'identifier': 'joint_info', 'dependencies': OrderedDict()}
[0.001182] (joint_info) JobStarted: {'identifier': 'joint_info'}
[0.098803] (-) TimerEvent: {}
[0.200603] (-) TimerEvent: {}
[0.302060] (-) TimerEvent: {}
[0.403805] (-) TimerEvent: {}
[0.506493] (-) TimerEvent: {}
[0.591727] (joint_info) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', '-W', 'ignore:easy_install command is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/joint_info', 'build', '--build-base', '/BA/workspace/build/joint_info/build', 'install', '--record', '/BA/workspace/build/joint_info/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/BA/workspace/src/joint_info', 'env': {'HOSTNAME': '3230bc57d699', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib', 'HOME': '/root', 'OLDPWD': '/BA/workspace/src', 'ROS_PYTHON_VERSION': '3', '_colcon_cd_root': '/opt/ros/foxy/', 'COLCON_PREFIX_PATH': '/BA/ros_osc/install', 'ROS_DISTRO': 'humble', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'TERM': 'xterm', 'ROS_LOCALHOST_ONLY': '0', 'PATH': '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'LANG': 'C.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'AMENT_PREFIX_PATH': '/opt/ros/humble', 'PWD': '/BA/workspace/build/joint_info', 'LC_ALL': 'C.UTF-8', 'PYTHONPATH': '/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages', 'COLCON': '1'}, 'shell': False}
[0.606708] (-) TimerEvent: {}
[0.707798] (-) TimerEvent: {}
[0.798351] (joint_info) StdoutLine: {'line': b'running egg_info\n'}
[0.798977] (joint_info) StdoutLine: {'line': b'writing ../../build/joint_info/joint_info.egg-info/PKG-INFO\n'}
[0.799584] (joint_info) StdoutLine: {'line': b'writing dependency_links to ../../build/joint_info/joint_info.egg-info/dependency_links.txt\n'}
[0.800132] (joint_info) StdoutLine: {'line': b'writing entry points to ../../build/joint_info/joint_info.egg-info/entry_points.txt\n'}
[0.801195] (joint_info) StdoutLine: {'line': b'writing requirements to ../../build/joint_info/joint_info.egg-info/requires.txt\n'}
[0.801715] (joint_info) StdoutLine: {'line': b'writing top-level names to ../../build/joint_info/joint_info.egg-info/top_level.txt\n'}
[0.803961] (joint_info) StdoutLine: {'line': b"reading manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.805061] (joint_info) StdoutLine: {'line': b"writing manifest file '../../build/joint_info/joint_info.egg-info/SOURCES.txt'\n"}
[0.805346] (joint_info) StdoutLine: {'line': b'running build\n'}
[0.805520] (joint_info) StdoutLine: {'line': b'running build_py\n'}
[0.805904] (joint_info) StdoutLine: {'line': b'copying joint_info/osc_joint_states_pub.py -> /BA/workspace/build/joint_info/build/lib/joint_info\n'}
[0.806861] (joint_info) StdoutLine: {'line': b'running install\n'}
[0.807646] (joint_info) StdoutLine: {'line': b'running install_lib\n'}
[0.808081] (-) TimerEvent: {}
[0.808601] (joint_info) StdoutLine: {'line': b'copying /BA/workspace/build/joint_info/build/lib/joint_info/osc_joint_states_pub.py -> /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info\n'}
[0.809790] (joint_info) StdoutLine: {'line': b'byte-compiling /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info/osc_joint_states_pub.py to osc_joint_states_pub.cpython-310.pyc\n'}
[0.814418] (joint_info) StdoutLine: {'line': b'running install_data\n'}
[0.815833] (joint_info) StdoutLine: {'line': b'running install_egg_info\n'}
[0.816082] (joint_info) StdoutLine: {'line': b"removing '/BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info' (and everything under it)\n"}
[0.816826] (joint_info) StdoutLine: {'line': b'Copying ../../build/joint_info/joint_info.egg-info to /BA/workspace/install/joint_info/lib/python3.10/site-packages/joint_info-0.0.0-py3.10.egg-info\n'}
[0.822395] (joint_info) StdoutLine: {'line': b'running install_scripts\n'}
[0.844284] (joint_info) StdoutLine: {'line': b'Installing joint_info script to /BA/workspace/install/joint_info/lib/joint_info\n'}
[0.845858] (joint_info) StdoutLine: {'line': b"writing list of installed files to '/BA/workspace/build/joint_info/install.log'\n"}
[0.861868] (joint_info) CommandEnded: {'returncode': 0}
[0.875957] (joint_info) JobEnded: {'identifier': 'joint_info', 'rc': 0}
[0.877424] (-) EventReactorShutdown: {}

View File

@ -0,0 +1,2 @@
Invoking command in '/BA/workspace/src/joint_info': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data
Invoked command in '/BA/workspace/src/joint_info' returned '0': PYTHONPATH=/BA/workspace/build/joint_info/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/BA/workspace/install/joint_info/lib/python3.10/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated -W ignore:easy_install command is deprecated setup.py egg_info --egg-base ../../build/joint_info build --build-base /BA/workspace/build/joint_info/build install --record /BA/workspace/build/joint_info/install.log --single-version-externally-managed install_data

Some files were not shown because too many files have changed in this diff Show More