{"action":"created","comment":{"url":"https://api.github.com/repos/ros-planning/moveit/pulls/comments/176894354","pull_request_review_id":106683519,"id":176894354,"diff_hunk":"@@ -1981,10 +2055,58 @@ double moveit::core::RobotState::testJointSpaceJump(const JointModelGroup* group\n   return percentage;\n }\n \n+double moveit::core::RobotState::testJointSpaceJump(const JointModelGroup* group, std::vector<RobotStatePtr>& traj,\n+                                                    double revolute_jump_threshold, double prismatic_jump_threshold)\n+{\n+  double percentage = 1.0;\n+  bool still_valid = true;\n+  const std::vector<const JointModel*>& joints = group->getActiveJointModels();\n+  for (std::size_t i; i < traj.size() - 1 && still_valid; ++i)","path":"moveit_core/robot_state/src/robot_state.cpp","position":121,"original_position":121,"commit_id":"c0194798823291bf08deaa6f2f65823dd8fbe10c","original_commit_id":"c0194798823291bf08deaa6f2f65823dd8fbe10c","user":{"login":"davetcoleman","id":561060,"avatar_url":"https://avatars2.githubusercontent.com/u/561060?v=4","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":"+1 to C++11 here","created_at":"2018-03-24T00:59:09Z","updated_at":"2018-03-24T00:59:09Z","html_url":"https://github.com/ros-planning/moveit/pull/798#discussion_r176894354","pull_request_url":"https://api.github.com/repos/ros-planning/moveit/pulls/798","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/comments/176894354"},"html":{"href":"https://github.com/ros-planning/moveit/pull/798#discussion_r176894354"},"pull_request":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/798"}},"in_reply_to_id":175242397},"pull_request":{"url":"https://api.github.com/repos/ros-planning/moveit/pulls/798","id":174778584,"html_url":"https://github.com/ros-planning/moveit/pull/798","diff_url":"https://github.com/ros-planning/moveit/pull/798.diff","patch_url":"https://github.com/ros-planning/moveit/pull/798.patch","issue_url":"https://api.github.com/repos/ros-planning/moveit/issues/798","number":798,"state":"open","locked":false,"title":"Adding absolute jump threshold in parallel with existing jump threshold factor for computeCartesianPath","user":{"login":"mlautman","id":3253549,"avatar_url":"https://avatars3.githubusercontent.com/u/3253549?v=4","gravatar_id":"","url":"https://api.github.com/users/mlautman","html_url":"https://github.com/mlautman","followers_url":"https://api.github.com/users/mlautman/followers","following_url":"https://api.github.com/users/mlautman/following{/other_user}","gists_url":"https://api.github.com/users/mlautman/gists{/gist_id}","starred_url":"https://api.github.com/users/mlautman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlautman/subscriptions","organizations_url":"https://api.github.com/users/mlautman/orgs","repos_url":"https://api.github.com/users/mlautman/repos","events_url":"https://api.github.com/users/mlautman/events{/privacy}","received_events_url":"https://api.github.com/users/mlautman/received_events","type":"User","site_admin":false},"body":"### Description\r\n\r\nI took a stab at implementing a absolute jump threshold for the computeCartesianPath functionality. (#773) This implementation required separate jump thresholds for prismatic and revolute joints and does not support planar, floating, fixed or multi-DOF joints. This implementation does not affect or replace the old computeCartesianPath method which is used by the move_group computeCartesianPath capability since that would involve changing messages and would have a much larger scope.\r\n\r\nThe goal of this PR is to address the issue where using the existing jump_threshold method, paths with few waypoints can have huge jumps in joint space. To demonstrate this problem, I generated hundreds of thousands of trajectories with varying goals, eef_steps and jump_thresholds, filtered out anything with less than 100% completion, sorted them by the number of interpolated waypoints in the returned trajectory, and then searched through for the largest absolute jump.\r\n\r\n![image](https://user-images.githubusercontent.com/3253549/37381665-00658a46-2704-11e8-9151-17861cd4a332.png)\r\n\r\neef_steps = [0.01, 0.05, 0.1]\r\njump_thresholds = [1.1, 1.5, 1.75, 2.0]\r\n\r\nAfter testing this new implementation and comparing it to the existing computeCartesianPath, I was able to filter out jumps from 100,000 trajectories with minimal parameter tuning. For what it's worth, IMHO it is a lot easier to tune the absolute jump thresholds than the jump threshold factor. \r\n\r\n### Checklist\r\n- [x] **Required**: Code is auto formatted using [clang-format](http://moveit.ros.org/documentation/contributing/code)\r\n- [ ] Extended the tutorials / documentation, if necessary [reference](http://moveit.ros.org/documentation/contributing/)\r\n- [ ] Include a screenshot if changing a GUI\r\n- [ ] Optional: Created tests, which fail without this PR [reference](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/tests.html)\r\n- [ ] Optional: Decide if this should be cherry-picked to other current ROS branches (Indigo, Jade, Kinetic)\r\n\r\n[//]: # \"You can expect a response from a maintainer within 7 days. If you haven't heard anything by then, feel free to ping the thread. Thank you!\"\r\n","created_at":"2018-03-13T20:20:40Z","updated_at":"2018-03-24T00:59:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5b15850ae224418d3733c7258b15cfeefca45d17","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ros-planning/moveit/pulls/798/commits","review_comments_url":"https://api.github.com/repos/ros-planning/moveit/pulls/798/comments","review_comment_url":"https://api.github.com/repos/ros-planning/moveit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ros-planning/moveit/issues/798/comments","statuses_url":"https://api.github.com/repos/ros-planning/moveit/statuses/c0194798823291bf08deaa6f2f65823dd8fbe10c","head":{"label":"PickNikRobotics:kinetic-abs-jt","ref":"kinetic-abs-jt","sha":"c0194798823291bf08deaa6f2f65823dd8fbe10c","user":{"login":"PickNikRobotics","id":15351303,"avatar_url":"https://avatars2.githubusercontent.com/u/15351303?v=4","gravatar_id":"","url":"https://api.github.com/users/PickNikRobotics","html_url":"https://github.com/PickNikRobotics","followers_url":"https://api.github.com/users/PickNikRobotics/followers","following_url":"https://api.github.com/users/PickNikRobotics/following{/other_user}","gists_url":"https://api.github.com/users/PickNikRobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/PickNikRobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PickNikRobotics/subscriptions","organizations_url":"https://api.github.com/users/PickNikRobotics/orgs","repos_url":"https://api.github.com/users/PickNikRobotics/repos","events_url":"https://api.github.com/users/PickNikRobotics/events{/privacy}","received_events_url":"https://api.github.com/users/PickNikRobotics/received_events","type":"Organization","site_admin":false},"repo":{"id":113098311,"name":"moveit","full_name":"PickNikRobotics/moveit","owner":{"login":"PickNikRobotics","id":15351303,"avatar_url":"https://avatars2.githubusercontent.com/u/15351303?v=4","gravatar_id":"","url":"https://api.github.com/users/PickNikRobotics","html_url":"https://github.com/PickNikRobotics","followers_url":"https://api.github.com/users/PickNikRobotics/followers","following_url":"https://api.github.com/users/PickNikRobotics/following{/other_user}","gists_url":"https://api.github.com/users/PickNikRobotics/gists{/gist_id}","starred_url":"https://api.github.com/users/PickNikRobotics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PickNikRobotics/subscriptions","organizations_url":"https://api.github.com/users/PickNikRobotics/orgs","repos_url":"https://api.github.com/users/PickNikRobotics/repos","events_url":"https://api.github.com/users/PickNikRobotics/events{/privacy}","received_events_url":"https://api.github.com/users/PickNikRobotics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PickNikRobotics/moveit","description":"The MoveIt! motion planning framework","fork":true,"url":"https://api.github.com/repos/PickNikRobotics/moveit","forks_url":"https://api.github.com/repos/PickNikRobotics/moveit/forks","keys_url":"https://api.github.com/repos/PickNikRobotics/moveit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PickNikRobotics/moveit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PickNikRobotics/moveit/teams","hooks_url":"https://api.github.com/repos/PickNikRobotics/moveit/hooks","issue_events_url":"https://api.github.com/repos/PickNikRobotics/moveit/issues/events{/number}","events_url":"https://api.github.com/repos/PickNikRobotics/moveit/events","assignees_url":"https://api.github.com/repos/PickNikRobotics/moveit/assignees{/user}","branches_url":"https://api.github.com/repos/PickNikRobotics/moveit/branches{/branch}","tags_url":"https://api.github.com/repos/PickNikRobotics/moveit/tags","blobs_url":"https://api.github.com/repos/PickNikRobotics/moveit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PickNikRobotics/moveit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PickNikRobotics/moveit/git/refs{/sha}","trees_url":"https://api.github.com/repos/PickNikRobotics/moveit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PickNikRobotics/moveit/statuses/{sha}","languages_url":"https://api.github.com/repos/PickNikRobotics/moveit/languages","stargazers_url":"https://api.github.com/repos/PickNikRobotics/moveit/stargazers","contributors_url":"https://api.github.com/repos/PickNikRobotics/moveit/contributors","subscribers_url":"https://api.github.com/repos/PickNikRobotics/moveit/subscribers","subscription_url":"https://api.github.com/repos/PickNikRobotics/moveit/subscription","commits_url":"https://api.github.com/repos/PickNikRobotics/moveit/commits{/sha}","git_commits_url":"https://api.github.com/repos/PickNikRobotics/moveit/git/commits{/sha}","comments_url":"https://api.github.com/repos/PickNikRobotics/moveit/comments{/number}","issue_comment_url":"https://api.github.com/repos/PickNikRobotics/moveit/issues/comments{/number}","contents_url":"https://api.github.com/repos/PickNikRobotics/moveit/contents/{+path}","compare_url":"https://api.github.com/repos/PickNikRobotics/moveit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PickNikRobotics/moveit/merges","archive_url":"https://api.github.com/repos/PickNikRobotics/moveit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PickNikRobotics/moveit/downloads","issues_url":"https://api.github.com/repos/PickNikRobotics/moveit/issues{/number}","pulls_url":"https://api.github.com/repos/PickNikRobotics/moveit/pulls{/number}","milestones_url":"https://api.github.com/repos/PickNikRobotics/moveit/milestones{/number}","notifications_url":"https://api.github.com/repos/PickNikRobotics/moveit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PickNikRobotics/moveit/labels{/name}","releases_url":"https://api.github.com/repos/PickNikRobotics/moveit/releases{/id}","deployments_url":"https://api.github.com/repos/PickNikRobotics/moveit/deployments","created_at":"2017-12-04T21:41:36Z","updated_at":"2017-12-04T21:41:40Z","pushed_at":"2018-03-15T01:45:28Z","git_url":"git://github.com/PickNikRobotics/moveit.git","ssh_url":"git@github.com:PickNikRobotics/moveit.git","clone_url":"https://github.com/PickNikRobotics/moveit.git","svn_url":"https://github.com/PickNikRobotics/moveit","homepage":"http://moveit.ros.org/","size":53936,"stargazers_count":0,"watchers_count":0,"language":"C++","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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"kinetic-devel"}},"base":{"label":"ros-planning:kinetic-devel","ref":"kinetic-devel","sha":"b0d78d4b5aac8a1ac0c0a5531deb33e1303670be","user":{"login":"ros-planning","id":2328631,"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":64340188,"name":"moveit","full_name":"ros-planning/moveit","owner":{"login":"ros-planning","id":2328631,"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/moveit","description":"The MoveIt! motion planning framework","fork":false,"url":"https://api.github.com/repos/ros-planning/moveit","forks_url":"https://api.github.com/repos/ros-planning/moveit/forks","keys_url":"https://api.github.com/repos/ros-planning/moveit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ros-planning/moveit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ros-planning/moveit/teams","hooks_url":"https://api.github.com/repos/ros-planning/moveit/hooks","issue_events_url":"https://api.github.com/repos/ros-planning/moveit/issues/events{/number}","events_url":"https://api.github.com/repos/ros-planning/moveit/events","assignees_url":"https://api.github.com/repos/ros-planning/moveit/assignees{/user}","branches_url":"https://api.github.com/repos/ros-planning/moveit/branches{/branch}","tags_url":"https://api.github.com/repos/ros-planning/moveit/tags","blobs_url":"https://api.github.com/repos/ros-planning/moveit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ros-planning/moveit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ros-planning/moveit/git/refs{/sha}","trees_url":"https://api.github.com/repos/ros-planning/moveit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ros-planning/moveit/statuses/{sha}","languages_url":"https://api.github.com/repos/ros-planning/moveit/languages","stargazers_url":"https://api.github.com/repos/ros-planning/moveit/stargazers","contributors_url":"https://api.github.com/repos/ros-planning/moveit/contributors","subscribers_url":"https://api.github.com/repos/ros-planning/moveit/subscribers","subscription_url":"https://api.github.com/repos/ros-planning/moveit/subscription","commits_url":"https://api.github.com/repos/ros-planning/moveit/commits{/sha}","git_commits_url":"https://api.github.com/repos/ros-planning/moveit/git/commits{/sha}","comments_url":"https://api.github.com/repos/ros-planning/moveit/comments{/number}","issue_comment_url":"https://api.github.com/repos/ros-planning/moveit/issues/comments{/number}","contents_url":"https://api.github.com/repos/ros-planning/moveit/contents/{+path}","compare_url":"https://api.github.com/repos/ros-planning/moveit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ros-planning/moveit/merges","archive_url":"https://api.github.com/repos/ros-planning/moveit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ros-planning/moveit/downloads","issues_url":"https://api.github.com/repos/ros-planning/moveit/issues{/number}","pulls_url":"https://api.github.com/repos/ros-planning/moveit/pulls{/number}","milestones_url":"https://api.github.com/repos/ros-planning/moveit/milestones{/number}","notifications_url":"https://api.github.com/repos/ros-planning/moveit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ros-planning/moveit/labels{/name}","releases_url":"https://api.github.com/repos/ros-planning/moveit/releases{/id}","deployments_url":"https://api.github.com/repos/ros-planning/moveit/deployments","created_at":"2016-07-27T20:38:09Z","updated_at":"2018-03-23T17:10:51Z","pushed_at":"2018-03-23T17:10:45Z","git_url":"git://github.com/ros-planning/moveit.git","ssh_url":"git@github.com:ros-planning/moveit.git","clone_url":"https://github.com/ros-planning/moveit.git","svn_url":"https://github.com/ros-planning/moveit","homepage":"http://moveit.ros.org/","size":54069,"stargazers_count":167,"watchers_count":167,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":188,"mirror_url":null,"archived":false,"open_issues_count":169,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause"},"forks":188,"open_issues":169,"watchers":167,"default_branch":"kinetic-devel"}},"_links":{"self":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/798"},"html":{"href":"https://github.com/ros-planning/moveit/pull/798"},"issue":{"href":"https://api.github.com/repos/ros-planning/moveit/issues/798"},"comments":{"href":"https://api.github.com/repos/ros-planning/moveit/issues/798/comments"},"review_comments":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/798/comments"},"review_comment":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ros-planning/moveit/pulls/798/commits"},"statuses":{"href":"https://api.github.com/repos/ros-planning/moveit/statuses/c0194798823291bf08deaa6f2f65823dd8fbe10c"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"davetcoleman"}}