{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/4311","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/4311/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/4311/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/4311/events","html_url":"https://github.com/RobotLocomotion/drake/pull/4311","id":192613546,"number":4311,"title":"Documentation for some RBT transform methods","user":{"login":"amcastro-tri","id":17601461,"avatar_url":"https://avatars.githubusercontent.com/u/17601461?v=3","gravatar_id":"","url":"https://api.github.com/users/amcastro-tri","html_url":"https://github.com/amcastro-tri","followers_url":"https://api.github.com/users/amcastro-tri/followers","following_url":"https://api.github.com/users/amcastro-tri/following{/other_user}","gists_url":"https://api.github.com/users/amcastro-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/amcastro-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amcastro-tri/subscriptions","organizations_url":"https://api.github.com/users/amcastro-tri/orgs","repos_url":"https://api.github.com/users/amcastro-tri/repos","events_url":"https://api.github.com/users/amcastro-tri/events{/privacy}","received_events_url":"https://api.github.com/users/amcastro-tri/received_events","type":"User","site_admin":false},"labels":[{"id":351649295,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/team:%20dynamics","name":"team: dynamics","color":"0052cc","default":false},{"id":77799314,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/type:%20documentation","name":"type: documentation","color":"009800","default":false}],"state":"open","locked":false,"assignee":{"login":"edrumwri","id":2224335,"avatar_url":"https://avatars.githubusercontent.com/u/2224335?v=3","gravatar_id":"","url":"https://api.github.com/users/edrumwri","html_url":"https://github.com/edrumwri","followers_url":"https://api.github.com/users/edrumwri/followers","following_url":"https://api.github.com/users/edrumwri/following{/other_user}","gists_url":"https://api.github.com/users/edrumwri/gists{/gist_id}","starred_url":"https://api.github.com/users/edrumwri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edrumwri/subscriptions","organizations_url":"https://api.github.com/users/edrumwri/orgs","repos_url":"https://api.github.com/users/edrumwri/repos","events_url":"https://api.github.com/users/edrumwri/events{/privacy}","received_events_url":"https://api.github.com/users/edrumwri/received_events","type":"User","site_admin":false},"assignees":[{"login":"edrumwri","id":2224335,"avatar_url":"https://avatars.githubusercontent.com/u/2224335?v=3","gravatar_id":"","url":"https://api.github.com/users/edrumwri","html_url":"https://github.com/edrumwri","followers_url":"https://api.github.com/users/edrumwri/followers","following_url":"https://api.github.com/users/edrumwri/following{/other_user}","gists_url":"https://api.github.com/users/edrumwri/gists{/gist_id}","starred_url":"https://api.github.com/users/edrumwri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edrumwri/subscriptions","organizations_url":"https://api.github.com/users/edrumwri/orgs","repos_url":"https://api.github.com/users/edrumwri/repos","events_url":"https://api.github.com/users/edrumwri/events{/privacy}","received_events_url":"https://api.github.com/users/edrumwri/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-11-30T16:31:57Z","updated_at":"2016-11-30T17:24:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/4311","html_url":"https://github.com/RobotLocomotion/drake/pull/4311","diff_url":"https://github.com/RobotLocomotion/drake/pull/4311.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/4311.patch"},"body":"Documents `RBT::transformPoints` and `RBT::transformPointsJacobian`.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/robotlocomotion/drake/4311)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/263936668","html_url":"https://github.com/RobotLocomotion/drake/pull/4311#issuecomment-263936668","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/4311","id":263936668,"user":{"login":"edrumwri","id":2224335,"avatar_url":"https://avatars.githubusercontent.com/u/2224335?v=3","gravatar_id":"","url":"https://api.github.com/users/edrumwri","html_url":"https://github.com/edrumwri","followers_url":"https://api.github.com/users/edrumwri/followers","following_url":"https://api.github.com/users/edrumwri/following{/other_user}","gists_url":"https://api.github.com/users/edrumwri/gists{/gist_id}","starred_url":"https://api.github.com/users/edrumwri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edrumwri/subscriptions","organizations_url":"https://api.github.com/users/edrumwri/orgs","repos_url":"https://api.github.com/users/edrumwri/repos","events_url":"https://api.github.com/users/edrumwri/events{/privacy}","received_events_url":"https://api.github.com/users/edrumwri/received_events","type":"User","site_admin":false},"created_at":"2016-11-30T17:24:07Z","updated_at":"2016-11-30T17:24:07Z","body":"\n\n\n\nReviewed 1 of 1 files at r1.\nReview status: all files reviewed at latest revision, 10 unresolved discussions.\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 465 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqD6udzlxn-3ZBVPCn:-KXqD6udzlxn-3ZBVPCo:b1eqoe0) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L465)):*\n> ```objc\n> \n>   /// Given a set of points in the frame referenced by @p\n>   /// from_body_or_frame_ind this methods returns the same set of points in\n> ```\n\n\"in described in\"\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 470 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqDD5K3kZqYrBWRzdP:-KXqDD5K3kZqYrBWRzdQ:bidgejq) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L470)):*\n> ```objc\n>   /// @param[in] points A matrix in R^{3 x n} containing n 3D column vectors\n>   /// for each point to be transformed.\n>   /// @param[in] from_body_or_frame_ind Frame identifier on which input points\n> ```\n\nImagine that I'm looking up this function and I see that it takes an int for a body / frame identifier. What are valid values for that int? What are the meanings of the values? (0 refers to frame what? 1 refers to frame what?). Answering this might also answer my question: why does this method exist here? Put another way: points can be transformed between frames without needing to know anything about rigid bodies. So why is this function in RigidBodyTree? \n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 474 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqD2egJCIsi4He9ovu:-KXqD2egJCIsi4He9ovv:bc3rtmy) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L474)):*\n> ```objc\n>   /// @param[in] to_body_or_frame_ind Frame identifier on which output points\n>   /// are described.\n>   /// @returns The inut set of points described in the frame referenced by\n> ```\n\n\"inut\" -> \"input\"\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 515 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqE2Hadx3XTNunVOnt:-KXqE2Hadx3XTNunVOnu:by1jzdh) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L515)):*\n> ```objc\n>   /// Given a set of `n` points provided as column entries in @p points in\n>   /// `R^{3 x n}` this method computes a Jacobian matrix that relates each\n>   /// point's velocity with the generalized coordinates time derivatives\n> ```\n\n\"with\" -> \"with either\"\n\"generalized coordinates' time derivatives\" or, more comprehensibly, \"time derivatives of generalized coordinates\"\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 520 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqEOBtFJQ4Bh-esh4t:-KXqEOBtFJQ4Bh-esh4u:b-vqpfu4) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L520)):*\n> ```objc\n>   ///\n>   /// Defining `ndof = nq` if `in_terms_of_qdot = true` or `ndof = nv` if\n>   /// `in_terms_of_qdot = false`, the Jacobian matrix lives in\n> ```\n\n\"lives in\" -> (perhaps) \"is defined in\"\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 523 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqEc_fcfNxN3bULaB-:-KXqEc_fcfNxN3bULaB0:b-5nvoot) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L523)):*\n> ```objc\n>   /// `R^{3*n x ndof}` such that the linear velocity `v_i` of the `i-th`\n>   /// point is computed as `v_i = [J * v].segment<3>(i)` or, in terms of\n>   /// generalized coordinates time derivatives as\n> ```\n\nSame issue as above.\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 526 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqEhsgRGFqBd2skcCr:-KXqEhsgRGFqBd2skcCs:bsm5h45) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L526)):*\n> ```objc\n>   /// `v_i = [J * qdot].segment<3>(i)`.\n>   ///\n>   /// Note: Many entries in this matrix may be zero for non-participating\n> ```\n\nI understand what you mean by \"non-participating degrees of freedom\" but I wouldn't expect the average user to understand.\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 527 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqEshZ6g66Ih2dmhhO:-KXqEshZ6g66Ih2dmhhP:bj2f9ub) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L527)):*\n> ```objc\n>   ///\n>   /// Note: Many entries in this matrix may be zero for non-participating\n>   /// degrees of freedom. This might have an impact in the efficiency of your\n> ```\n\n\"in the\" -> \"on the'\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 533 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqF04KMV1C5ur2vNF1:-KXqF04KMV1C5ur2vNF2:b-mmw0ei) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L533)):*\n> ```objc\n>   /// @param[in] points A matrix in R^{3 x n} containing n 3D column vectors\n>   /// for each point to be transformed.\n>   /// @param[in] from_body_or_frame_ind Frame identifier on which input points\n> ```\n\nSame issue as in previous function.\n\n---\n\n*[drake/multibody/rigid_body_tree.h, line 547 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/4311#-KXqF92BByKt0mt0olho:-KXqF92BByKt0mt0olhp:bck8lgy) ([raw file](https://github.com/robotlocomotion/drake/blob/63ae0effbda2dd080af1dfaa830acac1ba82d72c/drake/multibody/rigid_body_tree.h#L547)):*\n> ```objc\n>   /// @see transformPoints() to transform positions instead of velocities.\n>   ///\n>   /// The Jacobian in this method only allows to obtain the linear velocity\n> ```\n\nI'd say something like \"The Jacobian returned consists only of the partial derivatives of the input points computed with respect to the degrees of freedom. It does not compute the partial derivatives of a frame orientation with respect to the degrees of freedom.\"\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/robotlocomotion/drake/4311)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"edrumwri"}}