{"action":"created","issue":{"url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/15","repository_url":"https://api.github.com/repos/laas/rviz_plugin_covariance","labels_url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/15/comments","events_url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/15/events","html_url":"https://github.com/laas/rviz_plugin_covariance/pull/15","id":138338644,"number":15,"title":"Fix 3D orientation","user":{"login":"Ellon","id":2206351,"avatar_url":"https://avatars.githubusercontent.com/u/2206351?v=3","gravatar_id":"","url":"https://api.github.com/users/Ellon","html_url":"https://github.com/Ellon","followers_url":"https://api.github.com/users/Ellon/followers","following_url":"https://api.github.com/users/Ellon/following{/other_user}","gists_url":"https://api.github.com/users/Ellon/gists{/gist_id}","starred_url":"https://api.github.com/users/Ellon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ellon/subscriptions","organizations_url":"https://api.github.com/users/Ellon/orgs","repos_url":"https://api.github.com/users/Ellon/repos","events_url":"https://api.github.com/users/Ellon/events{/privacy}","received_events_url":"https://api.github.com/users/Ellon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-03-04T00:25:59Z","updated_at":"2016-03-07T10:01:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/laas/rviz_plugin_covariance/pulls/15","html_url":"https://github.com/laas/rviz_plugin_covariance/pull/15","diff_url":"https://github.com/laas/rviz_plugin_covariance/pull/15.diff","patch_url":"https://github.com/laas/rviz_plugin_covariance/pull/15.patch"},"body":"This PR fixes #13 .\r\n\r\n3D orientation covariances is represented as flat ellipses along the axes. I'm probably still going do to some cleaning in the code before merging to make it easier to understand, but the mechanism to show the covariances should be the same. \r\n\r\nI decided to add an option to control if the orientation covariance is expressed in the rotating frame or the static frame. I took the opportunity to reorganize the covariance property a bit as well.\r\n\r\nI'll let this PR open for a few days for testing before merging it on indigo branch."},"comment":{"url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/comments/193187523","html_url":"https://github.com/laas/rviz_plugin_covariance/pull/15#issuecomment-193187523","issue_url":"https://api.github.com/repos/laas/rviz_plugin_covariance/issues/15","id":193187523,"user":{"login":"Ellon","id":2206351,"avatar_url":"https://avatars.githubusercontent.com/u/2206351?v=3","gravatar_id":"","url":"https://api.github.com/users/Ellon","html_url":"https://github.com/Ellon","followers_url":"https://api.github.com/users/Ellon/followers","following_url":"https://api.github.com/users/Ellon/following{/other_user}","gists_url":"https://api.github.com/users/Ellon/gists{/gist_id}","starred_url":"https://api.github.com/users/Ellon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ellon/subscriptions","organizations_url":"https://api.github.com/users/Ellon/orgs","repos_url":"https://api.github.com/users/Ellon/repos","events_url":"https://api.github.com/users/Ellon/events{/privacy}","received_events_url":"https://api.github.com/users/Ellon/received_events","type":"User","site_admin":false},"created_at":"2016-03-07T10:01:10Z","updated_at":"2016-03-07T10:01:10Z","body":"Sorry, I think I used the wrong word there. I wanted to say \"discussion\", not debate. We were not arguing. :)\r\n\r\nThe covariances are always displayed at the origin of `child_frame_id`, just the rotational covariance that can be chosen to follow the orientation of `header.frame_id` or `child_frame_id` from a combo box in the properties. \r\n\r\nIn fact, after reading more about it, now I think the right way to do is to always follow the orientation of `header.frame_id`, which is normally called \"fixed frame\" in the literature. I'll try to explain: a rotation defined as roll-pitch-yaw applied in the fixed frame means rotations along its x, y, and z axes of the fixed frame. The same rotation on `child_frame_id` (or the rotation/local frame on literature) will apply the rotations on x, y, z axis of the local frame, but these y and z axis will change after the rotation of each component, and we end up rotating x, y', z'', being y' the new y axis after the first rotation on x, and z'' being the new z axis after the rotation on x and on y', and x and z'' may not be orthogonal to each other. \r\n\r\nThis is not what's implemented by the current \"Local\" frame option, which just orients orientation ellipses on local x, y, z axis.\r\n\r\nThis non-orthogonality makes it less intuitive to display the rotational covariances. firstly because the position of the shapes in the display won't follow the usual orthogonality, and second because the planes used to draw the covariance between angles won't be perpendicular to the rotation axis. I think it can be done though, but won't provide a good way to visualizing the covariance."}}