diff --git a/cobot/AMENT_IGNORE b/cobot/AMENT_IGNORE deleted file mode 100644 index e69de29..0000000 diff --git a/colcon_defaults.yaml b/colcon_defaults.yaml new file mode 100644 index 0000000..04a1d1a --- /dev/null +++ b/colcon_defaults.yaml @@ -0,0 +1,11 @@ +build: + base-paths: + - src + +list: + base-paths: + - src + +test: + base-paths: + - src diff --git a/doc/AMENT_IGNORE b/doc/AMENT_IGNORE deleted file mode 100644 index e69de29..0000000 diff --git a/docker/AMENT_IGNORE b/docker/AMENT_IGNORE deleted file mode 100644 index e69de29..0000000 diff --git a/src/ai_agent/ai_agent/__init__.py b/src/ai_agent/ai_agent/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/ai_agent/package.xml b/src/ai_agent/package.xml deleted file mode 100644 index 358427d..0000000 --- a/src/ai_agent/package.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - ai_agent - 0.0.0 - TODO: Package description - daniel - TODO: License declaration - - ament_copyright - ament_flake8 - ament_pep257 - python3-pytest - - - ament_python - - diff --git a/src/ai_agent/resource/ai_agent b/src/ai_agent/resource/ai_agent deleted file mode 100644 index e69de29..0000000 diff --git a/src/ai_agent/setup.cfg b/src/ai_agent/setup.cfg deleted file mode 100644 index d873e7b..0000000 --- a/src/ai_agent/setup.cfg +++ /dev/null @@ -1,4 +0,0 @@ -[develop] -script_dir=$base/lib/ai_agent -[install] -install_scripts=$base/lib/ai_agent diff --git a/src/ai_agent/setup.py b/src/ai_agent/setup.py deleted file mode 100644 index c7607c4..0000000 --- a/src/ai_agent/setup.py +++ /dev/null @@ -1,29 +0,0 @@ -from setuptools import find_packages, setup - -package_name = 'ai_agent' - -setup( - name=package_name, - version='0.0.0', - packages=find_packages(exclude=['test']), - data_files=[ - ('share/ament_index/resource_index/packages', - ['resource/' + package_name]), - ('share/' + package_name, ['package.xml']), - ], - install_requires=['setuptools'], - zip_safe=True, - maintainer='daniel', - maintainer_email='grabardm@ml-dev.ru', - description='TODO: Package description', - license='TODO: License declaration', - extras_require={ - 'test': [ - 'pytest', - ], - }, - entry_points={ - 'console_scripts': [ - ], - }, -) diff --git a/src/ai_agent/test/test_copyright.py b/src/ai_agent/test/test_copyright.py deleted file mode 100644 index 97a3919..0000000 --- a/src/ai_agent/test/test_copyright.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2015 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_copyright.main import main -import pytest - - -# Remove the `skip` decorator once the source file(s) have a copyright header -@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.') -@pytest.mark.copyright -@pytest.mark.linter -def test_copyright(): - rc = main(argv=['.', 'test']) - assert rc == 0, 'Found errors' diff --git a/src/ai_agent/test/test_flake8.py b/src/ai_agent/test/test_flake8.py deleted file mode 100644 index 27ee107..0000000 --- a/src/ai_agent/test/test_flake8.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2017 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_flake8.main import main_with_errors -import pytest - - -@pytest.mark.flake8 -@pytest.mark.linter -def test_flake8(): - rc, errors = main_with_errors(argv=[]) - assert rc == 0, \ - 'Found %d code style errors / warnings:\n' % len(errors) + \ - '\n'.join(errors) diff --git a/src/ai_agent/test/test_pep257.py b/src/ai_agent/test/test_pep257.py deleted file mode 100644 index b234a38..0000000 --- a/src/ai_agent/test/test_pep257.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2015 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_pep257.main import main -import pytest - - -@pytest.mark.linter -@pytest.mark.pep257 -def test_pep257(): - rc = main(argv=['.', 'test']) - assert rc == 0, 'Found code style errors / warnings' diff --git a/src/iiwa_bringup/launch/supported/webots_spawn.launch.py b/src/iiwa_bringup/launch/supported/webots_spawn.launch.py index b9fd0cc..3bbbab0 100644 --- a/src/iiwa_bringup/launch/supported/webots_spawn.launch.py +++ b/src/iiwa_bringup/launch/supported/webots_spawn.launch.py @@ -1,3 +1,6 @@ +import tempfile + +import yaml from launch import LaunchDescription from launch.actions import ( EmitEvent, @@ -29,17 +32,34 @@ def _spawn_setup(context, *args, **kwargs): }, ) + # robot_description cannot be passed via -p key:=value: rcl's YAML parser + # chokes on XML content (quotes, angle brackets). Merge all params into one + # temp file and pass via --params-file. A minimal dict triggers --ros-args + # so WebotsController includes the required prefix in the command. + with open(controller, "r") as f: + controller_cfg = yaml.safe_load(f) or {} + + combined = { + "/**": {"ros__parameters": { + "robot_description": robot_description, + "set_robot_state_publisher": False, + }} + } + combined.update(controller_cfg) + + with tempfile.NamedTemporaryFile( + mode="w", suffix=".yaml", delete=False, prefix="iiwa7_webots_" + ) as f: + yaml.dump(combined, f, default_flow_style=False, allow_unicode=True) + params_file = f.name + webots = WebotsLauncher(world=world, ros2_supervisor=True) driver = WebotsController( robot_name=robot_name, parameters=[ - { - "robot_description": robot_description, - "use_sim_time": True, - "set_robot_state_publisher": False, - }, - controller, + {"use_sim_time": True}, # dict → triggers --ros-args prefix + params_file, # file → --params-file (robot_description + controllers) ], respawn=True, ) diff --git a/src/iiwa_utils/iiwa_utils/tool_manager.py b/src/iiwa_utils/iiwa_utils/tool_manager.py index f70bbd9..4a99c19 100644 --- a/src/iiwa_utils/iiwa_utils/tool_manager.py +++ b/src/iiwa_utils/iiwa_utils/tool_manager.py @@ -84,7 +84,15 @@ def _write_xacro(tool_cfg: dict, output_path: Path) -> None: if xacro_include: body = f' \n' else: - body = " \n" + body = ( + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ) content = ( '\n'