{"action":"created","comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/comments/26013381","id":26013381,"diff_hunk":"@@ -0,0 +1,42 @@\n+function [point_accel, dpoint_accel] = pointAcceleration(obj, kinsol, body_index, point)","path":"systems/plants/@RigidBodyManipulator/pointAcceleration.m","position":1,"original_position":1,"commit_id":"1fcc95c723390765af750ef4e20a1407d3951c0a","original_commit_id":"1fcc95c723390765af750ef4e20a1407d3951c0a","user":{"login":"RussTedrake","id":6442292,"avatar_url":"https://avatars.githubusercontent.com/u/6442292?v=3","gravatar_id":"","url":"https://api.github.com/users/RussTedrake","html_url":"https://github.com/RussTedrake","followers_url":"https://api.github.com/users/RussTedrake/followers","following_url":"https://api.github.com/users/RussTedrake/following{/other_user}","gists_url":"https://api.github.com/users/RussTedrake/gists{/gist_id}","starred_url":"https://api.github.com/users/RussTedrake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RussTedrake/subscriptions","organizations_url":"https://api.github.com/users/RussTedrake/orgs","repos_url":"https://api.github.com/users/RussTedrake/repos","events_url":"https://api.github.com/users/RussTedrake/events{/privacy}","received_events_url":"https://api.github.com/users/RussTedrake/received_events","type":"User","site_admin":false},"body":"is this really a method that we want to have a public face?  i worry that it is potentially confusing.  i preferred it back inside centerOfMassJacobianDotTimesV.  if it is going to be used by multiple methods, then we could at least make it private?","created_at":"2015-03-09T02:56:09Z","updated_at":"2015-03-09T02:56:09Z","html_url":"https://github.com/RobotLocomotion/drake/pull/814#discussion_r26013381","pull_request_url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814","_links":{"self":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/comments/26013381"},"html":{"href":"https://github.com/RobotLocomotion/drake/pull/814#discussion_r26013381"},"pull_request":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814"}}},"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814","id":30111934,"html_url":"https://github.com/RobotLocomotion/drake/pull/814","diff_url":"https://github.com/RobotLocomotion/drake/pull/814.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/814.patch","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/814","number":814,"state":"open","locked":false,"title":"Centroidal momentum matrix / center of mass cleanup","user":{"login":"tkoolen","id":2585880,"avatar_url":"https://avatars.githubusercontent.com/u/2585880?v=3","gravatar_id":"","url":"https://api.github.com/users/tkoolen","html_url":"https://github.com/tkoolen","followers_url":"https://api.github.com/users/tkoolen/followers","following_url":"https://api.github.com/users/tkoolen/following{/other_user}","gists_url":"https://api.github.com/users/tkoolen/gists{/gist_id}","starred_url":"https://api.github.com/users/tkoolen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkoolen/subscriptions","organizations_url":"https://api.github.com/users/tkoolen/orgs","repos_url":"https://api.github.com/users/tkoolen/repos","events_url":"https://api.github.com/users/tkoolen/events{/privacy}","received_events_url":"https://api.github.com/users/tkoolen/received_events","type":"User","site_admin":false},"body":"A bunch of cleanup (and some new features):\r\n* extracted out a worldMomentumMatrix method (CMM minus the transformation from world frame to CoM frame)\r\n* noticed that computing a CMM is currently faster than computing a CoM Jacobian (old method simply did num_bodies forwardKin calls). The CoM Jacobian is just the bottom three rows of the CMM (or actually even of the world momentum matrix), divided by the total mass. Changed CoM Jacobian method so that it calls the worldMomentumMatrix method.\r\n* added robotnum option to all CoM/CMM related methods (including the *DotTimesV methods)\r\n* computing the gradient of a CMM requires the gradient of the CoM (i.e. the CoM Jacobian in terms of qdot) due to the transformation from world frame to centroidal frame. But this is again just the bottom rows of the CMM divided by total mass. We were doing double work by computing it explicitly again. Fixed.\r\n* the transformation from world frame to centroidal frame in centroidalMomentumMatrix is just a translation. New implementation exploits this fact, instead of treating it as a general transformation.\r\n* added in_terms_of_qdot option to getCOM. This also allowed me to enable testing of centerOfMassJacobianDotTimesV for a quat parameterized robot.\r\n* added totalMass method, both in C++ and Matlab.\r\n* moved pointAcceleration method, which was used in my old Matlab getCOM implementation, into its own file.\r\n* modified Matlab code to match updated C++ code\r\n","created_at":"2015-02-26T20:14:11Z","updated_at":"2015-03-09T02:56:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8e8fab882411412fc6114237e5dcb2682b7bafa1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814/commits","review_comments_url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814/comments","review_comment_url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/814/comments","statuses_url":"https://api.github.com/repos/RobotLocomotion/drake/statuses/1fcc95c723390765af750ef4e20a1407d3951c0a","head":{"label":"tkoolen:cmm-com-cleanup","ref":"cmm-com-cleanup","sha":"1fcc95c723390765af750ef4e20a1407d3951c0a","user":{"login":"tkoolen","id":2585880,"avatar_url":"https://avatars.githubusercontent.com/u/2585880?v=3","gravatar_id":"","url":"https://api.github.com/users/tkoolen","html_url":"https://github.com/tkoolen","followers_url":"https://api.github.com/users/tkoolen/followers","following_url":"https://api.github.com/users/tkoolen/following{/other_user}","gists_url":"https://api.github.com/users/tkoolen/gists{/gist_id}","starred_url":"https://api.github.com/users/tkoolen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkoolen/subscriptions","organizations_url":"https://api.github.com/users/tkoolen/orgs","repos_url":"https://api.github.com/users/tkoolen/repos","events_url":"https://api.github.com/users/tkoolen/events{/privacy}","received_events_url":"https://api.github.com/users/tkoolen/received_events","type":"User","site_admin":false},"repo":{"id":18049528,"name":"drake","full_name":"tkoolen/drake","owner":{"login":"tkoolen","id":2585880,"avatar_url":"https://avatars.githubusercontent.com/u/2585880?v=3","gravatar_id":"","url":"https://api.github.com/users/tkoolen","html_url":"https://github.com/tkoolen","followers_url":"https://api.github.com/users/tkoolen/followers","following_url":"https://api.github.com/users/tkoolen/following{/other_user}","gists_url":"https://api.github.com/users/tkoolen/gists{/gist_id}","starred_url":"https://api.github.com/users/tkoolen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkoolen/subscriptions","organizations_url":"https://api.github.com/users/tkoolen/orgs","repos_url":"https://api.github.com/users/tkoolen/repos","events_url":"https://api.github.com/users/tkoolen/events{/privacy}","received_events_url":"https://api.github.com/users/tkoolen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tkoolen/drake","description":"A planning, control, and analysis toolbox for nonlinear dynamical systems.  Please see the WIKI for documentation.","fork":true,"url":"https://api.github.com/repos/tkoolen/drake","forks_url":"https://api.github.com/repos/tkoolen/drake/forks","keys_url":"https://api.github.com/repos/tkoolen/drake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tkoolen/drake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tkoolen/drake/teams","hooks_url":"https://api.github.com/repos/tkoolen/drake/hooks","issue_events_url":"https://api.github.com/repos/tkoolen/drake/issues/events{/number}","events_url":"https://api.github.com/repos/tkoolen/drake/events","assignees_url":"https://api.github.com/repos/tkoolen/drake/assignees{/user}","branches_url":"https://api.github.com/repos/tkoolen/drake/branches{/branch}","tags_url":"https://api.github.com/repos/tkoolen/drake/tags","blobs_url":"https://api.github.com/repos/tkoolen/drake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tkoolen/drake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tkoolen/drake/git/refs{/sha}","trees_url":"https://api.github.com/repos/tkoolen/drake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tkoolen/drake/statuses/{sha}","languages_url":"https://api.github.com/repos/tkoolen/drake/languages","stargazers_url":"https://api.github.com/repos/tkoolen/drake/stargazers","contributors_url":"https://api.github.com/repos/tkoolen/drake/contributors","subscribers_url":"https://api.github.com/repos/tkoolen/drake/subscribers","subscription_url":"https://api.github.com/repos/tkoolen/drake/subscription","commits_url":"https://api.github.com/repos/tkoolen/drake/commits{/sha}","git_commits_url":"https://api.github.com/repos/tkoolen/drake/git/commits{/sha}","comments_url":"https://api.github.com/repos/tkoolen/drake/comments{/number}","issue_comment_url":"https://api.github.com/repos/tkoolen/drake/issues/comments{/number}","contents_url":"https://api.github.com/repos/tkoolen/drake/contents/{+path}","compare_url":"https://api.github.com/repos/tkoolen/drake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tkoolen/drake/merges","archive_url":"https://api.github.com/repos/tkoolen/drake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tkoolen/drake/downloads","issues_url":"https://api.github.com/repos/tkoolen/drake/issues{/number}","pulls_url":"https://api.github.com/repos/tkoolen/drake/pulls{/number}","milestones_url":"https://api.github.com/repos/tkoolen/drake/milestones{/number}","notifications_url":"https://api.github.com/repos/tkoolen/drake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tkoolen/drake/labels{/name}","releases_url":"https://api.github.com/repos/tkoolen/drake/releases{/id}","created_at":"2014-03-24T02:31:26Z","updated_at":"2014-07-07T14:33:06Z","pushed_at":"2015-03-05T19:43:14Z","git_url":"git://github.com/tkoolen/drake.git","ssh_url":"git@github.com:tkoolen/drake.git","clone_url":"https://github.com/tkoolen/drake.git","svn_url":"https://github.com/tkoolen/drake","homepage":"https://github.com/RobotLocomotion/drake/wiki","size":156241,"stargazers_count":0,"watchers_count":0,"language":"Matlab","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"RobotLocomotion:master","ref":"master","sha":"73536e4041dba09f9d10d058cc42ab077f7ae058","user":{"login":"RobotLocomotion","id":6496345,"avatar_url":"https://avatars.githubusercontent.com/u/6496345?v=3","gravatar_id":"","url":"https://api.github.com/users/RobotLocomotion","html_url":"https://github.com/RobotLocomotion","followers_url":"https://api.github.com/users/RobotLocomotion/followers","following_url":"https://api.github.com/users/RobotLocomotion/following{/other_user}","gists_url":"https://api.github.com/users/RobotLocomotion/gists{/gist_id}","starred_url":"https://api.github.com/users/RobotLocomotion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobotLocomotion/subscriptions","organizations_url":"https://api.github.com/users/RobotLocomotion/orgs","repos_url":"https://api.github.com/users/RobotLocomotion/repos","events_url":"https://api.github.com/users/RobotLocomotion/events{/privacy}","received_events_url":"https://api.github.com/users/RobotLocomotion/received_events","type":"Organization","site_admin":false},"repo":{"id":16256144,"name":"drake","full_name":"RobotLocomotion/drake","owner":{"login":"RobotLocomotion","id":6496345,"avatar_url":"https://avatars.githubusercontent.com/u/6496345?v=3","gravatar_id":"","url":"https://api.github.com/users/RobotLocomotion","html_url":"https://github.com/RobotLocomotion","followers_url":"https://api.github.com/users/RobotLocomotion/followers","following_url":"https://api.github.com/users/RobotLocomotion/following{/other_user}","gists_url":"https://api.github.com/users/RobotLocomotion/gists{/gist_id}","starred_url":"https://api.github.com/users/RobotLocomotion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobotLocomotion/subscriptions","organizations_url":"https://api.github.com/users/RobotLocomotion/orgs","repos_url":"https://api.github.com/users/RobotLocomotion/repos","events_url":"https://api.github.com/users/RobotLocomotion/events{/privacy}","received_events_url":"https://api.github.com/users/RobotLocomotion/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RobotLocomotion/drake","description":"A planning, control, and analysis toolbox for nonlinear dynamical systems.  Please see the WIKI for documentation.","fork":false,"url":"https://api.github.com/repos/RobotLocomotion/drake","forks_url":"https://api.github.com/repos/RobotLocomotion/drake/forks","keys_url":"https://api.github.com/repos/RobotLocomotion/drake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RobotLocomotion/drake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RobotLocomotion/drake/teams","hooks_url":"https://api.github.com/repos/RobotLocomotion/drake/hooks","issue_events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/events{/number}","events_url":"https://api.github.com/repos/RobotLocomotion/drake/events","assignees_url":"https://api.github.com/repos/RobotLocomotion/drake/assignees{/user}","branches_url":"https://api.github.com/repos/RobotLocomotion/drake/branches{/branch}","tags_url":"https://api.github.com/repos/RobotLocomotion/drake/tags","blobs_url":"https://api.github.com/repos/RobotLocomotion/drake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RobotLocomotion/drake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RobotLocomotion/drake/git/refs{/sha}","trees_url":"https://api.github.com/repos/RobotLocomotion/drake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RobotLocomotion/drake/statuses/{sha}","languages_url":"https://api.github.com/repos/RobotLocomotion/drake/languages","stargazers_url":"https://api.github.com/repos/RobotLocomotion/drake/stargazers","contributors_url":"https://api.github.com/repos/RobotLocomotion/drake/contributors","subscribers_url":"https://api.github.com/repos/RobotLocomotion/drake/subscribers","subscription_url":"https://api.github.com/repos/RobotLocomotion/drake/subscription","commits_url":"https://api.github.com/repos/RobotLocomotion/drake/commits{/sha}","git_commits_url":"https://api.github.com/repos/RobotLocomotion/drake/git/commits{/sha}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/comments{/number}","issue_comment_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments{/number}","contents_url":"https://api.github.com/repos/RobotLocomotion/drake/contents/{+path}","compare_url":"https://api.github.com/repos/RobotLocomotion/drake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RobotLocomotion/drake/merges","archive_url":"https://api.github.com/repos/RobotLocomotion/drake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RobotLocomotion/drake/downloads","issues_url":"https://api.github.com/repos/RobotLocomotion/drake/issues{/number}","pulls_url":"https://api.github.com/repos/RobotLocomotion/drake/pulls{/number}","milestones_url":"https://api.github.com/repos/RobotLocomotion/drake/milestones{/number}","notifications_url":"https://api.github.com/repos/RobotLocomotion/drake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/labels{/name}","releases_url":"https://api.github.com/repos/RobotLocomotion/drake/releases{/id}","created_at":"2014-01-26T16:11:05Z","updated_at":"2015-03-07T05:53:40Z","pushed_at":"2015-03-03T11:52:01Z","git_url":"git://github.com/RobotLocomotion/drake.git","ssh_url":"git@github.com:RobotLocomotion/drake.git","clone_url":"https://github.com/RobotLocomotion/drake.git","svn_url":"https://github.com/RobotLocomotion/drake","homepage":"https://github.com/RobotLocomotion/drake/wiki","size":170476,"stargazers_count":92,"watchers_count":92,"language":"Matlab","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":88,"mirror_url":null,"open_issues_count":102,"forks":88,"open_issues":102,"watchers":92,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814"},"html":{"href":"https://github.com/RobotLocomotion/drake/pull/814"},"issue":{"href":"https://api.github.com/repos/RobotLocomotion/drake/issues/814"},"comments":{"href":"https://api.github.com/repos/RobotLocomotion/drake/issues/814/comments"},"review_comments":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814/comments"},"review_comment":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RobotLocomotion/drake/pulls/814/commits"},"statuses":{"href":"https://api.github.com/repos/RobotLocomotion/drake/statuses/1fcc95c723390765af750ef4e20a1407d3951c0a"}}}}