Skip to content

This repository includes a ROS 2 accountability and explainability solution based on the use of its topics. This approach aims to identify the causes that have triggered a set of specific events, providing to the final user a non-expert explanation.

License

Notifications You must be signed in to change notification settings

uleroboticsgroup/nav2_accountability_explainability

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nav2_accountability_explainability

This repository includes a ROS 2 accountability and explainability solution based on the use of its topics. This approach aims to identify the causes that have triggered a set of specific events, providing to the final user a non-expert explanation.

Software artifacts

ROS 2 Humble

RB1 simulator for ROS 2

AWS RoboMaker Hospital World ROS package available here.

The following images show the floor plan of the scenario used in the development of this work, including in the second one an obstacle in the route initially calculated to reach the goal destination. This obstacle will force the change of the pre-computed path.

imagen

imagen

Usage

Accountability solution

After starting the simulation, black-box recording information service can be started with the command

ros2 launch bag_recorder bag_recorder.launch.py 

The previous recording service can be started and stopped by running

ros2 service call /bag_recorder std_srvs/srv/SetBool data:\ true
ros2 service call /bag_recorder std_srvs/srv/SetBool data:\ false

To start the recording process only when it would be an obstacle, it must be run

ros2 run bag_recorder bag_recorder_scan_client

To start the recording process only when a nav2 behavior tree node would be in FAILURE status, it must be run

ros2 run bag_recorder bag_recorder_btstatus_client

The navigation goal pose, can be sent by running

ros2 run goal_sender nav_to_pose_action_client 

The reproducibility of the recorded information can be tested with the command

ros2 bag play <path to rosbag file>

A sample of the recorded data can be found here.

Explainability solution

After starting the simulation, explainability service can be started with the command

ros2 launch navigation_explainer navigation_explainer_srv.launch.py 

Explanations can be obtained by running

ros2 run navigation_explainer navigation_explainer_client "What is the current navigation status?"
ros2 run navigation_explainer navigation_explainer_client "Why have you changed the planned path?"

Output example

Explanations obtained before sending a goal pose

Next is shown the explanation service's output in the initial navigation state where no goal pose has been sent. A graphical representation of this state in the Rviz2 tool is displayed in the following image.

ros2 run navigation_explainer navigation_explainer_client "What is the current navigation status?"
[INFO] [1679254837.887102801] [navigation_explainer_client]: 'No navigation is running'
ros2 run navigation_explainer navigation_explainer_client "Why have you changed the planned path?"
[INFO] [1679254848.061037165] [navigation_explainer_client]: 'I have not changed the planned path'

imagen

Explanations obtained while navigation is in progress

Next is shown the explanation service's output when sending a goal pose, and the navigation is in progress. A graphical representation of this state in the Rviz2 tool is displayed in the following image.

ros2 run navigation_explainer navigation_explainer_client "What is the current navigation status?"
[INFO] [1679255510.444170839] [navigation_explainer_client]: 'Navigation to the goal is in progress.'
ros2 run navigation_explainer navigation_explainer_client Why have you changed the planned path?"
[INFO] [1679255502.212077103] [navigation_explainer_client]: 'I have not changed the planned path'

imagen

Explanations obtained when an obstacle is detected

Next is shown the explanation service's output when an obstacle is detected. A graphical representation of this state in the Rviz2 tool is displayed in the following images.

ros2 run navigation_explainer navigation_explainer_client "What is the current navigation status?"
[INFO] [1679255690.249576203] [navigation_explainer_client]: 'Navigation to the goal is in progress.'
ros2 run navigation_explainer navigation_explainer_client "Why have you changed the planned path?"
[INFO] [1679255693.275863200] [navigation_explainer_client]: 'I have changed the planned path because there was an obstacle. Then, I followed a new path to the goal pose.'

imagen imagen

Explanations obtained when the navigation ends

Next is shown the explanation service's output when the navigation has successfully ended. A graphical representation of this state in the Rviz2 tool is displayed in the following image.

ros2 run navigation_explainer navigation_explainer_client "What is the current navigation status?"
[INFO] [1679255808.341188660] [navigation_explainer_client]: 'Navigation to the goal has succeeded.'
ros2 run navigation_explainer navigation_explainer_client "Why have you changed the planned path?"
[INFO] [1679255805.321852201] [navigation_explainer_client]: 'I have changed the planned path because there was an obstacle. Then, I followed a new path to the goal pose.'

imagen

Acknowledgments

DMARCE_logo drawio

DMARCE (EDMAR+CASCAR) Project: EDMAR PID2021-126592OB-C21 -- CASCAR PID2021-126592OB-C22 funded by MCIN/AEI/10.13039/501100011033 and by ERDF A way of making Europe

DMARCE_EU eu_logo

TESCAC

About

This repository includes a ROS 2 accountability and explainability solution based on the use of its topics. This approach aims to identify the causes that have triggered a set of specific events, providing to the final user a non-expert explanation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published