{"action":"created","issue":{"url":"https://api.github.com/repos/machinekit/machinekit/issues/396","labels_url":"https://api.github.com/repos/machinekit/machinekit/issues/396/labels{/name}","comments_url":"https://api.github.com/repos/machinekit/machinekit/issues/396/comments","events_url":"https://api.github.com/repos/machinekit/machinekit/issues/396/events","html_url":"https://github.com/machinekit/machinekit/issues/396","id":51198765,"number":396,"title":"motion: can we kill free and teleop modes, yielding a modeless planner?","user":{"login":"mhaberler","id":901479,"avatar_url":"https://avatars.githubusercontent.com/u/901479?v=3","gravatar_id":"","url":"https://api.github.com/users/mhaberler","html_url":"https://github.com/mhaberler","followers_url":"https://api.github.com/users/mhaberler/followers","following_url":"https://api.github.com/users/mhaberler/following{/other_user}","gists_url":"https://api.github.com/users/mhaberler/gists{/gist_id}","starred_url":"https://api.github.com/users/mhaberler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhaberler/subscriptions","organizations_url":"https://api.github.com/users/mhaberler/orgs","repos_url":"https://api.github.com/users/mhaberler/repos","events_url":"https://api.github.com/users/mhaberler/events{/privacy}","received_events_url":"https://api.github.com/users/mhaberler/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/machinekit/machinekit/labels/problem","name":"problem","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":20,"created_at":"2014-12-06T22:31:20Z","updated_at":"2015-04-17T23:01:12Z","closed_at":null,"body":"I am considering how to remove teleop mode from motion, and possibly free mode; the insane mode switching with all its abortive behavior is a major stumbling block driving motion from more than input source, for instance a more sane jogging architecture but also other applications\r\n\r\nfor the below it's instructive to read https://github.com/araisrobo/linuxcnc/blob/master/src/emc/motion/teleop-notes\r\n\r\none question I have is on forward kinematics, see https://github.com/araisrobo/linuxcnc/blob/master/src/emc/motion/teleop-notes#L61\r\n\r\nFirst, note also that ALL kinematics currently in the code base yield KINEMATICS_BOTH (i.e. both forward and reverse kins available), which in effect makes teleop and coord mode identical\r\n\r\n(1) is it actually conceivable that for ANY machine, you can NOT come up with an unambiguous forward kins? I have a hard time imagining any such scenario - isnt it that given joint positions, one can always compute the cartesian position of the end effector? (I would rather want to)\r\n\r\nif the answer to this question is 'no', then teleop mode is a red herring and can be safely dropped (wouldnt be the first fish of this kind, size and age on the angle)\r\n\r\n\r\nwhile we are on the subject of removing modes, a second question - on removing free mode; the only use for free mode I see is for homing\r\n\r\nRight now the only type of move one can feed the _coord_ mode planner is a cartesian pose, i.e. kins applied, all axes specified, and in homed state\r\n\r\nNow assume what is currently coord mode had a new command which specified a move endpoint in _joint_ positions (i.e. which joint(s) affected and how much): this would in effect be a joint move (one or several joints), BUT using the coord mode planner. IOW: no more need for the 'free mode planner', and 'free mode'.\r\n\r\nTo home with such a modeless planner, one would have to allow such joint moves if unhomed or homed, but not allow axes (coord) moves if unhomed (it would also trivially enable jogging a gantry kins: just specify both joint endpoints)\r\n\r\n(2) what am I overlooking? (or is this whale #2 on the angle ;-?)\r\n"},"comment":{"url":"https://api.github.com/repos/machinekit/machinekit/issues/comments/94092745","html_url":"https://github.com/machinekit/machinekit/issues/396#issuecomment-94092745","issue_url":"https://api.github.com/repos/machinekit/machinekit/issues/396","id":94092745,"user":{"login":"mhaberler","id":901479,"avatar_url":"https://avatars.githubusercontent.com/u/901479?v=3","gravatar_id":"","url":"https://api.github.com/users/mhaberler","html_url":"https://github.com/mhaberler","followers_url":"https://api.github.com/users/mhaberler/followers","following_url":"https://api.github.com/users/mhaberler/following{/other_user}","gists_url":"https://api.github.com/users/mhaberler/gists{/gist_id}","starred_url":"https://api.github.com/users/mhaberler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhaberler/subscriptions","organizations_url":"https://api.github.com/users/mhaberler/orgs","repos_url":"https://api.github.com/users/mhaberler/repos","events_url":"https://api.github.com/users/mhaberler/events{/privacy}","received_events_url":"https://api.github.com/users/mhaberler/received_events","type":"User","site_admin":false},"created_at":"2015-04-17T23:01:12Z","updated_at":"2015-04-17T23:01:12Z","body":"I did not find a good answer why these separate \"axis planners\" exist either\r\nI think the primary stumbling block is the abortive mode switching (entering/leaving coord mode flushes the motion queue)"}}