cmu-rss-lab / rosdiscover-evaluation

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

[Husky-03] Reproduce on Docker container used for recovery #91

Open schmerl opened 2 years ago

schmerl commented 2 years ago

Error is in localiztion.yaml

schmerl commented 2 years ago

This is read in as a parameter to ekf_localization. This seems not to be recovered by static analysis, becuse the topic is derived from a parameter? Or because of complicated type resolution:

In /ros_ws/src/robot_localization/src/ekf_localization_node.cpp:

  RobotLocalization::RosEkf ekf(nh, nh_priv);
  ekf.initialize();

typedef RosFilter<Ekf> RosEkf in /ros_ws/src/robot_localization/include/robot_localization/ros_filter_types.h

Eventually gets to the complicated RosFilter<T>::loadParams in /ros_ws/src/robot_localization/src/ros_filter.cpp.

ChrisTimperley commented 2 years ago

There are two key issues here:

  1. RobotLocalization::RosEkf is defined in ekf.cpp, which is compiled into a standalone library that's dynamically linked at run-time. (I.e., we don't have access to the definition for RobotLocalization::RosEkf.) There are a couple of ways to solve this: (1) we build model summaries for libraries and then refer back to those when building summaries for binaries (after doing a careful toposort); (2) we try to manually edit the node sources for ekf_localization_node to include ekf.cpp; if it works, that would be a quick fix.

  2. we don't model object state, so we can't tell what namespace is being used by nh or nh_priv inside RosEkf.

ChrisTimperley commented 2 years ago

@schmerl, I think that we agreed that this bug is out of the scope of the ICSA submission?