02-18-2022 06:11 AM
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.
Solved! Go to Solution.
02-18-2022 11:17 AM - edited 02-18-2022 11:18 AM
Things we can't do here:
02-18-2022 11:29 AM - edited 02-18-2022 11:35 AM
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.)
02-18-2022 03:55 PM
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?
02-18-2022 05:58 PM
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.
02-24-2022 08:58 AM
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.