{"action":"created","comment":{"url":"https://api.github.com/repos/ros-planning/navigation2/pulls/comments/199946514","pull_request_review_id":134165378,"id":199946514,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5OTk0NjUxNA==","diff_hunk":"@@ -0,0 +1,306 @@\n+![ROS2](../images/ros2-logo.png)\n+\n+# ROS 2 Navigation System Requirements\n+\n+The ROS 2 Navigation System (\"Navigation System\") is the control system that enables a robot to autonomously reach a goal state, such as a specific position and orientation relative to a specific map. Given a current pose, a map, and a goal, such as a destination pose, the navigation system generates a plan to reach the goal, and outputs commands to autonomously drive the robot, respecting any safety constraints and avoiding obstacles encountered along the way. \n+\n+This document lists the requirements for the ROS 2 Navigation System.\n+\n+# 1. Introduction\n+\n+This section describes the format of each requirement, the keywords used in the requirements, and the basic concepts needed to define and understand the requirements.\n+\n+## 1.1 Requirement Fields\n+\n+Each requirement is presented in tabular form with the following fields:\n+\n+* **Id** - A unique identifier for the requirement\n+* **Handle** - A short, scoped, description summarizing the essence of the requirement\n+* **Priority** - An associated priority level: **1** (high), **2** (medium), and **3** (low)\n+* **Requirement** - The requirement itself, stated in clear, concise requirements language\n+* **Notes** - Elaboration and related information for the requirement\n+\n+## 1.2 Requirement Language Keywords\n+\n+In the requirements specified below, certain keywords have a specific meaning as they appear in the text. These keywords are defined as follows and must be capitalized whenever used in a manner intended to specify a behavior or requirement.\n+\n+1. **MUST**: This word, or the terms \"REQUIRED\" or \"SHALL\", mean that the definition is an absolute requirement of the specification.\n+\n+2. **MUST NOT**: This phrase, or the phrase \"SHALL NOT\", mean that the definition is an absolute prohibition of the specification.\n+\n+3. **SHOULD**: This word, or the adjective \"RECOMMENDED\", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.\n+\n+4. **SHOULD NOT**: This phrase, or the phrase \"NOT RECOMMENDED\" mean that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.\n+\n+5. **MAY**: This word, or the adjective \"OPTIONAL\", mean that an item is truly optional.  One vendor may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product while another vendor may omit the same item. An implementation which does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality. In the same vein an implementation which does include a particular option MUST be prepared to interoperate with another implementation which does not include the option (except, of course, for the feature the option provides.)\n+\n+These definitions are derived from the IETF Best Current Practices Document #14.\n+\n+## 1.3 Use Cases\n+\n+The Navigation System is part of a larger system that involves a person or automated system (\"the user\") directing the operation of one or more robots. To provide context for the Navigation System, this section lists the expected interactions between the user and the robot system.  \n+\n+## 1.3.1 Mapping Use Cases\n+\n+The user will typically create a map of the area in which the robot is to navigate. This map identifies significant features of the environment, such as safety zones, known obstacles, walls, virtual lanes, etc. While the creation of the map itself is outside the scope of the Navigation System, the system is dependent on the map format(s). The map will need to be rich enough to support the Navigation System requirements listed in this document.\n+\n+The following use case diagram shows an example of the kinds of operations provided by a mapping interface.\n+\n+![Mapping Use Cases](./images/Mapping-Use-Cases.png)\n+\n+## 1.3.2 Mission Planning Use Cases\n+\n+Another area in which the user interacts with the system is in the creation of a mission plan for the robot. The user composes a sequence of primitive functions, such as **Navigate to Position**, **Navigate to Area**, **Wait**, etc., into an overall plan. While mission planning is also outside the scope of the Navigation Stack, the mission plan format should be sufficient to meet the Navigation System requirements listed in this document.\n+\n+![Mission Planning Use Cases](./images/Mission-Planning-Use-Cases.png)\n+\n+## 1.3.2 Mission Execution Use Cases\n+\n+The user will be able to initiate the execution of specific mission plans (\"missions\") and should also be able to view the status of the mission in progress, as well as cancel any mission that is in progress. In addition, the user may be required to provide the robot with its initial location if the robot is not able to determine it automatically.\n+\n+![Mission Execution Use Cases](./images/Mission-Execution-Use-Cases.png)\n+\n+## 1.4 Architectural Components\n+\n+The design of the ROS 2 Navigation System will attempt to generalize the navigation system from ROS 1 and address some of its limitations. While this document does not attempt to define the ROS 2 Navigation System architecture, there are some expected modules that are convenient to call out for the purposes of defining more detailed requirements for the system. It is useful to split these modules into two general categories: those that are involved in the *command chain*, where each level refines its command input into successively more specific operations for the lext level down, and those modules that are *support modules* used by modules in the command chain. \n+\n+## 1.4.1 Command Chain\n+\n+The command chain is the sequence of modules that comprise the chain of command from the user, at the top, to the robot, at the bottom.\n+\n+* **User** - The user interacts with a Mission Planning subsystem to specify a plan for the robot. \n+* **Mission Planning** - The Mission Planning module provides an interface to the user to allow the user to create mission plans. The resulting plans are available for assignment to robots and subsequent execution. The Mission Planning subsystem is outside the scope of the Navigation System. However, the data format, or messages, required to interact with the subsystem area within scope and must be specified as the Navigation System needs to receive this information to be able to execute the mission plans.\n+* **Mission Execution** - The Mission Execution module receives the mission plan as input and is responsible to execute it. It can select the appropriate global and local planners to use to perform each primitive maneuver. It also reports back progress on the execution of the mission plan. \n+* **Global Planning** - The Global Planning module, of which there could be several specialied implementations, use information from the map(s) to determine a route for the robot to achieve its goal.\n+* **Local Planning** - The Local Planning module, of which there could also be several specialized implementations, uses the defined route from the Global Planner and information from robot sensors to handle any required deviations from the route to achieve its goal. \n+* **Robot Interface** - The Robot Interface is an abstraction of the robot platform, providing the means to control the robot and learn about its capabilities. There should be a standard set of messages to control the robot and, perhaps, a standard way to determine a robot's capabilities and attributes. This may require a layer on top of the vendor interface.\n+\n+![Command Pipeline](./images/Command-Pipeline.png)\n+\n+## 1.4.2 Support Modules\n+\n+In addition to the main command chain, there are several supporting modules and subsystems required for a complete system. The implementation of these modules are all outside the scope of the Navigation System. However, the inteface to these components is in scope and the associated requirements are defined. \n+\n+* **Mapping** - The Navigation System uses a map to plan the robot's route. The map contains information about known (static) obstacles in the environment. The map is typically created in advance and is available to the Navigation System. The map can also be dynamically updated, to reflect the current state of the environment.\n+* **Sensing** - There is a sensing subsystem that can utilize various sensors (and sensor fusion), the goal of which is to develop an understanding of the dynamic environment around the robot. This information is available to the Navigation System, especially the Local Planning module, in directing the robot's motion.  \n+* **Localization** - The Navigation System also needs a Localization module to provide the current location of the robot. \n+\n+In a complete robot system these modules are utilized by the core navigation modules (the command chain). This document does not specify the architecture for the complete system, but simply names the various comonents and subsystems for the purpose of listing their associated requirements. The information provided by these modules should be available to all of the modules in the command pipeline.\n+\n+![Command Pipeline with Support](./images/Command-Pipeline-Support.png)\n+\n+To facilitate error recovery, each module in the chain, if it is unable to carry out its task, its able to propagate error information to its predecessor in the command chain.\n+\n+## 1.5 Design Goals\n+\n+The Navigation System designers should strive to meet the following high-level design goals:\n+\n+* **Modularity** - The Navigation Stack should allow for other implementers to easily replace architectural level components with alternative implementations, in particular, the global and local planners.\n+* **Portability** - The Navigation Stack should not introduce inherent limitations in the architectural blocks. For example, it should support multiple kinds of robots, not making assumptions about robot capabilities and limitations and should support various map types and orientations.\n+* **Performance** - *TODO: What are the performance goals?* \n+* **Scalability** - *TODO: How low should the implementation scale?* *Specify a minimum platform?*\n+* *Other important design goals?*\n+\n+In particular, there are several specific goals for the ROS 2 Navigation System with respect to improving the existing ROS navigation stack:\n+\n+* The global and local planners should be easy to replace and chain together in a dynamic way. For example, a user may want to have a global planner for classic point-A-to-point-B travel, but upon reaching point B, have a special planner then control a series of maneuvers such as docking to a charging station or a conveyor belt. \n+* The user should be able to plan complex missions which include a series of movements, and the Navigation System should be able to accept those mission plans and execute them. \n+* The user should be able to specify different types of Robot drive types, such as Ackerman (automobile) steering, and Robot shapes (the current navigation stack is very limited in these areas).\n+* The Navigation System should be able to handle more map types and orientations, including outdoor and 2D+ terrain.\n+\n+# 2.0 Requirements\n+\n+This section lists the requirements for the Navigation System.\n+\n+## 2.1 Implementation Constraints\n+\n+There are various constraints on the development of the ROS 2 Navigation stack.\n+\n+Id | Handle | Priority | Description | Notes\n+-- | ------ | -------- | ----------- | -----\n+IC001 | Developer's Guide | 1 | The Navigation System SHALL be developed in accordance with the ROS 2 Devloper's Guide | [ROS 2 Developer's Guide](https://github.com/ros2/ros2/wiki/Developer-Guide)\n+IC002 | Implementation Language.C++.Version | 1 | Developers SHALL assume the availability of C++14 language features | Per the ROS 2 Developer's Guide\n+IC003 | Implementation Language.C++.API Preference | 1 | Developers SHALL prefer standard C++, then Boost, then custom code, in that order. | Boost may be used if equivalent functionality is not already available in the C++ standard library\n+IC004 | Implementation Language.C++.Supported Compilers.g++ | 1 | The Navigation System code SHALL compile with gcc 5.4 or newer\n+IC004 | Implementation Language.C++.Supported Compilers.Clang | 1 | The Navigation System code SHALL compile with Clang, version *x*\n+IC004 | Implementation Language.C++.Supported Compilers.Intel C++ Compiler | 1 | The Navigation System code SHOULD compile with the Intel C++ Compiler, version *x* | Could be useful for optimization purposes\n+IC005 | Implementation Language.Python.Version | 1 | Any Python code developed for the Navigation System MUST use Python 3\n+IC006 | Implementation Language.GUI | 1 | Any GUIs developed as part of the Navigation System MUST use the Qt library, via C++ or Python (PyQt) | *Which version?*\n+IC006 | Implementation Language.GUI.QML | 1 | Any GUIs developed as part of the Navigation System MAY use QML\n+\n+## 2.2 Development Tools\n+\n+This section specifies the development tools and associated targets that will be used for the project.\n+\n+Id | Handle | Priority | Description | Notes\n+-- | ------ | -------- | ----------- | -----\n+DEV001 | Tools.ROS2.Version | 1 | The Navigation System WILL be developed against the latest stable version of the ROS 2 stack | *What is the current latest version?*\n+DEV002 | Tools.Unit Test.Library | 1 | *TODO: GTest and GMock?*\n+DEV003 | Tools.Unit Test.Module Requirements | 1 | *TODO: What are the module level requirements?*\n+DEV004 | Tools.Static Analysis | 1 | *TODO: What is the static analysis tool to use?*\n+DEV005 | Tools.Static Analysis.Quality Targets | 1 | *TODO: What are the static analysis targets?*\n+DEV006 | Tools.Dynamic Analysis | 1 | *TODO: What dynamic analysis tool(s) to use?*\n+DEV007 | Tools.Dynamic Analysis.Code Coverage Targets | 1 | *TODO: What are the code coverage targets?*\n+DEV008 | Tools.Dynamic Analysis.Memory Checking | 1 | *TODO: What is/are the memory checking tool(s) to use?*\n+\n+## 2.3 Target Platforms\n+\n+The Navigation System will run on the latest versions of the operating systems supported by the core ROS 2 code.\n+\n+Id | Handle | Priority | Description | Notes\n+-- | ------ | -------- | ----------- | -----\n+PLT001 | Target Platforms.Operating Systems.Ubuntu | 1 | The Navigation System MUST support Ubuntu Desktop 16.04 and Ubuntu Desktop 18.04\n+PLT002 | Target Platforms.Operating Systems.MacOS | 1 | The Navigation System MUST support MacOS 10.13 (High Sierra) and MacOS 10.14 (Mohave)\n+PLT003 | Target Platforms.Operating Systems.Windows | 1 | The Navigation System MUST support Windows 10 Professional\n+PLT004 | Target Platforms.Operating Systems.Clear Linux | 1 | The Navigation System SHOULD support the latest version of Intel's Clear Linux distribution | What is the latest version number?\n+PLT005 | Target Platforms.CPU.Word Size | 1 | The Navigation System SHALL support 64-bit processors | Don't assume a specific pointer size\n+PLT006 | Target Platforms.Minimum Platform | 1 | *Should we specify a minimum target platform?* *Or, should this be expressed as minimum platform requirements?*\n+\n+## 2.4 Command Chain Modules\n+\n+This section lists the requirements for the core command chain modules in the Navigation System.\n+\n+### 2.4.1 Mission Planning\n+\n+A complete system, which incorporates the Navigation System, would also have a Mission Planning subsystem that generates a Mission Plan from input provided by the User. The Mission Plan is a sequence of primitive operations and any associated policy about how the plan should be carried out. The design and implementation of the subsystem that creates the Mission Plan is outside the scope of the Navigation System, but its output, the Mission Plan, has a direct relationship to the capabilities that the Navigation System must provide. \n+\n+Id | Handle | Priority | Description | Notes\n+-- | ------ | -------- | ----------- | -----\n+MP001 | Mission Planning.Primitives | 1 | The Mission Plan MUST be able to express the plan as a sequence of the following Primitives (MP002 - MP010)\n+MP002 | Mission Planning.Primitives.Navigate to Position | 1 | The Navigation System MUST be able to navigate the Robot from its current location to a specified destination pose.","path":"doc/requirements/requirements.md","position":170,"original_position":170,"commit_id":"1654264ebfb077fb89085712b69490c7742f3f31","original_commit_id":"1654264ebfb077fb89085712b69490c7742f3f31","user":{"login":"crdelsey","id":39749483,"node_id":"MDQ6VXNlcjM5NzQ5NDgz","avatar_url":"https://avatars1.githubusercontent.com/u/39749483?v=4","gravatar_id":"","url":"https://api.github.com/users/crdelsey","html_url":"https://github.com/crdelsey","followers_url":"https://api.github.com/users/crdelsey/followers","following_url":"https://api.github.com/users/crdelsey/following{/other_user}","gists_url":"https://api.github.com/users/crdelsey/gists{/gist_id}","starred_url":"https://api.github.com/users/crdelsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crdelsey/subscriptions","organizations_url":"https://api.github.com/users/crdelsey/orgs","repos_url":"https://api.github.com/users/crdelsey/repos","events_url":"https://api.github.com/users/crdelsey/events{/privacy}","received_events_url":"https://api.github.com/users/crdelsey/received_events","type":"User","site_admin":false},"body":"What if the planner can't find a path? Then we can't meet this requirement.","created_at":"2018-07-03T20:52:26Z","updated_at":"2018-07-03T20:52:26Z","html_url":"https://github.com/ros-planning/navigation2/pull/5#discussion_r199946514","pull_request_url":"https://api.github.com/repos/ros-planning/navigation2/pulls/5","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/comments/199946514"},"html":{"href":"https://github.com/ros-planning/navigation2/pull/5#discussion_r199946514"},"pull_request":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/5"}}},"pull_request":{"url":"https://api.github.com/repos/ros-planning/navigation2/pulls/5","id":199013089,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk5MDEzMDg5","html_url":"https://github.com/ros-planning/navigation2/pull/5","diff_url":"https://github.com/ros-planning/navigation2/pull/5.diff","patch_url":"https://github.com/ros-planning/navigation2/pull/5.patch","issue_url":"https://api.github.com/repos/ros-planning/navigation2/issues/5","number":5,"state":"open","locked":false,"title":"Add the requirements document","user":{"login":"mjeronimo","id":865395,"node_id":"MDQ6VXNlcjg2NTM5NQ==","avatar_url":"https://avatars0.githubusercontent.com/u/865395?v=4","gravatar_id":"","url":"https://api.github.com/users/mjeronimo","html_url":"https://github.com/mjeronimo","followers_url":"https://api.github.com/users/mjeronimo/followers","following_url":"https://api.github.com/users/mjeronimo/following{/other_user}","gists_url":"https://api.github.com/users/mjeronimo/gists{/gist_id}","starred_url":"https://api.github.com/users/mjeronimo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjeronimo/subscriptions","organizations_url":"https://api.github.com/users/mjeronimo/orgs","repos_url":"https://api.github.com/users/mjeronimo/repos","events_url":"https://api.github.com/users/mjeronimo/events{/privacy}","received_events_url":"https://api.github.com/users/mjeronimo/received_events","type":"User","site_admin":false},"body":"Adding a requirements document and starting to add some directory structure (placeholders). ","created_at":"2018-07-03T16:05:06Z","updated_at":"2018-07-03T20:52:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4cac3c0ceaaee825afbdc91b2054544de77cb016","assignee":null,"assignees":[],"requested_reviewers":[{"login":"mkhansen-intel","id":12618239,"node_id":"MDQ6VXNlcjEyNjE4MjM5","avatar_url":"https://avatars1.githubusercontent.com/u/12618239?v=4","gravatar_id":"","url":"https://api.github.com/users/mkhansen-intel","html_url":"https://github.com/mkhansen-intel","followers_url":"https://api.github.com/users/mkhansen-intel/followers","following_url":"https://api.github.com/users/mkhansen-intel/following{/other_user}","gists_url":"https://api.github.com/users/mkhansen-intel/gists{/gist_id}","starred_url":"https://api.github.com/users/mkhansen-intel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkhansen-intel/subscriptions","organizations_url":"https://api.github.com/users/mkhansen-intel/orgs","repos_url":"https://api.github.com/users/mkhansen-intel/repos","events_url":"https://api.github.com/users/mkhansen-intel/events{/privacy}","received_events_url":"https://api.github.com/users/mkhansen-intel/received_events","type":"User","site_admin":false},{"login":"orduno","id":39749557,"node_id":"MDQ6VXNlcjM5NzQ5NTU3","avatar_url":"https://avatars3.githubusercontent.com/u/39749557?v=4","gravatar_id":"","url":"https://api.github.com/users/orduno","html_url":"https://github.com/orduno","followers_url":"https://api.github.com/users/orduno/followers","following_url":"https://api.github.com/users/orduno/following{/other_user}","gists_url":"https://api.github.com/users/orduno/gists{/gist_id}","starred_url":"https://api.github.com/users/orduno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orduno/subscriptions","organizations_url":"https://api.github.com/users/orduno/orgs","repos_url":"https://api.github.com/users/orduno/repos","events_url":"https://api.github.com/users/orduno/events{/privacy}","received_events_url":"https://api.github.com/users/orduno/received_events","type":"User","site_admin":false},{"login":"mhpanah","id":39755151,"node_id":"MDQ6VXNlcjM5NzU1MTUx","avatar_url":"https://avatars0.githubusercontent.com/u/39755151?v=4","gravatar_id":"","url":"https://api.github.com/users/mhpanah","html_url":"https://github.com/mhpanah","followers_url":"https://api.github.com/users/mhpanah/followers","following_url":"https://api.github.com/users/mhpanah/following{/other_user}","gists_url":"https://api.github.com/users/mhpanah/gists{/gist_id}","starred_url":"https://api.github.com/users/mhpanah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhpanah/subscriptions","organizations_url":"https://api.github.com/users/mhpanah/orgs","repos_url":"https://api.github.com/users/mhpanah/repos","events_url":"https://api.github.com/users/mhpanah/events{/privacy}","received_events_url":"https://api.github.com/users/mhpanah/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ros-planning/navigation2/pulls/5/commits","review_comments_url":"https://api.github.com/repos/ros-planning/navigation2/pulls/5/comments","review_comment_url":"https://api.github.com/repos/ros-planning/navigation2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ros-planning/navigation2/issues/5/comments","statuses_url":"https://api.github.com/repos/ros-planning/navigation2/statuses/1654264ebfb077fb89085712b69490c7742f3f31","head":{"label":"mjeronimo:master","ref":"master","sha":"1654264ebfb077fb89085712b69490c7742f3f31","user":{"login":"mjeronimo","id":865395,"node_id":"MDQ6VXNlcjg2NTM5NQ==","avatar_url":"https://avatars0.githubusercontent.com/u/865395?v=4","gravatar_id":"","url":"https://api.github.com/users/mjeronimo","html_url":"https://github.com/mjeronimo","followers_url":"https://api.github.com/users/mjeronimo/followers","following_url":"https://api.github.com/users/mjeronimo/following{/other_user}","gists_url":"https://api.github.com/users/mjeronimo/gists{/gist_id}","starred_url":"https://api.github.com/users/mjeronimo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjeronimo/subscriptions","organizations_url":"https://api.github.com/users/mjeronimo/orgs","repos_url":"https://api.github.com/users/mjeronimo/repos","events_url":"https://api.github.com/users/mjeronimo/events{/privacy}","received_events_url":"https://api.github.com/users/mjeronimo/received_events","type":"User","site_admin":false},"repo":{"id":136200210,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyMDAyMTA=","name":"navigation2","full_name":"mjeronimo/navigation2","owner":{"login":"mjeronimo","id":865395,"node_id":"MDQ6VXNlcjg2NTM5NQ==","avatar_url":"https://avatars0.githubusercontent.com/u/865395?v=4","gravatar_id":"","url":"https://api.github.com/users/mjeronimo","html_url":"https://github.com/mjeronimo","followers_url":"https://api.github.com/users/mjeronimo/followers","following_url":"https://api.github.com/users/mjeronimo/following{/other_user}","gists_url":"https://api.github.com/users/mjeronimo/gists{/gist_id}","starred_url":"https://api.github.com/users/mjeronimo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjeronimo/subscriptions","organizations_url":"https://api.github.com/users/mjeronimo/orgs","repos_url":"https://api.github.com/users/mjeronimo/repos","events_url":"https://api.github.com/users/mjeronimo/events{/privacy}","received_events_url":"https://api.github.com/users/mjeronimo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mjeronimo/navigation2","description":null,"fork":true,"url":"https://api.github.com/repos/mjeronimo/navigation2","forks_url":"https://api.github.com/repos/mjeronimo/navigation2/forks","keys_url":"https://api.github.com/repos/mjeronimo/navigation2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mjeronimo/navigation2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mjeronimo/navigation2/teams","hooks_url":"https://api.github.com/repos/mjeronimo/navigation2/hooks","issue_events_url":"https://api.github.com/repos/mjeronimo/navigation2/issues/events{/number}","events_url":"https://api.github.com/repos/mjeronimo/navigation2/events","assignees_url":"https://api.github.com/repos/mjeronimo/navigation2/assignees{/user}","branches_url":"https://api.github.com/repos/mjeronimo/navigation2/branches{/branch}","tags_url":"https://api.github.com/repos/mjeronimo/navigation2/tags","blobs_url":"https://api.github.com/repos/mjeronimo/navigation2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mjeronimo/navigation2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mjeronimo/navigation2/git/refs{/sha}","trees_url":"https://api.github.com/repos/mjeronimo/navigation2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mjeronimo/navigation2/statuses/{sha}","languages_url":"https://api.github.com/repos/mjeronimo/navigation2/languages","stargazers_url":"https://api.github.com/repos/mjeronimo/navigation2/stargazers","contributors_url":"https://api.github.com/repos/mjeronimo/navigation2/contributors","subscribers_url":"https://api.github.com/repos/mjeronimo/navigation2/subscribers","subscription_url":"https://api.github.com/repos/mjeronimo/navigation2/subscription","commits_url":"https://api.github.com/repos/mjeronimo/navigation2/commits{/sha}","git_commits_url":"https://api.github.com/repos/mjeronimo/navigation2/git/commits{/sha}","comments_url":"https://api.github.com/repos/mjeronimo/navigation2/comments{/number}","issue_comment_url":"https://api.github.com/repos/mjeronimo/navigation2/issues/comments{/number}","contents_url":"https://api.github.com/repos/mjeronimo/navigation2/contents/{+path}","compare_url":"https://api.github.com/repos/mjeronimo/navigation2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mjeronimo/navigation2/merges","archive_url":"https://api.github.com/repos/mjeronimo/navigation2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mjeronimo/navigation2/downloads","issues_url":"https://api.github.com/repos/mjeronimo/navigation2/issues{/number}","pulls_url":"https://api.github.com/repos/mjeronimo/navigation2/pulls{/number}","milestones_url":"https://api.github.com/repos/mjeronimo/navigation2/milestones{/number}","notifications_url":"https://api.github.com/repos/mjeronimo/navigation2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mjeronimo/navigation2/labels{/name}","releases_url":"https://api.github.com/repos/mjeronimo/navigation2/releases{/id}","deployments_url":"https://api.github.com/repos/mjeronimo/navigation2/deployments","created_at":"2018-06-05T15:45:03Z","updated_at":"2018-07-03T15:57:39Z","pushed_at":"2018-07-03T15:57:38Z","git_url":"git://github.com/mjeronimo/navigation2.git","ssh_url":"git@github.com:mjeronimo/navigation2.git","clone_url":"https://github.com/mjeronimo/navigation2.git","svn_url":"https://github.com/mjeronimo/navigation2","homepage":null,"size":474,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ros-planning:master","ref":"master","sha":"fa9adfaf9e785242e126705ab2d5df07c1eb83a4","user":{"login":"ros-planning","id":2328631,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMjg2MzE=","avatar_url":"https://avatars2.githubusercontent.com/u/2328631?v=4","gravatar_id":"","url":"https://api.github.com/users/ros-planning","html_url":"https://github.com/ros-planning","followers_url":"https://api.github.com/users/ros-planning/followers","following_url":"https://api.github.com/users/ros-planning/following{/other_user}","gists_url":"https://api.github.com/users/ros-planning/gists{/gist_id}","starred_url":"https://api.github.com/users/ros-planning/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ros-planning/subscriptions","organizations_url":"https://api.github.com/users/ros-planning/orgs","repos_url":"https://api.github.com/users/ros-planning/repos","events_url":"https://api.github.com/users/ros-planning/events{/privacy}","received_events_url":"https://api.github.com/users/ros-planning/received_events","type":"Organization","site_admin":false},"repo":{"id":135363400,"node_id":"MDEwOlJlcG9zaXRvcnkxMzUzNjM0MDA=","name":"navigation2","full_name":"ros-planning/navigation2","owner":{"login":"ros-planning","id":2328631,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMjg2MzE=","avatar_url":"https://avatars2.githubusercontent.com/u/2328631?v=4","gravatar_id":"","url":"https://api.github.com/users/ros-planning","html_url":"https://github.com/ros-planning","followers_url":"https://api.github.com/users/ros-planning/followers","following_url":"https://api.github.com/users/ros-planning/following{/other_user}","gists_url":"https://api.github.com/users/ros-planning/gists{/gist_id}","starred_url":"https://api.github.com/users/ros-planning/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ros-planning/subscriptions","organizations_url":"https://api.github.com/users/ros-planning/orgs","repos_url":"https://api.github.com/users/ros-planning/repos","events_url":"https://api.github.com/users/ros-planning/events{/privacy}","received_events_url":"https://api.github.com/users/ros-planning/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ros-planning/navigation2","description":"ROS2 Navigation","fork":false,"url":"https://api.github.com/repos/ros-planning/navigation2","forks_url":"https://api.github.com/repos/ros-planning/navigation2/forks","keys_url":"https://api.github.com/repos/ros-planning/navigation2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ros-planning/navigation2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ros-planning/navigation2/teams","hooks_url":"https://api.github.com/repos/ros-planning/navigation2/hooks","issue_events_url":"https://api.github.com/repos/ros-planning/navigation2/issues/events{/number}","events_url":"https://api.github.com/repos/ros-planning/navigation2/events","assignees_url":"https://api.github.com/repos/ros-planning/navigation2/assignees{/user}","branches_url":"https://api.github.com/repos/ros-planning/navigation2/branches{/branch}","tags_url":"https://api.github.com/repos/ros-planning/navigation2/tags","blobs_url":"https://api.github.com/repos/ros-planning/navigation2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ros-planning/navigation2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ros-planning/navigation2/git/refs{/sha}","trees_url":"https://api.github.com/repos/ros-planning/navigation2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ros-planning/navigation2/statuses/{sha}","languages_url":"https://api.github.com/repos/ros-planning/navigation2/languages","stargazers_url":"https://api.github.com/repos/ros-planning/navigation2/stargazers","contributors_url":"https://api.github.com/repos/ros-planning/navigation2/contributors","subscribers_url":"https://api.github.com/repos/ros-planning/navigation2/subscribers","subscription_url":"https://api.github.com/repos/ros-planning/navigation2/subscription","commits_url":"https://api.github.com/repos/ros-planning/navigation2/commits{/sha}","git_commits_url":"https://api.github.com/repos/ros-planning/navigation2/git/commits{/sha}","comments_url":"https://api.github.com/repos/ros-planning/navigation2/comments{/number}","issue_comment_url":"https://api.github.com/repos/ros-planning/navigation2/issues/comments{/number}","contents_url":"https://api.github.com/repos/ros-planning/navigation2/contents/{+path}","compare_url":"https://api.github.com/repos/ros-planning/navigation2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ros-planning/navigation2/merges","archive_url":"https://api.github.com/repos/ros-planning/navigation2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ros-planning/navigation2/downloads","issues_url":"https://api.github.com/repos/ros-planning/navigation2/issues{/number}","pulls_url":"https://api.github.com/repos/ros-planning/navigation2/pulls{/number}","milestones_url":"https://api.github.com/repos/ros-planning/navigation2/milestones{/number}","notifications_url":"https://api.github.com/repos/ros-planning/navigation2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ros-planning/navigation2/labels{/name}","releases_url":"https://api.github.com/repos/ros-planning/navigation2/releases{/id}","deployments_url":"https://api.github.com/repos/ros-planning/navigation2/deployments","created_at":"2018-05-29T23:35:08Z","updated_at":"2018-06-25T13:36:49Z","pushed_at":"2018-07-03T16:05:07Z","git_url":"git://github.com/ros-planning/navigation2.git","ssh_url":"git@github.com:ros-planning/navigation2.git","clone_url":"https://github.com/ros-planning/navigation2.git","svn_url":"https://github.com/ros-planning/navigation2","homepage":"","size":18,"stargazers_count":16,"watchers_count":16,"language":null,"has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":2,"license":null,"forks":4,"open_issues":2,"watchers":16,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/5"},"html":{"href":"https://github.com/ros-planning/navigation2/pull/5"},"issue":{"href":"https://api.github.com/repos/ros-planning/navigation2/issues/5"},"comments":{"href":"https://api.github.com/repos/ros-planning/navigation2/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ros-planning/navigation2/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/ros-planning/navigation2/statuses/1654264ebfb077fb89085712b69490c7742f3f31"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"crdelsey"}}