diff --git a/README.md b/README.md index b4a5f53e1bf..9a54b46ea4c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ -# navigation2 +# Navigation2 -ROS2 navigation +ROS2 Navigation + +# Contributing +Currently we are in the design phase, and are accepting input and requirements. To contribute, see the [design README.md](design/README.md) diff --git a/design/README.md b/design/README.md new file mode 100644 index 00000000000..1ad42a54359 --- /dev/null +++ b/design/README.md @@ -0,0 +1,15 @@ +# ROS2 Navigation design documentation +This is where the ROS2 Navigation design documentation is being collected and vetted + +# Use Cases +These are for defining how the user interacts with the system + +See the [use case template](use_cases/_template_use_case.md) + +# Requirements +These are for defining the technical requirements + +See the [requirement template](requirements/_template_requirement.md) + +# Contributing +To submit a request for a use case or requirement, copy and modify the template and submit a pull request for review diff --git a/design/requirements/_template_requirement.md b/design/requirements/_template_requirement.md new file mode 100644 index 00000000000..6b751e13921 --- /dev/null +++ b/design/requirements/_template_requirement.md @@ -0,0 +1,19 @@ +# Requirement Title +The \ should be able to \ \ + +## More details +- Why is this needed? +- What is the expected user interaction? +- What use case does this map to? +- Are there any non-functional requirements (build system, tools, performance, etc) + + +# Example: + +# Warehouse Navigation +The navigation system should include a modular collision avoidance algorithm that can be replaced with a new algorithm at run time + +## More details + - I want to be able to write or use my own collision avoidance algorithm without having to re-compile the entire stack from source + - Ideally I can just change out a node using a custom launch file + - This maps to the "Collision Avoidance" use case diff --git a/design/use_cases/_template_use_case.md b/design/use_cases/_template_use_case.md new file mode 100644 index 00000000000..3ac20b98970 --- /dev/null +++ b/design/use_cases/_template_use_case.md @@ -0,0 +1,16 @@ +# Use Case Title +As a \ I want the robot to \ so that \ can \ + +## More details +- Why is this needed? +- What is the expected user interaction? +- Are there any non-functional requirements? (build system, tools, performance, etc) + +# Example: + +# Warehouse Navigation +As a warehouse robot operator, I want the robot to navigate without colliding into people or objects so that it doesn't hurt anyone or damage anything + +## More details + - I want this so that I know the robot won't damage itself, damage property or hurt anyone + - I shouldn't have to interact with the robot to prevent it from crashing into people or things