algorithmic modeling for Rhino



Lobster is a tool for solving the inverse-kinematics of 6-axis robot arms

Members: 138
Latest Activity: May 16







This is still a work-in-progress, with plenty of room for improvement.

I've been meaning to release this for some time - I was intending to clean it up some more and maybe compile it into a proper component first, but have been too busy with other activities, and rather than delay any longer have decided to share it in its current state.


It is a purely geometric solution, specific to this particular joint configuration, which allows kinematic decoupling, greatly simplifying things. Luckily most commercial 6-axis arms follow this configuration.


Bear in mind the angle value outputs are not yet calibrated - one would need to check the direction and start angles to make sure they corresponded with the standard format. Also, joint angle limits are not included here, but could be fairly easily added.

The example model here is a Kuka KR-150, but it is designed so that one can easily swap the input model with other robots with the same joint configuration (6-axis with a spherical wrist).


I do also have a similar definition for robots such as the ones from Universal Robots which do not have a spherical wrist, but still have certain simplifying properties allowing a closed form solution:

I'll post the setup for this one too soon.


Lobster is distributed under the WTFPL license ;)


Use at your own risk. I accept no responsibility if you break your robot!


enjoy !

Discussion Forum

Lobster reloaded

Here's an update I've been meaning to post for a long while.As I'm currently at the RobArch conference in Michigan, now seems a good a time to finally get it out there.This is a very minimal scripted…Continue

Started by Daniel Piker May 18, 2014.


Some videos from early tests: …Continue

Started by Daniel Piker Jul 17, 2011.

Comment Wall


You need to be a member of Lobster to add comments!

Comment by Philipp on July 23, 2011 at 6:35am
Daniel, But cant we just make a 3d-matrix of parameters for each servo for each point in 3d with a "resolution" (using galapagos and, maybe, pretty much time, but once) and then just make an algorithm of chousing optimal position (as far as there will be several positions for some of the points) and then interpolate values as we interpolate vector in vector field.  It looks like a not-so-complicated algorithm... (from my newbie-in-scripting point of view)
Comment by Chris Mealing on July 22, 2011 at 10:56pm

Fantastic, and inspiring. I've built a version as well... certainly cruder, but a very interesting challenge [My version]. The concept of linking Rhino objects to the GH definition to represent the robot itself was very clever.



Comment by Daniel Piker on July 22, 2011 at 2:21am
Comment by Alpha222 on July 21, 2011 at 7:22pm
Hi Daniel, would you post a V4 3dm file too?? Thanks.
Comment by taz on July 21, 2011 at 11:08am
I believe the correct pronunciation is "lobstah"..
Comment by Daniel Piker on July 20, 2011 at 9:37am

Philipp - not a stupid question at all. The inverse kinematics problem can be solved for much more general systems, but generally requires the use of considerably more complex techniques, such as cyclic coordinate descent and the Jacobian matrix.

I did actually post an IK solver using Galapagos some time ago, and in theory this could indeed work with any axis setup, but it is an extremely inefficient way to solve the problem compared to the above methods - taking minutes to get a solution which is still only approximate - not very practical if you have to do it for every tiny movement of the robot.

The sort of geometric closed form solution Lobster uses would be different for each kinematic setup, and in some cases would not be possible, but it is very fast and relatively intuitive.

Comment by Philipp on July 19, 2011 at 3:39pm
one, maybe stupiв question - if it possible to make a universal path tracking sistem for ANY N-axis mashine, maybe based on random-values-exploration...
Comment by Tuan N. Tran on July 18, 2011 at 11:01pm
thank you so much for sharing!  it's really time i buy that ABB robot :)
Comment by Jonathan Chertok on July 18, 2011 at 3:00pm

ooh-wee. that's pretty fantastic work. love the name as well. 


This is basically nowhere as sophisticated but I did a series of kinematic rotations of a universal joint using a Rhino plugin.

look forward to following this work.


Members (138)






  • Add Photos
  • View All

© 2018   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service