Open schmerl opened 3 years ago
Note that I am trying to reproduce this on the husky:0.4.10
image.
This is a tricky one to solve. It's not really a case of missing publisher/subscriber calls. nodelet::Loader::load
is loading the plugin for a given node at runtime. To deal with this case, we would want to capture and symbolically represent calls to that API method (e.g., LoadNodelet(:[name], :[type])
). On the C++ side, I don't think that should be too much trouble. On the ROSDiscover side, we would need to add an ability to load nodelets (and ensure the right semantics) as part of the interpreter.
This is definitely solvable by the paper deadline, but is more of a "medium" difficulty.
The misconfiguration is in
spawn_husky.launch
. In the working system, it turns to be inrealsense.launch
.Looking at the node model for
pointcloud_to_laserscan_node
, we do not capture the topic for this during static analysis. See:ros_ws/src/pointcloud_to_laserscan/src/pointcloud_to_laserscan_node.cpp
:Probably we don't handle
nodelet.load
.