{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3828","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3828/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3828/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3828/events","html_url":"https://github.com/RobotLocomotion/drake/pull/3828","id":183527212,"number":3828,"title":"Sys2 affine and linear systems","user":{"login":"naveenoid","id":3089530,"avatar_url":"https://avatars.githubusercontent.com/u/3089530?v=3","gravatar_id":"","url":"https://api.github.com/users/naveenoid","html_url":"https://github.com/naveenoid","followers_url":"https://api.github.com/users/naveenoid/followers","following_url":"https://api.github.com/users/naveenoid/following{/other_user}","gists_url":"https://api.github.com/users/naveenoid/gists{/gist_id}","starred_url":"https://api.github.com/users/naveenoid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naveenoid/subscriptions","organizations_url":"https://api.github.com/users/naveenoid/orgs","repos_url":"https://api.github.com/users/naveenoid/repos","events_url":"https://api.github.com/users/naveenoid/events{/privacy}","received_events_url":"https://api.github.com/users/naveenoid/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/priority:%20high","name":"priority: high","color":"b60205"},{"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/team:%20software%20core","name":"team: software core","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"liangfok","id":1388098,"avatar_url":"https://avatars.githubusercontent.com/u/1388098?v=3","gravatar_id":"","url":"https://api.github.com/users/liangfok","html_url":"https://github.com/liangfok","followers_url":"https://api.github.com/users/liangfok/followers","following_url":"https://api.github.com/users/liangfok/following{/other_user}","gists_url":"https://api.github.com/users/liangfok/gists{/gist_id}","starred_url":"https://api.github.com/users/liangfok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liangfok/subscriptions","organizations_url":"https://api.github.com/users/liangfok/orgs","repos_url":"https://api.github.com/users/liangfok/repos","events_url":"https://api.github.com/users/liangfok/events{/privacy}","received_events_url":"https://api.github.com/users/liangfok/received_events","type":"User","site_admin":false},"assignees":[{"login":"liangfok","id":1388098,"avatar_url":"https://avatars.githubusercontent.com/u/1388098?v=3","gravatar_id":"","url":"https://api.github.com/users/liangfok","html_url":"https://github.com/liangfok","followers_url":"https://api.github.com/users/liangfok/followers","following_url":"https://api.github.com/users/liangfok/following{/other_user}","gists_url":"https://api.github.com/users/liangfok/gists{/gist_id}","starred_url":"https://api.github.com/users/liangfok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liangfok/subscriptions","organizations_url":"https://api.github.com/users/liangfok/orgs","repos_url":"https://api.github.com/users/liangfok/repos","events_url":"https://api.github.com/users/liangfok/events{/privacy}","received_events_url":"https://api.github.com/users/liangfok/received_events","type":"User","site_admin":false},{"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}],"milestone":null,"comments":4,"created_at":"2016-10-17T21:04:16Z","updated_at":"2016-10-18T21:42:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/3828","html_url":"https://github.com/RobotLocomotion/drake/pull/3828","diff_url":"https://github.com/RobotLocomotion/drake/pull/3828.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/3828.patch"},"body":"Solves https://github.com/RobotLocomotion/drake/issues/3619\r\n\r\nLeft out GainSystem since it is already having a System2.0 version at the moment.\r\n\r\nFor feature review:\r\n+@liangfok\r\n+@RussTedrake\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/3828)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/254648134","html_url":"https://github.com/RobotLocomotion/drake/pull/3828#issuecomment-254648134","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3828","id":254648134,"user":{"login":"naveenoid","id":3089530,"avatar_url":"https://avatars.githubusercontent.com/u/3089530?v=3","gravatar_id":"","url":"https://api.github.com/users/naveenoid","html_url":"https://github.com/naveenoid","followers_url":"https://api.github.com/users/naveenoid/followers","following_url":"https://api.github.com/users/naveenoid/following{/other_user}","gists_url":"https://api.github.com/users/naveenoid/gists{/gist_id}","starred_url":"https://api.github.com/users/naveenoid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naveenoid/subscriptions","organizations_url":"https://api.github.com/users/naveenoid/orgs","repos_url":"https://api.github.com/users/naveenoid/repos","events_url":"https://api.github.com/users/naveenoid/events{/privacy}","received_events_url":"https://api.github.com/users/naveenoid/received_events","type":"User","site_admin":false},"created_at":"2016-10-18T21:42:32Z","updated_at":"2016-10-18T21:42:32Z","body":"\n\n\n\nReview status: 0 of 12 files reviewed at latest revision, 35 unresolved discussions.\n\n---\n\n*[drake/systems/plants/CMakeLists.txt, line 205 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMN3i-tSb70oiY9h49:-KUNQiZIqkpNu4uMjciO:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/CMakeLists.txt#L205)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> I probably would have put this into system/framework/primitives .  there is nothing about it that is really a plant (controllers,estimators, will be linear, too)\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 15 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUONJYxgZkAlyMdUtzR:-KUOazYd1eSn2W8uetbI:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L15)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Extra blank line here.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 27 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUONQyL1ZupwZKToW0U:-KUOb2-930q4iyc2XvVI:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L27)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> BTW, given these assertions, it may be useful to document these dimension requirements in this method's Doxygen comment block. Currently, readers need to refer back to an equation in the class's overall documentation, meaning the information is two levels removed and never explicitly stated.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 32 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUODB00e8hz-qD1YgWl:-KUOc4d6DfN_JKJaGbSQ:bar3qds) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L32)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> BTW, should we assert `kNumOutputs == D.rows()`?\n</details>\nYes its vital to ensure C, D, and Y0 all share the same number of rows.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 34 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQlhd5L4kiFngrGyT:-KUNfoQCx4CvhaQHynM3:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L34)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> remove \"for forcing term\" -- which doesn't make sense in the general case\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 38 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQuqFYVmVPyfSYgM7:-KUNfoxikYWZXMaA3hsc:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L38)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> no q,qdot.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 45 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMR-doL970HFKiExlD:-KUNhMxStqzvPuIde_nT:b-vo4uag) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L45)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> i see.  i guess these are moderately useful..?\n</details>\nIts just for the sake of making it obvious that we have a single input and single output port to consider.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 76 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMROVFzk7H4S7lbnDQ:-KUNhczmgy_sUZWufDYO:b-99ltxn) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L76)):*\n<details><summary><i>Previously, david-german-tri (David German) wrote…</i></summary>\n> Agreed, and no framework changes are needed.  Since this is a LeafSystem, you can downcast to BasicVector and then use `get_value`.  (We could consider adding sugar for that on `LeafSystem`.)\n</details>\nDone. Can I leave it for now or do you prefer a modification within this PR?\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 110 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMRiMqfnO4PW7S2CaA:-KUNhmcoBmkzLgz_6L5m:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L110)):*\n<details><summary><i>Previously, david-german-tri (David German) wrote…</i></summary>\n> There is.  At a glance, I think you should be able to delete this method with no change in behavior.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 117 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOPFLuY5HfdU9kL8HN:-KUOcqptUbJgUmwc-Muq:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L117)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Strange indentation (extra two spaces).\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 117 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOPXH1FWrn0j-iJRD7:-KUOcrDS-ZV4AVqjeQhv:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L117)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> BTW, no need for `std::` since you have `using std::make_unique` above.\n> \n> (same comment below)\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.cc, line 122 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOPwE1qhPrjBW_p1Hd:-KUOctgkW6HMm0SnUva_:b-71c5wj) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.cc#L122)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> BTW, to be consist with other System 2.0 primitives, should `AffineSystem` employ the three file `-inl.h` pattern? \n> \n> http://drake.mit.edu/cxx_inl.html\n</details>\nI thought that was only a suggestion and not mandatory for System2.0 primitives...\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 3 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQUtGppzDkFbvu5ME:-KUOd0-n5D9so5zz1dnS:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L3)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> not needed anymore?\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 7 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQZZYKctHPRbMI7Y_:-KUNix45NFeDKiuYMmPK:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L7)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> i would think that leaf_system.h should be sufficient here?\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 13 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOJ-CASXf_74YWLxaE:-KUOR4aiv8VpMyHbB-pG:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L13)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> The sentence above is confusing because `xDot` is not an output of the system and it does not introduce the state space coefficient matrices to the reader.\n> \n> Consider rewording as follows:\n> \n> > An Affine system. Given an input vector `u`, a state vector `x`, and state space coefficient matrices `A`, `B`, `C`, and `D`, this system implements the following equations:\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 14 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMNYSrMTSlVZeX8FU2:-KUOR591MO60WA4KFuQi:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L14)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Here is the code:\n> \n> ```\n>  * @f[\n>  *   \\dot{x} = Ax + Bu + \\dot{x}_0 \\newline\n>  *   y = Cx + Du + y_0\n>  * @f]\n> ```\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 27 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMNowpMAMNEE20_MCC:-KUNkJvUEiwy0SOUa5Ar:b-sxh5br) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L27)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> primitives?\n</details>\nDone. (In primitive_systems)\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 36 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOIXTvDHOCeJPR1UXz:-KUOR_rhlDvWzlFK5NOJ:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L36)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> \"Construct a\" should be \"Constructs an\" per syle guide.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 36 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOIhEWT7T9zUYsJRK8:-KUORlBPUq_djrR55DRt:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L36)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> BTW, should \"matrices\" be \"coefficient matrices\"?\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 42 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMO2MySbbxEYKL6VF5:-KUOPA9tapd-6LstfF_o:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L42)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> fwiw, the matlab version had xdot0 as the third argument. \n> https://github.com/RobotLocomotion/drake/blob/1084910d092f2aba190e2795d1c5bce4d756bbc6/drake/systems/AffineSystem.m\n> which feels more natural to me. (probably due to habit)\n> \n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 43 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMP8ZgAkJUPO4iEaE3:-KUOhVfdXZulSZPehH1H:b-kdem0) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L43)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> you are also not handling the case of discrete time affine systems (which was handled in matlab).  probably worth thinking through now, if not implementing it for this PR.\n</details>\nHow would you suggest I handle this? A TODO comment? \n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 46 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMOZEyXyqz717WKTvP:-KUORxfRgTBUXSoLITl7:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L46)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> It should be:\n> \n> ```\n> return !kD.isZero();\n> ```\n> \n> https://github.com/RobotLocomotion/drake/blob/4be831610977f0bef7a4b0607f92fec0eae1f660/drake/systems/LinearSystem.h#L95\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 59 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMOuxkv8Rp-eo93p4z:-KUOSJZv4XTobUbeHltc:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L59)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Agreed.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 67 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMP2uk5NJypPLYXFO5:-KUOSKZ3Ohq0ZnxhuLoD:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L67)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Agree we don't need this.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 70 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOP6WppeovFan-p-JU:-KUOSQbKbW0OIGcK7YJL:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L70)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Don't need this since this is a `LeafSystem` that declares its output port in the constructor.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 79 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUOMuGTk50865tXzcT_:-KUOSTPHbaZXb2697wzm:b-irtg0g) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L79)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Are these necessary? What's the use case?\n</details>\nJust for querying a system that is passed around as a pointer. Might prove useful later. Can remove if they are unnecessary.\n\n---\n\n*[drake/systems/plants/affine_linear_system/affine_system_plant.h, line 87 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUNLoA5RUq9KULRLVQP:-KUOY2aNH0EbI07yO2o4:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/affine_system_plant.h#L87)):*\n<details><summary><i>Previously, liangfok (Chien-Liang Fok) wrote…</i></summary>\n> Per style guide these class member variables must end with an underscore and must _not_ start with \"k\".\n> \n> https://google.github.io/styleguide/cppguide.html#Constant_Names\n> \n> This is because these variables are not constant \"for the duration of the program\" since they are initialized by the constructor.\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/CMakeLists.txt, line 1 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMPmHWFvhJBVCWLako:-KUOY5MKKNKpOPVI5I5C:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/CMakeLists.txt#L1)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> again, not plant.  and i would think these are primal enough to be in primitives\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/linear_system_plant.cc, line 19 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQ0Qpzrh6LdiHqS0f:-KUOYIepCNAN6Jll2Ssw:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/linear_system_plant.cc#L19)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> DRAKE_EXPORTs are not needed anymore?\n</details>\nDone.\n\n---\n\n*[drake/systems/plants/affine_linear_system/linear_system_plant.cc, line 20 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQArBJpoI7_xc63Ok:-KUOaeCUaFTC4oUlQE0Y:bg3n39n) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/linear_system_plant.cc#L20)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> are these explicit instantiations allowed in the main header?\n</details>\nAFAIK not. I followed the style used in a lot of the other newer System2.0 primitives.\n\n---\n\n*[drake/systems/plants/affine_linear_system/linear_system_plant.h, line 14 at r1](https://reviewable.io:443/reviews/robotlocomotion/drake/3828#-KUMQOSBfPcUcJeeKkq_:-KUOalNt6p8JFNX8caNE:b-896fix) ([raw file](https://github.com/robotlocomotion/drake/blob/074678d53389e468d5b5d63a767b7c52a119c49c/drake/systems/plants/affine_linear_system/linear_system_plant.h#L14)):*\n<details><summary><i>Previously, RussTedrake (Russ Tedrake) wrote…</i></summary>\n> i don't think you should need any of these headers, except affine system?\n</details>\nDone.\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/robotlocomotion/drake/3828)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"naveenoid"}}