{"action":"created","issue":{"url":"https://api.github.com/repos/machinekit/machinekit/issues/689","labels_url":"https://api.github.com/repos/machinekit/machinekit/issues/689/labels{/name}","comments_url":"https://api.github.com/repos/machinekit/machinekit/issues/689/comments","events_url":"https://api.github.com/repos/machinekit/machinekit/issues/689/events","html_url":"https://github.com/machinekit/machinekit/issues/689","id":88916433,"number":689,"title":"machinekit lacks ROS integration capability","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":42,"created_at":"2015-06-17T05:33:25Z","updated_at":"2015-12-13T03:35:41Z","closed_at":null,"body":"machinekit would make a great realtime playout/device control layer for [ROS](http://www.ros.org). ROS could become an alternative driving layer, in parallel to the existing CNC control application (rs274 interpreter, task, motion).\r\n\r\nWhat I think is needed is a way to either plug in natively into ROS, or use one of the _bridge_ approaches outlined here (taken from the [talk by Arne Hamann/Bosch talk at i-ROS Stuttgart 06-09-2105](http://static.mah.priv.at/public/2015_06_09_ROS_embedded_Hamann.pdf)):\r\n\r\n![image](https://cloud.githubusercontent.com/assets/901479/8200185/6f108d90-14c1-11e5-922b-f294f6342e11.png)\r\n\r\nThe options for the interfacing strategy I currently see are:\r\n\r\n- if nothing else, we can do [rosbridge](http://wiki.ros.org/rosbridge_suite)/JSON/websockets - we have the moving parts in place but I think 'native' is the way to go longer term. So I would prefer either\r\n- [rosc](http://wiki.ros.org/rosc) - a bit early and shaky, but native, ROS 1.0, or \r\n- ros2 [DDS](http://www.opendds.org/Article-Intro.html) interaction - no client library but then we have a full linux environment on-target.\r\n- any other options we could go for? possibly [tinq](https://github.com/brunodebus/tinq-core) which seems to be used by [Erlerobotics](http://erlerobotics.com/blog/home-creative/) (see [here](https://github.com/brunodebus/tinq-core/issues/7))\r\n\r\nI guess rosserial is out of scope. I have currently no idea what the ros1/ros2 cutover timeline is.\r\n\r\nFor reference, this is where we are with machinetalk: \r\n\r\n![image](https://cloud.githubusercontent.com/assets/901479/8200285/155153c8-14c3-11e5-9316-ea43b34915bc.png)\r\n\r\n\r\npossible locations to plug ROS into machinetalk:\r\n-  haltalk, the scalar/message API daemon into HAL (eg for rosc)\r\n-  or in front of the zeromq/protobuf stack\r\n-  or in front of the websockets/JSON translator (for rosbridge).\r\n\r\nI have no preferences at this point but layering middlewares ontop of each other is a recipe for issues.\r\n\r\n\r\nSome background links:\r\n\r\nthe [ros1->ros2 transition](http://design.ros2.org/)\r\nThe [rosc](http://wiki.ros.org/rosc) interfacing library by [Synapticon](http://www.synapticon.com/)\r\nthe ros1 [message format](http://wiki.ros.org/msg) and [here](http://wiki.ros.org/Messages)\r\n\r\nthe [agenda of the ROS-industrial event Jun 9, 2015 - Fraunhofer IPA, Stuttgart](http://www.ipa.fraunhofer.de/fileadmin/user_upload/Veranstaltungen/2015/2015_06_09_ROS-Industrial.pdf)\r\n\r\n(this issue intended as anchor issue for ROS integration)"},"comment":{"url":"https://api.github.com/repos/machinekit/machinekit/issues/comments/164215826","html_url":"https://github.com/machinekit/machinekit/issues/689#issuecomment-164215826","issue_url":"https://api.github.com/repos/machinekit/machinekit/issues/689","id":164215826,"user":{"login":"strahlex","id":1467368,"avatar_url":"https://avatars.githubusercontent.com/u/1467368?v=3","gravatar_id":"","url":"https://api.github.com/users/strahlex","html_url":"https://github.com/strahlex","followers_url":"https://api.github.com/users/strahlex/followers","following_url":"https://api.github.com/users/strahlex/following{/other_user}","gists_url":"https://api.github.com/users/strahlex/gists{/gist_id}","starred_url":"https://api.github.com/users/strahlex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strahlex/subscriptions","organizations_url":"https://api.github.com/users/strahlex/orgs","repos_url":"https://api.github.com/users/strahlex/repos","events_url":"https://api.github.com/users/strahlex/events{/privacy}","received_events_url":"https://api.github.com/users/strahlex/received_events","type":"User","site_admin":false},"created_at":"2015-12-13T03:35:41Z","updated_at":"2015-12-13T03:35:41Z","body":"looks very promising, looking forward to see the demo"}}