LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Recognize forbidden areas in a 2D path

Solved!
Go to solution

I have to control a sample manipulation robot in x,y,z space moving on gantries. In the x,y plane are "forbidden" areas the stage must not enter because of potential collisions with other devices. To complicate things the forbidden areas might change with the z position of the manipulator tip.

I have a set of coordinate points the manipulation stage needs to move to autonomously. For planning reasons I would like to test for collisions along the track with the forbidden areas before the motion script is activated.

0 Kudos
Message 1 of 6
(883 Views)

Things we can't do here:

  1. Psychic reading: We can't divine what's going on in a VI from a picture.
  2. Mind reading: You didn't ask a question.  What do you want?
"If you weren't supposed to push it, it wouldn't be a button."
0 Kudos
Message 2 of 6
(848 Views)

If the forbidden area changes with z position, I would probably call it a forbidden volume. Are the boundaries always rectangular for each plane (as shown in your picture), always parallel to one of the axes,  or can they be arbitrarily shaped?

 

So you want to test a trajectory before executing it. What should happen if it collides with the forbidden volume? (reject the entire trajectory? Only go to right before the collision point? Find a path around it?).

 

It would help to see a simplified VI and some typical data for testing (defined forbidden volume, good trajectory, bad trajectory, etc.)

0 Kudos
Message 3 of 6
(842 Views)

We can for the moment let aside the the Z components. The forbidden areas might be in mostly of rectangular shape but I would like a solution as general as possible.

To give a more complete explanation of the problem:

I have to operate a sample manipulation device in a vacuum chamber, which can not be observed during operations. The device has rails in x,y, and z axis to transport sensors close to or into a sample. The whole device is controlled by an Arduino which is running the motors and all attached sensors and end stop switches. The user interface is done via Labview and a serial connection. I would like to implement a test procedure for any user to check the trajectory in the x-y plane before sending it for execution to the Arduino. The reason is that in one corner is a measurement device which is a unique prototype worth a Million Euros and that's why we should try to avoid hitting it. But depending on the actual set up there might be other obstacles as well.

 

What I'm looking for is an economic way to check if the planned trajectory is intersecting with predefined forbidden areas to give a warning of a potential collision and thus allow to implement an optimized trajectory. No real time control is required, but a security check before any sequence is activated.

What is given is a trajectory in x-y defined by the selected coordinate points to move to and forbidden areas also defined by their corner points. Is there any solution which can be implemented in LabView?

 

0 Kudos
Message 4 of 6
(825 Views)

There is a built-in VI in LabVIEW for checking if a 2D point is inside a polygon. But you most likely need to have a non-zero margin of error since your robot is not a single point.

0 Kudos
Message 5 of 6
(818 Views)
Solution
Accepted by gk_iwf

Thanks, I was not aware of that one.

So far I only knew the one in "Waveform monitoring" namely the "Limit testing.vi" which would have been too cumbersome.

 

It is in "Computational Geometry" and the VI is "Point in Polygon" and is what I was looking for.

0 Kudos
Message 6 of 6
(789 Views)