I'd like to pay your attention also to http://openrave.org/ , https://github.com/rdiankov/openrave .
It is mostly C++ with some Python bindings, but there are C bindings for C++: https://github.com/rdiankov/openrave/blob/master/src/libopenrave/libopenrave_c.cpp , https://github.com/rdiankov/openrave/tree/master/src/cexamples . That means functions of the openrave lib can be used within a realtime MK component. If the available C bindings are not enough, then it still pretty easy to write your own C bindings: https://github.com/sirop/openrave/blob/productionC_API/src/libopenrave/libopenrave_c.cpp#L345-L356 shows a custom C function which calculates Jacobian matrix for a % DOF roboter in qurternion space. I used this function then in my realtime component. On Sunday, April 22, 2018 at 2:13:49 PM UTC+2, Bas de Bruijn wrote: > > I'v put this on a new thread so it can be easier to find. > > Originating thread: > https://groups.google.com/forum/m/#!topic/machinekit/oxctaPp4n8Q > > On 21 Apr 2018, at 18:21, sliptonic <shopint...@gmail.com <javascript:>> > wrote: > > > On Friday, April 20, 2018 at 4:19:36 PM UTC-5, Bas de Bruijn wrote: >> >> >> >> What do you want to know? It's pretty hard to write something a la >> "Here's everything i know". >> >> Do you have a (Preferrably non CNC) project in mind? >> > > A couple years ago I bought a scara bot just to play with. No serious > plans, just a learning platform for things like ROS, FreeCAD robot > workbench and machinekit on a deeper level. > I can now control it like a CNC machine but that's not what I want. Maybe > I want to do something silly like sort coins or pick out blue legos. > > > Yeah, that Lego sorting problem I know. I've helped with that a few times, > but after 2 months all is mixed again and they "can't find" the pieces > anymore. > > I understand conceptually how ROS works but ROS learning curve is a bitch > so getting from concept to actually controlling the robot is going to be a > process. > > > Yes it is. > > Now that I can control it in Machinekit like a CNC, how do I start > connecting it to ROS? > > > The stuff I did a few years ago was creating a node which listens to a ROS > joint_path_command topic, jointtrajectory message. These segments (point1 > time1, point2 time2, etc) are put in a HAL ringbuffer. > > Then on the HAL side, the ringbuffer samples are read, and interpolated. > Which results in a position-cmd per HAL cycle (1ms for example) > > So in a nutshell: ROS does planning in non-RT and Machinekit Hal does the > playout. > > Mind: you still have to take care of initializing your hardware, homing > joints etc. ROS doesn't do that. Also creating you robot model urdf and > making moveit configurations for that. > > What's realistically possible with the current state of machinekit? > > > Short now: interpolate segments in HAL and use the values further on, with > whatever HAL logic/setup you come up with > > Later: HAL as a ros_control resource. > > My questions are probably newbie which is why I was looking for blogs and > examples to study. > > > Apart from the ROS learning curve, > I think that the big issue is that the legacy cnc documentation is > irrelevant for setups that do not use CNC. > Also, the focus has not been on HAL. > > Before I even think of writing stuff i'd like to know what you all want to > know. There's been a lot of effort put into making the documentation easier > to work with, but that does not mitigate the outdated content. > > So updating HAL focused content: what questions would you like to have > answered that are not here: > http://www.machinekit.io/docs/index-HAL/ > > Then I'll try to come up with some tutorial/steps which we can all > discuss. And if the outcome is something sensible I'll put that to the docs. > > Here's a link to my blog with a video I made a couple weeks ago: > http://sliptonic.com/lenny-the-big-dumb-bot/ > > > That's a nice sturdy looking robot! > > Sorry OP, I didn't mean to hijack this thread. Feel free to split it out > or I'll start a new thread. > > > -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscr...@googlegroups.com. Visit this group at https://groups.google.com/group/machinekit. For more options, visit https://groups.google.com/d/optout.