Automated Environment Reduction for Debugging Robotic Systems
Clone this repo:
$ git clone https://github.com/MissMeriel/DDEnvInstall ros dependencies:
sudo apt install python3-pip sudo apt install ros-kinetic-robot-localization ros-kinetic-interactive-marker-twist-server ros-kinetic-controller-manager ros-kinetic-twist-mux ros-kinetic-move-base ros-kinetic-map-server ros-kinetic-move-base-msgs ros-kinetic-amcl ros-kinetic-joint-state-controller ros-kinetic-joint-state-publisher ros-kinetic-diff-drive-controller ros-kinetic-dwa-local-planner sudo apt install shutter sudo apt install libnet-dbus-glib-perlInstall sklearn for python3:
pip3 install --upgrade pip pip3 install --upgrade setuptools pip3 install --upgrade scikit-learnSeveral helper scripts are available to reduce runtime environment configuration. These helper scripts use the scenarios defined in the paper (published in ICRA 2021, preprint available here).
To recreate Table I of results in the paper, run:
$ cd world_parser/ $ ./results_runner.shThis will kick off a series of subscripts to perform reduction for each environment using each schema for prioritization and partitioning. The output of each script will be printed to a log file in the results directory and track the reduction of the world at each invocation of the schema. The final results look like the following:
TEST METRICS: Starting env size: 43 Minimal environment size: 2 Iterations to find minimal world: 17 Total number of worlds generated: 94 Total number of tests run: 35 Total number of reruns due to flakiness: 18 Total number of heterogeneous failures: 5 Total number of successful runs: 1 real 42m6.336s user 2m51.120s sys 0m52.033sTo recreate Figure 2 showing reduction over time of a scenario, run:
$ python gen_graph.py <logfile>This material is based in part upon work supported by the National Science Foundation under grant numbers #1924777 and #1853374.