{"action":"created","issue":{"url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/265","repository_url":"https://api.github.com/repos/ros-industrial/universal_robot","labels_url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/265/labels{/name}","comments_url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/265/comments","events_url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/265/events","html_url":"https://github.com/ros-industrial/universal_robot/issues/265","id":182162374,"number":265,"title":"Elbow joint self-collisions break path planning when full joint space is used on UR5","user":{"login":"scottpaulin","id":9565877,"avatar_url":"https://avatars.githubusercontent.com/u/9565877?v=3","gravatar_id":"","url":"https://api.github.com/users/scottpaulin","html_url":"https://github.com/scottpaulin","followers_url":"https://api.github.com/users/scottpaulin/followers","following_url":"https://api.github.com/users/scottpaulin/following{/other_user}","gists_url":"https://api.github.com/users/scottpaulin/gists{/gist_id}","starred_url":"https://api.github.com/users/scottpaulin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scottpaulin/subscriptions","organizations_url":"https://api.github.com/users/scottpaulin/orgs","repos_url":"https://api.github.com/users/scottpaulin/repos","events_url":"https://api.github.com/users/scottpaulin/events{/privacy}","received_events_url":"https://api.github.com/users/scottpaulin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2016-10-11T03:02:08Z","updated_at":"2016-10-11T11:03:33Z","closed_at":null,"body":"When the elbow joint is close to Pi or -Pi  the UR5 will be in self-collision, no matter what positions the other joints are in:\r\n![ur5_self_collision](https://cloud.githubusercontent.com/assets/9565877/19257027/c9e257de-8fc8-11e6-993d-f82d9191af53.png)\r\nFig. 1: Self collision when elbow joint is near -Pi or Pi. Moving the other joints will not bring the robot out of self-collision.\r\n\r\nThis results in the collision free part of the UR5's configuration space to be disjoint:\r\n![ur5_cfree_annotated](https://cloud.githubusercontent.com/assets/9565877/19257104/78c89150-8fc9-11e6-9863-766844d5e8e0.png)\r\nFig 2: Collision free part of the UR5's configuration space (CFree) when only considering self-collisions. The green circles show where CFree becomes discontinuous because of the elbow joint self collisions shown in Fig. 1. CFree is made up of 3 disjoint sets A, B, and C depending on the position of the elbow joint.\r\n\r\nThe 'disjoint-ness' shown in Fig. 2 means that it is _impossible_ to plan a path where the elbow joint position starts in one of the sets A, B, or C and finishes in another. I think this is why plans fail reasonably often when using the full joint limits of the UR5. \r\n\r\nThis could be fixed by limiting the elbow joint to [-Pi, Pi) when full joint limits are used. The other joints will be fine to use their full [-2Pi, 2Pi) range of motion. \r\n\r\nI have not tested with the other UR robots, but they may have a similar issue. "},"comment":{"url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/comments/252882939","html_url":"https://github.com/ros-industrial/universal_robot/issues/265#issuecomment-252882939","issue_url":"https://api.github.com/repos/ros-industrial/universal_robot/issues/265","id":252882939,"user":{"login":"gavanderhoorn","id":4550046,"avatar_url":"https://avatars.githubusercontent.com/u/4550046?v=3","gravatar_id":"","url":"https://api.github.com/users/gavanderhoorn","html_url":"https://github.com/gavanderhoorn","followers_url":"https://api.github.com/users/gavanderhoorn/followers","following_url":"https://api.github.com/users/gavanderhoorn/following{/other_user}","gists_url":"https://api.github.com/users/gavanderhoorn/gists{/gist_id}","starred_url":"https://api.github.com/users/gavanderhoorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavanderhoorn/subscriptions","organizations_url":"https://api.github.com/users/gavanderhoorn/orgs","repos_url":"https://api.github.com/users/gavanderhoorn/repos","events_url":"https://api.github.com/users/gavanderhoorn/events{/privacy}","received_events_url":"https://api.github.com/users/gavanderhoorn/received_events","type":"User","site_admin":false},"created_at":"2016-10-11T11:03:33Z","updated_at":"2016-10-11T11:03:33Z","body":"> Its a bug report.\r\n\r\n`<pedantic>`A bug report would be reporting something that is wrong, or deviates from the expected or specced behaviour. How can setting the joint limits to what the mfg specs be a bug?`</pedantic>`\r\n\r\n> Limiting the elbow joint range of motion should fix the planning in Moveit\r\n\r\nCould you perhaps comment on ros-planning/moveit#276? I'd like to include the OP there in this discussion, as he must have had a reason for implementing a fair bit of infrastructure instead of the seemingly 'trivial' work around of limiting the range of the elbow. \r\n\r\n@achim-k?\r\n"}}
{"actor":{"display_login":"gavanderhoorn"}}