cmu-rss-lab / rosdiscover-evaluation

Image Creation and Evaluation Infrastructure for ROS Discover
MIT License
2 stars 0 forks source link

[Husky-03] #78

Open tobiasduerschmid opened 3 years ago

tobiasduerschmid commented 3 years ago

When running rosdiscover on rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe

Exception: failed to find model for node type [ekf_localization_node] in package [robot_localization]
2021-11-06 11:23:41.448 | DEBUG    | roswire.app.instance:close:157 - destroying app instance directory: /home/tdurschm/.roswire/containers/tmpt5fvfe1c
2021-11-06 11:23:41.448 | DEBUG    | roswire.app.instance:close:159 - destroyed app instance directory: /home/tdurschm/.roswire/containers/tmpt5fvfe1c
2021-11-06 11:23:41.781 | DEBUG    | roswire.app.instance:close:157 - destroying app instance directory: /home/tdurschm/.roswire/containers/tmpcidse7no
2021-11-06 11:23:41.781 | DEBUG    | roswire.app.instance:close:159 - destroyed app instance directory: /home/tdurschm/.roswire/containers/tmpcidse7no
2021-11-06 11:23:41.782 | ERROR    | __main__:recover_system:88 - failed to statically recover system architecture for image [rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe]
Traceback (most recent call last):

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 239, in _load
    model = self.models.fetch(pkg, nodetype)
            │    │      │     │    └ 'ekf_localization_node'
            │    │      │     └ 'robot_localization'
            │    │      └ <function ProjectModels.fetch at 0x7f466d264160>
            │    └ ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ro...
            └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f466f03fe50>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/project/models.py", line 145, in fetch
    fetched_model = model_source(package, node)
                    │            │        └ 'ekf_localization_node'
                    │            └ 'robot_localization'
                    └ <bound method ProjectModels._recover of ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/project/models.py", line 72, in _recover
    model = self._recovery_tool.recover_using_cmakelists(package, node)
            │    │                                       │        └ 'ekf_localization_node'
            │    │                                       └ 'robot_localization'
            │    └ <member '_recovery_tool' of 'ProjectModels' objects>
            └ ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ro...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/tool.py", line 261, in recover_using_cmakelists
    return self.recover(package_name, node_name, entrypoint, source_info.sources,
           │    │       │             │          │           │           └ {'src/ekf_localization_node.cpp'}
           │    │       │             │          │           └ CMakeBinaryTarget(name='ekf_localization_node', language=<SourceLanguage.CXX: 'cxx'>, sources={'src/ekf_localization_node.cpp...
           │    │       │             │          └ 'main'
           │    │       │             └ 'ekf_localization_node'
           │    │       └ 'robot_localization'
           │    └ <function NodeRecoveryTool.recover at 0x7f466d25f820>
           └ NodeRecoveryTool(_app=App(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/tool.py", line 316, in recover
    program = self._recover(compile_commands_path, entrypoint, sources, path_restrictions)
              │    │        │                      │           │        └ {'/ros_ws/src/robot_localization', '/ros_ws/devel/include/robot_localization'}
              │    │        │                      │           └ ['/ros_ws/src/robot_localization/src/ekf_localization_node.cpp']
              │    │        │                      └ 'main'
              │    │        └ '/ros_ws/build/robot_localization/compile_commands.json'
              │    └ <function NodeRecoveryTool._recover at 0x7f466d25f8b0>
              └ NodeRecoveryTool(_app=App(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/tool.py", line 417, in _recover
    summary = model_loader.load(json_model)
              │            │    └ {'program': {'functions': [{'body': {'kind': 'compound', 'statements': [{'kind': 'assignment', 'source-location': '</ros_ws/s...
              │            └ <function SymbolicProgramLoader.load at 0x7f466d257d30>
              └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 207, in load
    return SymbolicProgram.build(
           │               └ <classmethod object at 0x7f466d35dca0>
           └ <class 'rosdiscover.recover.symbolic.SymbolicProgram'>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/symbolic.py", line 450, in build
    name_to_function = {function.name: function for function in functions}
                                                                └ <generator object SymbolicProgramLoader.load.<locals>.<genexpr> at 0x7f466c81ba50>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/symbolic.py", line 450, in <dictcomp>
    name_to_function = {function.name: function for function in functions}
                        │        │     │            └ SymbolicFunction(name='RobotLocalization::RosFilter<RobotLocalization::Ekf>::loadUpdateConfig', parameters={}, body=SymbolicC...
                        │        │     └ SymbolicFunction(name='RobotLocalization::RosFilter<RobotLocalization::Ekf>::loadUpdateConfig', parameters={}, body=SymbolicC...
                        │        └ <member 'name' of 'SymbolicFunction' objects>
                        └ SymbolicFunction(name='RobotLocalization::RosFilter<RobotLocalization::Ekf>::loadUpdateConfig', parameters={}, body=SymbolicC...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 209, in <genexpr>
    (self._load_function(d) for d in dict_["functions"])
     │    │              │      └ {'body': {'kind': 'compound', 'statements': [{'kind': 'assignment', 'source-location': '</ros_ws/src/robot_localization/inclu...
     │    │              └ {'body': {'kind': 'compound', 'statements': [{'kind': 'assignment', 'source-location': '</ros_ws/src/robot_localization/inclu...
     │    └ <function SymbolicProgramLoader._load_function at 0x7f466d257ca0>
     └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 198, in _load_function
    body = self._load_compound(dict_["body"])
           │    │              └ {'body': {'kind': 'compound', 'statements': [{'kind': 'assignment', 'source-location': '</ros_ws/src/robot_localization/inclu...
           │    └ <function SymbolicProgramLoader._load_compound at 0x7f466d257c10>
           └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 192, in _load_compound
    statements = [self._load_statement(d) for d in dict_["statements"]]
                  │    │                           └ {'kind': 'compound', 'statements': [{'kind': 'assignment', 'source-location': '</ros_ws/src/robot_localization/include/robot_...
                  │    └ <function SymbolicProgramLoader._load_statement at 0x7f466d257b80>
                  └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 192, in <listcomp>
    statements = [self._load_statement(d) for d in dict_["statements"]]
                  │    │               │      └ {'kind': 'provides-service', 'name': {'kind': 'concatenate', 'lhs': {'kind': 'node-handle', 'namespace': {'kind': 'string-lit...
                  │    │               └ {'kind': 'provides-service', 'name': {'kind': 'concatenate', 'lhs': {'kind': 'node-handle', 'namespace': {'kind': 'string-lit...
                  │    └ <function SymbolicProgramLoader._load_statement at 0x7f466d257b80>
                  └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 178, in _load_statement
    return self._load_provides_service(dict_)
           │    │                      └ {'kind': 'provides-service', 'name': {'kind': 'concatenate', 'lhs': {'kind': 'node-handle', 'namespace': {'kind': 'string-lit...
           │    └ <function SymbolicProgramLoader._load_provides_service at 0x7f466d257790>
           └ <rosdiscover.recover.loader.SymbolicProgramLoader object at 0x7f466c8099a0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/loader.py", line 129, in _load_provides_service
    return ServiceProvider(service, dict_["format"])
           │               │        └ {'kind': 'provides-service', 'name': {'kind': 'concatenate', 'lhs': {'kind': 'node-handle', 'namespace': {'kind': 'string-lit...
           │               └ Concatenate(lhs=SymbolicNodeHandleImpl(namespace=StringLiteral(value='')), rhs=StringLiteral(value='set_pose'))
           └ <class 'rosdiscover.recover.call.ServiceProvider'>

KeyError: 'format'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "/home/tdurschm/rosdiscover-evaluation/scripts/recover-system.py", line 124, in <module>
    main()
    └ <function main at 0x7f466d1e5670>

  File "/home/tdurschm/rosdiscover-evaluation/scripts/recover-system.py", line 120, in main
    recover(config)
    │       └ {'type': 'detection', 'subject': 'husky', 'distro': 'indigo', 'build_command': 'catkin build -DCMAKE_EXPORT_COMPILE_COMMANDS=...
    └ <function recover at 0x7f46731a61f0>

  File "/home/tdurschm/rosdiscover-evaluation/scripts/recover-system.py", line 26, in recover
    ({

  File "/home/tdurschm/rosdiscover-evaluation/scripts/recover-system.py", line 39, in _recover_for_detection_experiment
    recover_system(
    └ <function recover_system at 0x7f466d1e5550>

> File "/home/tdurschm/rosdiscover-evaluation/scripts/recover-system.py", line 86, in recover_system
    rosdiscover.cli.main(args)
    │           │   │    └ ['launch', '/tmp/tmplypqnl_v.rosdiscover.yml', '--output', '/home/tdurschm/rosdiscover-evaluation/experiments/detection/subje...
    │           │   └ <function main at 0x7f466d1d4dc0>
    │           └ <module 'rosdiscover.cli' from '/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py'>
    └ <module 'rosdiscover' from '/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/__init__.py'>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 355, in main
    parsed_args.func(parsed_args)
    │           │    └ Namespace(output='/home/tdurschm/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architecture.yml', conf...
    │           └ <function launch at 0x7f466d1d48b0>
    └ Namespace(output='/home/tdurschm/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architecture.yml', conf...

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 72, in launch
    summary = _launch_config(args)
              │              └ Namespace(output='/home/tdurschm/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architecture.yml', conf...
              └ <function _launch_config at 0x7f466d1ea1f0>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 67, in _launch_config
    return _launch(config)
           │       └ Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/indigo/setup.bash',...
           └ <function _launch at 0x7f466d206a60>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 61, in _launch
    interpreter.launch(fn_launch)
    │           │      └ Launch(filename='/ros_ws/src/husky/launch/control.launch', arguments={})
    │           └ <function Interpreter.launch at 0x7f466d264af0>
    └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f466f03fe50>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 99, in launch
    self._load(pkg=node.package,
    │    │         │    └ <member 'package' of 'NodeConfig' objects>
    │    │         └ NodeConfig(namespace='/', name='ekf_localization', typ='ekf_localization_node', package='robot_localization', executable_path...
    │    └ <function Interpreter._load at 0x7f466d264ca0>
    └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f466f03fe50>

  File "/home/tdurschm/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 244, in _load
    raise Exception(m)
                    └ 'failed to find model for node type [ekf_localization_node] in package [robot_localization]'

Exception: failed to find model for node type [ekf_localization_node] in package [robot_localization]
ChrisTimperley commented 3 years ago

Again, it looks like you might be running an old version of ROSDiscover here.

ChrisTimperley commented 3 years ago

There's several failures here:

  1. a crash occurs in cxx-recovery for ekf_localization_node in robot_localization package. I should be able to fix this:
    symbolizing ROS API call: 
    DEBUG: symbolizing ROS API call with associated node handle...
    rosdiscover-cxx-extract: /opt/llvm11/include/clang/AST/ExprCXX.h:1582: const clang::Expr *clang::CXXConstructExpr::getArg(unsigned int) const: Assertion `Arg < getNumArgs() && "Arg access out of range!"' failed.
    ERROR: Static recovery failed for robot_localization/ekf_localization_node
  2. the CMake analysis seems to fail for ekf_localization (not ekf_localization_node) in the robot_localization package

    
    INFO: Attempting to recover robot_localization/ekf_localization from CMakeLists.txt
    INFO: Setting PROJECT_NAME=robot_localization
    INFO: CMakeLists.txt contains: dict_keys(['filter_base', 'ekf', 'ukf', 'navsat_transform', 'ekf_localization_node', 'ukf_localization_node', 'utm_transform_node', 'navsat_transform_node'])
    ERROR: Error recovering robot_localization/ekf_localization
    Traceback (most recent call last):
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 133, in <module>
    main()
    └ <function main at 0x7f3355eae670>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 129, in main
    recover(config)
    │       └ {'type': 'detection', 'subject': 'husky', 'distro': 'indigo', 'build_command': 'catkin build -DCMAKE_EXPORT_COMPILE_COMMANDS=...
    └ <function recover at 0x7f335c05d1f0>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 26, in recover
    ({
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 43, in _recover_for_detection_experiment
    recover_system(
    └ <function recover_system at 0x7f3355eae550>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 95, in recover_system
    rosdiscover.cli.main(args)
    │           │   │    └ ['launch', '/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/recovery.buggy.rosdis...
    │           │   └ <function main at 0x7f3355f10e50>
    │           └ <module 'rosdiscover.cli' from '/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py'>
    └ <module 'rosdiscover' from '/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/__init__.py'>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 356, in main
    parsed_args.func(parsed_args)
    │           │    └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect...
    │           └ <function launch at 0x7f3355f10940>
    └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect...
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 72, in launch
    summary = _launch_config(args)
              │              └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect...
              └ <function _launch_config at 0x7f3355f06430>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 67, in _launch_config
    return _launch(config)
           │       └ Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/indigo/setup.bash',...
           └ <function _launch at 0x7f3355f13430>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 61, in _launch
    interpreter.launch(fn_launch)
    │           │      └ Launch(filename='/ros_ws/src/husky/launch/control.launch', arguments={})
    │           └ <function Interpreter.launch at 0x7f3355f86dc0>
    └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 110, in launch
    self._load(pkg=node.package,
    │    │         │    └ <member 'package' of 'NodeConfig' objects>
    │    │         └ NodeConfig(namespace='/', name='ekf_localization', typ='ekf_localization_node', package='robot_localization', executable_path...
    │    └ <function Interpreter._load at 0x7f3355f86f70>
    └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 280, in _load
    model = self.models.fetch(pkg, name)
            │    │      │     │    └ 'ekf_localization'
            │    │      │     └ 'robot_localization'
            │    │      └ <function ProjectModels.fetch at 0x7f3355f86430>
            │    └ ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ro...
            └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60>
    
    File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/project/models.py", line 145, in fetch
    fetched_model = model_source(package, node)
                    │            │        └ 'ekf_localization'
                    │            └ 'robot_localization'
                    └ <bound method ProjectModels._recover of ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1...

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/project/models.py", line 72, in _recover model = self._recovery_tool.recover_using_cmakelists(package, node) │ │ │ └ 'ekf_localization' │ │ └ 'robot_localization' │ └ <member '_recovery_tool' of 'ProjectModels' objects> └ ProjectModels(config=Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ro...

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/tool.py", line 274, in recover_using_cmakelists source_info = self._info_via_cmake(package, node_name) │ │ │ └ 'ekf_localization' │ │ └ ROS1Package(name='robot_localization', path='/ros_ws/src/robot_localization', messages=(), services=(ROS1SrvFormat(package='r... │ └ <function NodeRecoveryTool._info_via_cmake at 0x7f3355f809d0> └ NodeRecoveryTool(_app=App(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/...

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/recover/tool.py", line 258, in _info_via_cmake raise ValueError(f"{node_name} is not in the CMakeLists.txt of package '{package.name}")

ValueError: ekf_localization is not in the CMakeLists.txt of package 'robot_localization

3. the `\gazebo` handwritten node seems to be misbehaving for some reason?

ERROR: failed to statically recover system architecture for image [rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe] Traceback (most recent call last):

File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 133, in main() └ <function main at 0x7f3355eae670>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 129, in main recover(config) │ └ {'type': 'detection', 'subject': 'husky', 'distro': 'indigo', 'build_command': 'catkin build -DCMAKE_EXPORT_COMPILE_COMMANDS=... └ <function recover at 0x7f335c05d1f0>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 26, in recover ({

File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 43, in _recover_for_detection_experiment recover_system( └ <function recover_system at 0x7f3355eae550>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/scripts/recover-system.py", line 95, in recover_system rosdiscover.cli.main(args) │ │ │ └ ['launch', '/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/recovery.buggy.rosdis... │ │ └ <function main at 0x7f3355f10e50> │ └ <module 'rosdiscover.cli' from '/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py'> └ <module 'rosdiscover' from '/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/init.py'>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 356, in main parsed_args.func(parsed_args) │ │ └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect... │ └ <function launch at 0x7f3355f10940> └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect...

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 72, in launch summary = _launch_config(args) │ └ Namespace(output='/usr0/home/chris/experiments/rosdiscover-evaluation/experiments/detection/subjects/husky-03/buggy.architect... └ <function _launch_config at 0x7f3355f06430>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 67, in _launch_config return _launch(config) │ └ Config(image='rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe', sources=('/opt/ros/indigo/setup.bash',... └ <function _launch at 0x7f3355f13430>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/cli.py", line 61, in _launch interpreter.launch(fn_launch) │ │ └ Launch(filename='/ros_ws/src/husky/launch/control.launch', arguments={}) │ └ <function Interpreter.launch at 0x7f3355f86dc0> └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60>

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/interpreter/interpreter.py", line 126, in launch plugin.load(self) │ │ └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60> │ └ <function ControllerManagerPlugin.load at 0x7f3355f9bf70> └ JointStateControllerPlugin(controller_name='husky_joint_publisher', controller_manager_node='/gazebo')

File "/usr0/home/chris/experiments/rosdiscover-evaluation/deps/rosdiscover/src/rosdiscover/models/plugins/controller_manager.py", line 73, in load context = interpreter.nodes[self.controller_manager_node] │ │ │ └ <member 'controller_manager_node' of 'ControllerManagerPlugin' objects> │ │ └ JointStateControllerPlugin(controller_name='husky_joint_publisher', controller_manager_node='/gazebo') │ └ {'/twist_mux': NodeContext(name='twist_mux', namespace='/', kind='twist_mux', package='twist_mux', args='', remappings={'/cmd... └ <rosdiscover.interpreter.interpreter.Interpreter object at 0x7f3356078a60>

KeyError: '/gazebo'

schmerl commented 3 years ago

This might be because we're missing the launch file that actually launches it. twist_mux is trying to add topics to gazebo (that's what it does) but it can't find gazebo in the set of started nodes. In fact, if I look at the set of launch files in the experiment.yml, I see:

launches:
- /ros_ws/src/husky/launch/control.launch
- /ros_ws/src/husky/launch/teleop.launch

Nothing starting gazebo, You probably need the /ros_ws/src/husky/husky_gazebo/launch/husky_playpen.launch in there.