Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback requested - Initial design documents templates #1

Merged
merged 9 commits into from
Jun 5, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)
15 changes: 15 additions & 0 deletions design/README.md
Original file line number Diff line number Diff line change
@@ -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
19 changes: 19 additions & 0 deletions design/requirements/_template_requirement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Requirement Title
The \<navigation system> should be able to \<shall> \<do something>

## 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
16 changes: 16 additions & 0 deletions design/use_cases/_template_use_case.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Use Case Title
As a \<Developer, Researcher, Technician, etc.> I want the robot to \<action> so that \<I, the robot, etc.> can \<do something important>

## 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