Author Topic: Example: Robot Collision Checking  (Read 1789 times)

Johannes @ Robots in Architecture

  • Lead Developer
  • Administrator
  • Forum User
  • *****
  • Posts: 585
    • View Profile
    • Robots in Architecture
Example: Robot Collision Checking
« on: April 29, 2016, 03:57:44 PM »
Robot Collision Checking
Requirements: Rhinoceros 5, Grasshopper 0.9.0076, KUKA|prc V2

When collision checking is enabled, KUKA|prc will check for collisions between axes, cell geometry and custom collision geometry. Note that it is very computationally intensive - smaller meshes (e.g. via ReduceMesh) greatly increase the speed.
Members can use the "Analysis" component to automatically optimize towards avoiding collisions.

Lukas

  • Forum User
  • *
  • Posts: 1
    • View Profile
Re: Example: Robot Collision Checking
« Reply #1 on: July 18, 2016, 06:04:26 PM »
Hello Johannes,

can you give me a hint how I could use Collision Checking to automatically optimize towards avoiding collisions.
I am trying to do an robotic assembly with the Kuka Iiwa. The Goal is to place 12 straight rods at 12 unique positions all initially picked up at one central point. As the Assembly evolves the Geometry for Collision Checking will continuously change.
Is there a way to automatically optimize the robotic movement?

Thank you a lot in advance,

Lukas

Johannes @ Robots in Architecture

  • Lead Developer
  • Administrator
  • Forum User
  • *****
  • Posts: 585
    • View Profile
    • Robots in Architecture
Re: Example: Robot Collision Checking
« Reply #2 on: July 18, 2016, 10:34:03 PM »
Hello Lukas,

The is no real "automatic" way of optimizing a toolpath, because every application has got different constraints and degrees of freedom. For example with milling, you can rotate around the tool axis, because it is symmetrical. With the iiwa, you can adjust the redundant axis (but also not all the time, depending on the application).
In any case, Galapagos is a nice way to start experimenting with automatic optimization. So you get the Analysis component (available in the member version) and e.g. do a mass addition on the collision output (0 for an axis is no collision, 1 is a collision). Then you set your parameters for Galapagos to adjust (e.g. the value of the redundant axis) and let Galapagos minimize the fitness value, thus reducing collisions. Of course you can also do this "brute-force", by just evaluating ten different values or so and taking the best.

In general, the iiwa is slightly complicated when it comes to reachability because of its limited axis range.
One more thing regarding collision checking: Use the Rhino command "ReduceMesh" to reduce the complexity of meshes as far as possible (both tools and collision geometry).

Let me know if you've got any further questions!
Best,
Johannes