cmu-rss-lab / rosdiscover-evaluation

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

RQ1 Satisfaction #23

Open schmerl opened 3 years ago

schmerl commented 3 years ago

Let's use this issue to keep track of the activities we need to do for RQ1. As I understand it, we need to:

schmerl commented 3 years ago

Besides this, are we planning to do a depth first approach or breadth first, i.e., get all the containers up and running then move onto the next step, or get autorally up and running and then do recovering and model creation and then assessment on that, then repeat with another container, and so on?

ChrisTimperley commented 3 years ago

I think that a depth-first approach is probably the best use of our time. Plus we're close to being finished with the pipeline. The biggest TODO item is to figure out the best way that we should obtain the ground truth architecture for a given system. Perhaps we can create a separate issue for that task specifically and discuss a few different approaches before settling on one?

schmerl commented 3 years ago

For architecture-level accuracy, I guess there are two options on the table:

  1. Manually run the robot in the set of containers, and use rosdiscover observe to generate the architecture in Acme. We'd then need to understand the difference between the observed and recovered architecture. Let me see if I can find the work we did on architecture differenciing over a decade ago.
  2. Manually check the architecture connections that are generated by rosdiscover against the components that are output.

1 is probably the best, but I'm not sure how the differencing will actually go.

ChrisTimperley commented 3 years ago

For generating the ground truth, it would be good for a bunch of reasons (e.g., reproducibility, sanity checking, scalability) if we could run the experiments either automatically or semi-automatically. We almost certainly want to use the same launch config to bring up the system, otherwise we're not comparing apples to apples.

As @schmerl pointed out, though, we may want to do more than simply launching the robot. E.g., we may want to instruct it to follow some basic instructions, navigate to a waypoint, etc. At a minimum, we should provide a description of this task for each RQ1 system in the corresponding experiment.yml file. Potentially, we could automate this process by allowing each RQ1 experiment.yml to specify an inline bash script for interacting with the robot. We would likely need to use sleep/timeouts rather than waiting for events to occur (e.g., reaching a particular destination), but that shouldn't be too much trouble.

run-script: >
  rosservice call ...
  sleep 30s
ChrisTimperley commented 3 years ago

Regardless of approach, we'll also want to update the observe command to:

schmerl commented 3 years ago

The periodic observation has been implemented. Currently, the architecture isn't emitted until the observation period has finished (if --num-observations is specified, then the number of observations; if it isn't specified, then until Ctrl-C is pressed.

ChrisTimperley commented 3 years ago

Related to the second item in this list, I've created a separate issue: https://github.com/rosqual/rosdiscover-evaluation/issues/31