{"action":"closed","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/1107","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/1107/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/1107/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/1107/events","html_url":"https://github.com/RobotLocomotion/drake/issues/1107","id":76525792,"number":1107,"title":"maxROAFeedback does not allow to change options or include saturation","user":{"login":"zbuffer86","id":9898773,"avatar_url":"https://avatars.githubusercontent.com/u/9898773?v=3","gravatar_id":"","url":"https://api.github.com/users/zbuffer86","html_url":"https://github.com/zbuffer86","followers_url":"https://api.github.com/users/zbuffer86/followers","following_url":"https://api.github.com/users/zbuffer86/following{/other_user}","gists_url":"https://api.github.com/users/zbuffer86/gists{/gist_id}","starred_url":"https://api.github.com/users/zbuffer86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zbuffer86/subscriptions","organizations_url":"https://api.github.com/users/zbuffer86/orgs","repos_url":"https://api.github.com/users/zbuffer86/repos","events_url":"https://api.github.com/users/zbuffer86/events{/privacy}","received_events_url":"https://api.github.com/users/zbuffer86/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-14T23:31:37Z","updated_at":"2015-06-22T15:49:23Z","closed_at":"2015-06-22T15:49:23Z","body":"Dear Russ! \r\n\r\nI have watched your lectures on \"underactuated robotics\" some time ago and I have recently found this great toolbox. I was really happy to see some implementations. I want to use it in my Phd thesis. I need to learn a lot in the topic and about this code but I think I have found some glitches....\r\n\r\nMy system is similar to the Acrobot so I tried running the examples to understand the concepts and I was especially interested in the nonlinear feedback controllers calculated by SOS optimization (I have read the article you're referring to) and this is what I found:\r\n\r\n1. Everything run ok but something was strange - there was no change in results although I was changing the options in \"runMaxROA.m\". After a small investigation I have found that there is a small mistake in the code (at least I think it is a mistake).\r\nIn line 33 of \"maxROAFeedback.m\" there is:\r\n`if (nargin<5) options = struct();` \r\nwhich effectively overwrites any options set by user because `options` is the 4th argument to this function. I have just changed it to `nargin<4` and it started working ok.\r\n\r\n2. After some time I have noticed another thing - the input limits did not seem to change anything although the file says that the saturation is implemented. I have found out what happens.\r\nLine 54 says: `sys = sys.inStateFrame(Vframe)`,\r\nand it effectively removes the input limits set in the system. I checked it by displaying umin/umax before and after this function and it always changed the values to infinity.\r\nI have very little experience with this toolbox but it doesn't seem right, because the whole saturation part just never runs. I have tried setting the limits again after this line but It caused some dimension errors in calculations. Maybe this code is just not finished yet and you blocked it on purpose(?)... \r\n\r\nRegards,\r\nPatryk"}}