{"action":"created","comment":{"url":"https://api.github.com/repos/ompl/ompl/pulls/comments/25123165","id":25123165,"diff_hunk":"@@ -0,0 +1,205 @@\n+/*********************************************************************\n+ * Software License Agreement (BSD License)\n+ *\n+ *  Copyright (c) 2014, University of Colorado, Boulder\n+ *  All rights reserved.\n+ *\n+ *  Redistribution and use in source and binary forms, with or without\n+ *  modification, are permitted provided that the following conditions\n+ *  are met:\n+ *\n+ *   * Redistributions of source code must retain the above copyright\n+ *     notice, this list of conditions and the following disclaimer.\n+ *   * Redistributions in binary form must reproduce the above\n+ *     copyright notice, this list of conditions and the following\n+ *     disclaimer in the documentation and/or other materials provided\n+ *     with the distribution.\n+ *   * Neither the name of the Univ of CO, Boulder nor the names of its\n+ *     contributors may be used to endorse or promote products derived\n+ *     from this software without specific prior written permission.\n+ *\n+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *  \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n+ *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+ *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+ *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n+ *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n+ *  POSSIBILITY OF SUCH DAMAGE.\n+ *********************************************************************/\n+\n+/* Author: Dave Coleman */\n+\n+#ifndef OMPL_GEOMETRIC_PLANNERS_EXPERIENCE_LRR_\n+#define OMPL_GEOMETRIC_PLANNERS_EXPERIENCE_LRR_\n+\n+#include \"ompl/geometric/planners/PlannerIncludes.h\"\n+#include \"ompl/geometric/PathGeometric.h\"\n+#include \"ompl/geometric/PathSimplifier.h\"\n+#include \"ompl/datastructures/NearestNeighbors.h\"\n+\n+namespace ompl\n+{\n+    namespace tools\n+    {\n+        OMPL_CLASS_FORWARD(LightningDB);\n+    }\n+\n+    namespace geometric\n+    {\n+\n+        /// @cond IGNORE\n+        /** \\brief Forward declaration of ompl::base::LRR */\n+        OMPL_CLASS_FORWARD(LRR);\n+        /// @endcond\n+\n+        /** \\class ompl::base::LRRPtr\n+            \\brief A boost shared pointer wrapper for ompl::base::LRR */\n+\n+        /**\n+           @anchor LRR - Lightning Retrieve Repair\n+           @par Short description\n+           LRR is a experienced-based motion planner that recalls from a database of\n+           previous actions the most similar one to the current planning problem and attempts to repair it\n+           @par External documentation\n+           Berenson, Dmitry, Pieter Abbeel, and Ken Goldberg: A robot path planning framework that learns from experience, in <em>Robotics and Automation (ICRA), 2012 IEEE International Conference on. IEEE</em>, 2012.\n+           <a href=\"http://users.wpi.edu/~dberenson/lightning.pdf\">[PDF]</a>\n+        */\n+\n+        /** \\brief The Lightning Framework's Retrieve-Repair component */\n+        class LRR : public base::Planner\n+        {\n+        public:\n+\n+            /** \\brief Constructor */\n+            LRR(const base::SpaceInformationPtr &si, const ompl::tools::LightningDBPtr &experienceDB);\n+\n+            virtual ~LRR(void);\n+\n+            /** \\brief Get information about the exploration data structure the planning from scratch motion planner used. */\n+            virtual void getPlannerData(base::PlannerData &data) const;\n+\n+            /**\n+             *  \\brief Get debug information about the top recalled paths that were chosen for further filtering\n+             *  \\return data - vector of PlannerData objects that each hold a single path\n+             */\n+            const std::vector<base::PlannerDataPtr>& getLastRecalledNearestPaths() const;\n+\n+            /**\n+             *  \\brief Get debug information about the top recalled paths that were chosen for further filtering\n+             *  \\return chosenID - the index of the PlannerData object that was chosen for repair\n+             */\n+            const std::size_t& getLastRecalledNearestPathChosen() const;","path":"src/ompl/geometric/planners/experience/LRR.h","position":96,"original_position":96,"commit_id":"4aac3c2a2535f502031c13fb49961087a1000ffb","original_commit_id":"4aac3c2a2535f502031c13fb49961087a1000ffb","user":{"login":"isucan","id":1406804,"avatar_url":"https://avatars.githubusercontent.com/u/1406804?v=3","gravatar_id":"","url":"https://api.github.com/users/isucan","html_url":"https://github.com/isucan","followers_url":"https://api.github.com/users/isucan/followers","following_url":"https://api.github.com/users/isucan/following{/other_user}","gists_url":"https://api.github.com/users/isucan/gists{/gist_id}","starred_url":"https://api.github.com/users/isucan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isucan/subscriptions","organizations_url":"https://api.github.com/users/isucan/orgs","repos_url":"https://api.github.com/users/isucan/repos","events_url":"https://api.github.com/users/isucan/events{/privacy}","received_events_url":"https://api.github.com/users/isucan/received_events","type":"User","site_admin":false},"body":"it is better to go for removal then. When you can simplify code, i prefer we always do. ","created_at":"2015-02-21T16:15:42Z","updated_at":"2015-02-21T16:15:42Z","html_url":"https://github.com/ompl/ompl/pull/40#discussion_r25123165","pull_request_url":"https://api.github.com/repos/ompl/ompl/pulls/40","_links":{"self":{"href":"https://api.github.com/repos/ompl/ompl/pulls/comments/25123165"},"html":{"href":"https://github.com/ompl/ompl/pull/40#discussion_r25123165"},"pull_request":{"href":"https://api.github.com/repos/ompl/ompl/pulls/40"}}},"pull_request":{"url":"https://api.github.com/repos/ompl/ompl/pulls/40","id":22881383,"html_url":"https://github.com/ompl/ompl/pull/40","diff_url":"https://github.com/ompl/ompl/pull/40.diff","patch_url":"https://github.com/ompl/ompl/pull/40.patch","issue_url":"https://api.github.com/repos/ompl/ompl/issues/40","number":40,"state":"open","locked":false,"title":"Implemented the lightning experienced-based planning framework","user":{"login":"davetcoleman","id":561060,"avatar_url":"https://avatars.githubusercontent.com/u/561060?v=3","gravatar_id":"","url":"https://api.github.com/users/davetcoleman","html_url":"https://github.com/davetcoleman","followers_url":"https://api.github.com/users/davetcoleman/followers","following_url":"https://api.github.com/users/davetcoleman/following{/other_user}","gists_url":"https://api.github.com/users/davetcoleman/gists{/gist_id}","starred_url":"https://api.github.com/users/davetcoleman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davetcoleman/subscriptions","organizations_url":"https://api.github.com/users/davetcoleman/orgs","repos_url":"https://api.github.com/users/davetcoleman/repos","events_url":"https://api.github.com/users/davetcoleman/events{/privacy}","received_events_url":"https://api.github.com/users/davetcoleman/received_events","type":"User","site_admin":false},"body":"Also contains https://github.com/ompl/ompl/pull/39\r\n\r\nSee publication [A Robot Path Planning Framework that Learns from Experience](http://queue.ieor.berkeley.edu/~goldberg/pubs/berenson-ICRA2012-final.pdf)\r\n\r\nPart of my GSoC project.","created_at":"2014-10-16T19:50:35Z","updated_at":"2015-02-21T16:15:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3aee558d2976284b8c2f801a70cef8a7d97bc887","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ompl/ompl/pulls/40/commits","review_comments_url":"https://api.github.com/repos/ompl/ompl/pulls/40/comments","review_comment_url":"https://api.github.com/repos/ompl/ompl/pulls/comments/{number}","comments_url":"https://api.github.com/repos/ompl/ompl/issues/40/comments","statuses_url":"https://api.github.com/repos/ompl/ompl/statuses/4aac3c2a2535f502031c13fb49961087a1000ffb","head":{"label":"davetcoleman:final_lightning_framework","ref":"final_lightning_framework","sha":"4aac3c2a2535f502031c13fb49961087a1000ffb","user":{"login":"davetcoleman","id":561060,"avatar_url":"https://avatars.githubusercontent.com/u/561060?v=3","gravatar_id":"","url":"https://api.github.com/users/davetcoleman","html_url":"https://github.com/davetcoleman","followers_url":"https://api.github.com/users/davetcoleman/followers","following_url":"https://api.github.com/users/davetcoleman/following{/other_user}","gists_url":"https://api.github.com/users/davetcoleman/gists{/gist_id}","starred_url":"https://api.github.com/users/davetcoleman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davetcoleman/subscriptions","organizations_url":"https://api.github.com/users/davetcoleman/orgs","repos_url":"https://api.github.com/users/davetcoleman/repos","events_url":"https://api.github.com/users/davetcoleman/events{/privacy}","received_events_url":"https://api.github.com/users/davetcoleman/received_events","type":"User","site_admin":false},"repo":{"id":20281964,"name":"ompl","full_name":"davetcoleman/ompl","owner":{"login":"davetcoleman","id":561060,"avatar_url":"https://avatars.githubusercontent.com/u/561060?v=3","gravatar_id":"","url":"https://api.github.com/users/davetcoleman","html_url":"https://github.com/davetcoleman","followers_url":"https://api.github.com/users/davetcoleman/followers","following_url":"https://api.github.com/users/davetcoleman/following{/other_user}","gists_url":"https://api.github.com/users/davetcoleman/gists{/gist_id}","starred_url":"https://api.github.com/users/davetcoleman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davetcoleman/subscriptions","organizations_url":"https://api.github.com/users/davetcoleman/orgs","repos_url":"https://api.github.com/users/davetcoleman/repos","events_url":"https://api.github.com/users/davetcoleman/events{/privacy}","received_events_url":"https://api.github.com/users/davetcoleman/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/davetcoleman/ompl","description":"The Open Motion Planning Library (OMPL), mirror of:","fork":true,"url":"https://api.github.com/repos/davetcoleman/ompl","forks_url":"https://api.github.com/repos/davetcoleman/ompl/forks","keys_url":"https://api.github.com/repos/davetcoleman/ompl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davetcoleman/ompl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davetcoleman/ompl/teams","hooks_url":"https://api.github.com/repos/davetcoleman/ompl/hooks","issue_events_url":"https://api.github.com/repos/davetcoleman/ompl/issues/events{/number}","events_url":"https://api.github.com/repos/davetcoleman/ompl/events","assignees_url":"https://api.github.com/repos/davetcoleman/ompl/assignees{/user}","branches_url":"https://api.github.com/repos/davetcoleman/ompl/branches{/branch}","tags_url":"https://api.github.com/repos/davetcoleman/ompl/tags","blobs_url":"https://api.github.com/repos/davetcoleman/ompl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davetcoleman/ompl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davetcoleman/ompl/git/refs{/sha}","trees_url":"https://api.github.com/repos/davetcoleman/ompl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davetcoleman/ompl/statuses/{sha}","languages_url":"https://api.github.com/repos/davetcoleman/ompl/languages","stargazers_url":"https://api.github.com/repos/davetcoleman/ompl/stargazers","contributors_url":"https://api.github.com/repos/davetcoleman/ompl/contributors","subscribers_url":"https://api.github.com/repos/davetcoleman/ompl/subscribers","subscription_url":"https://api.github.com/repos/davetcoleman/ompl/subscription","commits_url":"https://api.github.com/repos/davetcoleman/ompl/commits{/sha}","git_commits_url":"https://api.github.com/repos/davetcoleman/ompl/git/commits{/sha}","comments_url":"https://api.github.com/repos/davetcoleman/ompl/comments{/number}","issue_comment_url":"https://api.github.com/repos/davetcoleman/ompl/issues/comments/{number}","contents_url":"https://api.github.com/repos/davetcoleman/ompl/contents/{+path}","compare_url":"https://api.github.com/repos/davetcoleman/ompl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davetcoleman/ompl/merges","archive_url":"https://api.github.com/repos/davetcoleman/ompl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davetcoleman/ompl/downloads","issues_url":"https://api.github.com/repos/davetcoleman/ompl/issues{/number}","pulls_url":"https://api.github.com/repos/davetcoleman/ompl/pulls{/number}","milestones_url":"https://api.github.com/repos/davetcoleman/ompl/milestones{/number}","notifications_url":"https://api.github.com/repos/davetcoleman/ompl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davetcoleman/ompl/labels{/name}","releases_url":"https://api.github.com/repos/davetcoleman/ompl/releases{/id}","created_at":"2014-05-29T04:17:19Z","updated_at":"2014-07-19T08:05:36Z","pushed_at":"2014-11-24T05:14:17Z","git_url":"git://github.com/davetcoleman/ompl.git","ssh_url":"git@github.com:davetcoleman/ompl.git","clone_url":"https://github.com/davetcoleman/ompl.git","svn_url":"https://github.com/davetcoleman/ompl","homepage":"https://bitbucket.org/ompl/ompl","size":151364,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"ompl:master","ref":"master","sha":"e6e42b3c21053f449ad3dd800b01fed744c732d5","user":{"login":"ompl","id":7645596,"avatar_url":"https://avatars.githubusercontent.com/u/7645596?v=3","gravatar_id":"","url":"https://api.github.com/users/ompl","html_url":"https://github.com/ompl","followers_url":"https://api.github.com/users/ompl/followers","following_url":"https://api.github.com/users/ompl/following{/other_user}","gists_url":"https://api.github.com/users/ompl/gists{/gist_id}","starred_url":"https://api.github.com/users/ompl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ompl/subscriptions","organizations_url":"https://api.github.com/users/ompl/orgs","repos_url":"https://api.github.com/users/ompl/repos","events_url":"https://api.github.com/users/ompl/events{/privacy}","received_events_url":"https://api.github.com/users/ompl/received_events","type":"Organization","site_admin":false},"repo":{"id":19983886,"name":"ompl","full_name":"ompl/ompl","owner":{"login":"ompl","id":7645596,"avatar_url":"https://avatars.githubusercontent.com/u/7645596?v=3","gravatar_id":"","url":"https://api.github.com/users/ompl","html_url":"https://github.com/ompl","followers_url":"https://api.github.com/users/ompl/followers","following_url":"https://api.github.com/users/ompl/following{/other_user}","gists_url":"https://api.github.com/users/ompl/gists{/gist_id}","starred_url":"https://api.github.com/users/ompl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ompl/subscriptions","organizations_url":"https://api.github.com/users/ompl/orgs","repos_url":"https://api.github.com/users/ompl/repos","events_url":"https://api.github.com/users/ompl/events{/privacy}","received_events_url":"https://api.github.com/users/ompl/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ompl/ompl","description":"The Open Motion Planning Library (OMPL), mirror of:","fork":false,"url":"https://api.github.com/repos/ompl/ompl","forks_url":"https://api.github.com/repos/ompl/ompl/forks","keys_url":"https://api.github.com/repos/ompl/ompl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ompl/ompl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ompl/ompl/teams","hooks_url":"https://api.github.com/repos/ompl/ompl/hooks","issue_events_url":"https://api.github.com/repos/ompl/ompl/issues/events{/number}","events_url":"https://api.github.com/repos/ompl/ompl/events","assignees_url":"https://api.github.com/repos/ompl/ompl/assignees{/user}","branches_url":"https://api.github.com/repos/ompl/ompl/branches{/branch}","tags_url":"https://api.github.com/repos/ompl/ompl/tags","blobs_url":"https://api.github.com/repos/ompl/ompl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ompl/ompl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ompl/ompl/git/refs{/sha}","trees_url":"https://api.github.com/repos/ompl/ompl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ompl/ompl/statuses/{sha}","languages_url":"https://api.github.com/repos/ompl/ompl/languages","stargazers_url":"https://api.github.com/repos/ompl/ompl/stargazers","contributors_url":"https://api.github.com/repos/ompl/ompl/contributors","subscribers_url":"https://api.github.com/repos/ompl/ompl/subscribers","subscription_url":"https://api.github.com/repos/ompl/ompl/subscription","commits_url":"https://api.github.com/repos/ompl/ompl/commits{/sha}","git_commits_url":"https://api.github.com/repos/ompl/ompl/git/commits{/sha}","comments_url":"https://api.github.com/repos/ompl/ompl/comments{/number}","issue_comment_url":"https://api.github.com/repos/ompl/ompl/issues/comments/{number}","contents_url":"https://api.github.com/repos/ompl/ompl/contents/{+path}","compare_url":"https://api.github.com/repos/ompl/ompl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ompl/ompl/merges","archive_url":"https://api.github.com/repos/ompl/ompl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ompl/ompl/downloads","issues_url":"https://api.github.com/repos/ompl/ompl/issues{/number}","pulls_url":"https://api.github.com/repos/ompl/ompl/pulls{/number}","milestones_url":"https://api.github.com/repos/ompl/ompl/milestones{/number}","notifications_url":"https://api.github.com/repos/ompl/ompl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ompl/ompl/labels{/name}","releases_url":"https://api.github.com/repos/ompl/ompl/releases{/id}","created_at":"2014-05-20T14:22:59Z","updated_at":"2015-02-16T14:48:55Z","pushed_at":"2015-02-16T14:48:55Z","git_url":"git://github.com/ompl/ompl.git","ssh_url":"git@github.com:ompl/ompl.git","clone_url":"https://github.com/ompl/ompl.git","svn_url":"https://github.com/ompl/ompl","homepage":"https://bitbucket.org/ompl/ompl","size":151760,"stargazers_count":15,"watchers_count":15,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":2,"forks":15,"open_issues":2,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ompl/ompl/pulls/40"},"html":{"href":"https://github.com/ompl/ompl/pull/40"},"issue":{"href":"https://api.github.com/repos/ompl/ompl/issues/40"},"comments":{"href":"https://api.github.com/repos/ompl/ompl/issues/40/comments"},"review_comments":{"href":"https://api.github.com/repos/ompl/ompl/pulls/40/comments"},"review_comment":{"href":"https://api.github.com/repos/ompl/ompl/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/ompl/ompl/pulls/40/commits"},"statuses":{"href":"https://api.github.com/repos/ompl/ompl/statuses/4aac3c2a2535f502031c13fb49961087a1000ffb"}}}}