Open tobiasduerschmid opened 3 years ago
Again, it looks like you might be running an old version of ROSDiscover here.
There's several failures here:
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
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
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'
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.
When running rosdiscover on rosdiscover-experiments/husky:3796317c73f184d767b1a74f7d58d0cc5b3f84fe