{"action":"closed","number":90,"pull_request":{"url":"https://api.github.com/repos/personalrobotics/aikido/pulls/90","id":67818467,"html_url":"https://github.com/personalrobotics/aikido/pull/90","diff_url":"https://github.com/personalrobotics/aikido/pull/90.diff","patch_url":"https://github.com/personalrobotics/aikido/pull/90.patch","issue_url":"https://api.github.com/repos/personalrobotics/aikido/issues/90","number":90,"state":"closed","locked":false,"title":"Improvements needed for planning with OMPL for HERB","user":{"login":"jeking04","id":3662021,"avatar_url":"https://avatars.githubusercontent.com/u/3662021?v=3","gravatar_id":"","url":"https://api.github.com/users/jeking04","html_url":"https://github.com/jeking04","followers_url":"https://api.github.com/users/jeking04/followers","following_url":"https://api.github.com/users/jeking04/following{/other_user}","gists_url":"https://api.github.com/users/jeking04/gists{/gist_id}","starred_url":"https://api.github.com/users/jeking04/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeking04/subscriptions","organizations_url":"https://api.github.com/users/jeking04/orgs","repos_url":"https://api.github.com/users/jeking04/repos","events_url":"https://api.github.com/users/jeking04/events{/privacy}","received_events_url":"https://api.github.com/users/jeking04/received_events","type":"User","site_admin":false},"body":"This PR contains a set of improvements/bug fixes that were necessary to use the aikido framework and OMPL planners with HERB:\r\n\r\n* Aikido state now set to a nullptr when a valid sample fails to be generated.  This includes regular state and goal sampling\r\n* GeometricStateSpace, StateSampler, StateValidityChecker and GoalRegion updated to properly handle these states.\r\n* Additional logic to ```aikido::constraint::NonColliding``` to pass collision options that ignore collisions between physically adjacent links by default.  Also added a constructor that exposes the option of passing custom ```CollisionOptions``` to the constraint.\r\n* Added checks for infinite velocity or acceleration limits to ```ParabolicTimer```\r\n* Update OMPL planner functions to use the custom ```MotionValidator``` by default\r\n* Update OMPL planner functions to return ```Interpolated``` type paths instead of generic ```Trajectory``` type\r\n* Return ```nullptr``` instead of an empty path when a solution cannot be found\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"35\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/personalrobotics/aikido/90)\n<!-- Reviewable:end -->\n","created_at":"2016-04-26T02:39:22Z","updated_at":"2016-04-27T04:29:03Z","closed_at":"2016-04-27T04:29:03Z","merged_at":"2016-04-27T04:29:03Z","merge_commit_sha":"1556040d4277f9c73afda7cfb8ee1559376e0030","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/personalrobotics/aikido/pulls/90/commits","review_comments_url":"https://api.github.com/repos/personalrobotics/aikido/pulls/90/comments","review_comment_url":"https://api.github.com/repos/personalrobotics/aikido/pulls/comments{/number}","comments_url":"https://api.github.com/repos/personalrobotics/aikido/issues/90/comments","statuses_url":"https://api.github.com/repos/personalrobotics/aikido/statuses/72271fe2b525eb3e38aa1f777af36d264547b365","head":{"label":"personalrobotics:feature/ompl_bad_sampling","ref":"feature/ompl_bad_sampling","sha":"72271fe2b525eb3e38aa1f777af36d264547b365","user":{"login":"personalrobotics","id":4705918,"avatar_url":"https://avatars.githubusercontent.com/u/4705918?v=3","gravatar_id":"","url":"https://api.github.com/users/personalrobotics","html_url":"https://github.com/personalrobotics","followers_url":"https://api.github.com/users/personalrobotics/followers","following_url":"https://api.github.com/users/personalrobotics/following{/other_user}","gists_url":"https://api.github.com/users/personalrobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/personalrobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/personalrobotics/subscriptions","organizations_url":"https://api.github.com/users/personalrobotics/orgs","repos_url":"https://api.github.com/users/personalrobotics/repos","events_url":"https://api.github.com/users/personalrobotics/events{/privacy}","received_events_url":"https://api.github.com/users/personalrobotics/received_events","type":"Organization","site_admin":false},"repo":{"id":34424077,"name":"aikido","full_name":"personalrobotics/aikido","owner":{"login":"personalrobotics","id":4705918,"avatar_url":"https://avatars.githubusercontent.com/u/4705918?v=3","gravatar_id":"","url":"https://api.github.com/users/personalrobotics","html_url":"https://github.com/personalrobotics","followers_url":"https://api.github.com/users/personalrobotics/followers","following_url":"https://api.github.com/users/personalrobotics/following{/other_user}","gists_url":"https://api.github.com/users/personalrobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/personalrobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/personalrobotics/subscriptions","organizations_url":"https://api.github.com/users/personalrobotics/orgs","repos_url":"https://api.github.com/users/personalrobotics/repos","events_url":"https://api.github.com/users/personalrobotics/events{/privacy}","received_events_url":"https://api.github.com/users/personalrobotics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/personalrobotics/aikido","description":"AI for KIDO","fork":false,"url":"https://api.github.com/repos/personalrobotics/aikido","forks_url":"https://api.github.com/repos/personalrobotics/aikido/forks","keys_url":"https://api.github.com/repos/personalrobotics/aikido/keys{/key_id}","collaborators_url":"https://api.github.com/repos/personalrobotics/aikido/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/personalrobotics/aikido/teams","hooks_url":"https://api.github.com/repos/personalrobotics/aikido/hooks","issue_events_url":"https://api.github.com/repos/personalrobotics/aikido/issues/events{/number}","events_url":"https://api.github.com/repos/personalrobotics/aikido/events","assignees_url":"https://api.github.com/repos/personalrobotics/aikido/assignees{/user}","branches_url":"https://api.github.com/repos/personalrobotics/aikido/branches{/branch}","tags_url":"https://api.github.com/repos/personalrobotics/aikido/tags","blobs_url":"https://api.github.com/repos/personalrobotics/aikido/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/personalrobotics/aikido/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/personalrobotics/aikido/git/refs{/sha}","trees_url":"https://api.github.com/repos/personalrobotics/aikido/git/trees{/sha}","statuses_url":"https://api.github.com/repos/personalrobotics/aikido/statuses/{sha}","languages_url":"https://api.github.com/repos/personalrobotics/aikido/languages","stargazers_url":"https://api.github.com/repos/personalrobotics/aikido/stargazers","contributors_url":"https://api.github.com/repos/personalrobotics/aikido/contributors","subscribers_url":"https://api.github.com/repos/personalrobotics/aikido/subscribers","subscription_url":"https://api.github.com/repos/personalrobotics/aikido/subscription","commits_url":"https://api.github.com/repos/personalrobotics/aikido/commits{/sha}","git_commits_url":"https://api.github.com/repos/personalrobotics/aikido/git/commits{/sha}","comments_url":"https://api.github.com/repos/personalrobotics/aikido/comments{/number}","issue_comment_url":"https://api.github.com/repos/personalrobotics/aikido/issues/comments{/number}","contents_url":"https://api.github.com/repos/personalrobotics/aikido/contents/{+path}","compare_url":"https://api.github.com/repos/personalrobotics/aikido/compare/{base}...{head}","merges_url":"https://api.github.com/repos/personalrobotics/aikido/merges","archive_url":"https://api.github.com/repos/personalrobotics/aikido/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/personalrobotics/aikido/downloads","issues_url":"https://api.github.com/repos/personalrobotics/aikido/issues{/number}","pulls_url":"https://api.github.com/repos/personalrobotics/aikido/pulls{/number}","milestones_url":"https://api.github.com/repos/personalrobotics/aikido/milestones{/number}","notifications_url":"https://api.github.com/repos/personalrobotics/aikido/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/personalrobotics/aikido/labels{/name}","releases_url":"https://api.github.com/repos/personalrobotics/aikido/releases{/id}","deployments_url":"https://api.github.com/repos/personalrobotics/aikido/deployments","created_at":"2015-04-23T00:33:33Z","updated_at":"2016-04-22T15:11:23Z","pushed_at":"2016-04-27T04:29:03Z","git_url":"git://github.com/personalrobotics/aikido.git","ssh_url":"git@github.com:personalrobotics/aikido.git","clone_url":"https://github.com/personalrobotics/aikido.git","svn_url":"https://github.com/personalrobotics/aikido","homepage":"","size":1965,"stargazers_count":2,"watchers_count":2,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":43,"forks":0,"open_issues":43,"watchers":2,"default_branch":"master"}},"base":{"label":"personalrobotics:master","ref":"master","sha":"fe985d53ea05017fde992cfef21aa18f8b911352","user":{"login":"personalrobotics","id":4705918,"avatar_url":"https://avatars.githubusercontent.com/u/4705918?v=3","gravatar_id":"","url":"https://api.github.com/users/personalrobotics","html_url":"https://github.com/personalrobotics","followers_url":"https://api.github.com/users/personalrobotics/followers","following_url":"https://api.github.com/users/personalrobotics/following{/other_user}","gists_url":"https://api.github.com/users/personalrobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/personalrobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/personalrobotics/subscriptions","organizations_url":"https://api.github.com/users/personalrobotics/orgs","repos_url":"https://api.github.com/users/personalrobotics/repos","events_url":"https://api.github.com/users/personalrobotics/events{/privacy}","received_events_url":"https://api.github.com/users/personalrobotics/received_events","type":"Organization","site_admin":false},"repo":{"id":34424077,"name":"aikido","full_name":"personalrobotics/aikido","owner":{"login":"personalrobotics","id":4705918,"avatar_url":"https://avatars.githubusercontent.com/u/4705918?v=3","gravatar_id":"","url":"https://api.github.com/users/personalrobotics","html_url":"https://github.com/personalrobotics","followers_url":"https://api.github.com/users/personalrobotics/followers","following_url":"https://api.github.com/users/personalrobotics/following{/other_user}","gists_url":"https://api.github.com/users/personalrobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/personalrobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/personalrobotics/subscriptions","organizations_url":"https://api.github.com/users/personalrobotics/orgs","repos_url":"https://api.github.com/users/personalrobotics/repos","events_url":"https://api.github.com/users/personalrobotics/events{/privacy}","received_events_url":"https://api.github.com/users/personalrobotics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/personalrobotics/aikido","description":"AI for KIDO","fork":false,"url":"https://api.github.com/repos/personalrobotics/aikido","forks_url":"https://api.github.com/repos/personalrobotics/aikido/forks","keys_url":"https://api.github.com/repos/personalrobotics/aikido/keys{/key_id}","collaborators_url":"https://api.github.com/repos/personalrobotics/aikido/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/personalrobotics/aikido/teams","hooks_url":"https://api.github.com/repos/personalrobotics/aikido/hooks","issue_events_url":"https://api.github.com/repos/personalrobotics/aikido/issues/events{/number}","events_url":"https://api.github.com/repos/personalrobotics/aikido/events","assignees_url":"https://api.github.com/repos/personalrobotics/aikido/assignees{/user}","branches_url":"https://api.github.com/repos/personalrobotics/aikido/branches{/branch}","tags_url":"https://api.github.com/repos/personalrobotics/aikido/tags","blobs_url":"https://api.github.com/repos/personalrobotics/aikido/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/personalrobotics/aikido/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/personalrobotics/aikido/git/refs{/sha}","trees_url":"https://api.github.com/repos/personalrobotics/aikido/git/trees{/sha}","statuses_url":"https://api.github.com/repos/personalrobotics/aikido/statuses/{sha}","languages_url":"https://api.github.com/repos/personalrobotics/aikido/languages","stargazers_url":"https://api.github.com/repos/personalrobotics/aikido/stargazers","contributors_url":"https://api.github.com/repos/personalrobotics/aikido/contributors","subscribers_url":"https://api.github.com/repos/personalrobotics/aikido/subscribers","subscription_url":"https://api.github.com/repos/personalrobotics/aikido/subscription","commits_url":"https://api.github.com/repos/personalrobotics/aikido/commits{/sha}","git_commits_url":"https://api.github.com/repos/personalrobotics/aikido/git/commits{/sha}","comments_url":"https://api.github.com/repos/personalrobotics/aikido/comments{/number}","issue_comment_url":"https://api.github.com/repos/personalrobotics/aikido/issues/comments{/number}","contents_url":"https://api.github.com/repos/personalrobotics/aikido/contents/{+path}","compare_url":"https://api.github.com/repos/personalrobotics/aikido/compare/{base}...{head}","merges_url":"https://api.github.com/repos/personalrobotics/aikido/merges","archive_url":"https://api.github.com/repos/personalrobotics/aikido/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/personalrobotics/aikido/downloads","issues_url":"https://api.github.com/repos/personalrobotics/aikido/issues{/number}","pulls_url":"https://api.github.com/repos/personalrobotics/aikido/pulls{/number}","milestones_url":"https://api.github.com/repos/personalrobotics/aikido/milestones{/number}","notifications_url":"https://api.github.com/repos/personalrobotics/aikido/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/personalrobotics/aikido/labels{/name}","releases_url":"https://api.github.com/repos/personalrobotics/aikido/releases{/id}","deployments_url":"https://api.github.com/repos/personalrobotics/aikido/deployments","created_at":"2015-04-23T00:33:33Z","updated_at":"2016-04-22T15:11:23Z","pushed_at":"2016-04-27T04:29:03Z","git_url":"git://github.com/personalrobotics/aikido.git","ssh_url":"git@github.com:personalrobotics/aikido.git","clone_url":"https://github.com/personalrobotics/aikido.git","svn_url":"https://github.com/personalrobotics/aikido","homepage":"","size":1965,"stargazers_count":2,"watchers_count":2,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":43,"forks":0,"open_issues":43,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/personalrobotics/aikido/pulls/90"},"html":{"href":"https://github.com/personalrobotics/aikido/pull/90"},"issue":{"href":"https://api.github.com/repos/personalrobotics/aikido/issues/90"},"comments":{"href":"https://api.github.com/repos/personalrobotics/aikido/issues/90/comments"},"review_comments":{"href":"https://api.github.com/repos/personalrobotics/aikido/pulls/90/comments"},"review_comment":{"href":"https://api.github.com/repos/personalrobotics/aikido/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/personalrobotics/aikido/pulls/90/commits"},"statuses":{"href":"https://api.github.com/repos/personalrobotics/aikido/statuses/72271fe2b525eb3e38aa1f777af36d264547b365"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mkoval","id":142251,"avatar_url":"https://avatars.githubusercontent.com/u/142251?v=3","gravatar_id":"","url":"https://api.github.com/users/mkoval","html_url":"https://github.com/mkoval","followers_url":"https://api.github.com/users/mkoval/followers","following_url":"https://api.github.com/users/mkoval/following{/other_user}","gists_url":"https://api.github.com/users/mkoval/gists{/gist_id}","starred_url":"https://api.github.com/users/mkoval/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkoval/subscriptions","organizations_url":"https://api.github.com/users/mkoval/orgs","repos_url":"https://api.github.com/users/mkoval/repos","events_url":"https://api.github.com/users/mkoval/events{/privacy}","received_events_url":"https://api.github.com/users/mkoval/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"commits":13,"additions":381,"deletions":109,"changed_files":19}}