Wait for Digital Input

Started by Abishek Golecha, September 20, 2019, 04:46:27 PM

Previous topic - Next topic

Abishek Golecha

Hallo everyone,

I am new to KUKA plugin and I am using the basic version KUKAplrc. I am trying to assemble a facade using multiple robots. The robots should not collide with each other during the assembly process. Since I do not have a member version, I am not able to use RoboTeam or check for collision. I want to basically pick up and place each item using different robots without them colliding with each other. I use robot 1 to pick up node1 and robot 2 to pick up Pipe Horizontal top (HT) and robot 3 to pick up Pipe Vertical Left (VL). My robots pick and place correctly but I want robot 2 and 3 to strat only after robot 1 has finished its task. I know I can use Wait for 'n' seconds command or alter the speeds of each robot but I was wondering about Wait for Digital Input command. Is it possible that I ask robot 2 and 3 to stop until a digital input is fed to them by robot 1 after robot 1 completes its task ?. I have attached a part of my grasshopper file for more details. Thanks in advance,

Regards,

Abishek   

Johannes @ Robots in Architecture

Hello Abishek,

Sure, that is possible. My recommendation would be not to use just one digital output, but e.g. 8, and combine them into a signal. With 8 outputs you could then send a number between 0 and 255, the more outputs you use the larger the number can be.
That way you can ensure that they do not get out of sync so easily.
For the logic on the other robot, just use a Custom KRL component.

If you've got a KRC4 robot, you could also use an EL6692 or EL6695 EtherCAT bridge to have the robots talk to each other.

Hope that helps!
Best,
Johannes

Abishek Golecha

Hallo Johannes,

Firstly, Thank You for your reply. I guess it is not possible to visualize the 'wait for digital input' command in grasshopper but would function properly in real time. As I am quite new to grasshopper and KUKA plugin, I do not have much idea about it. Is it possible to get a tutorial or a working manual where each option is explained in detail ?. If yes, that would be very helpful. Also, as mentioned in the earlier post, I am trying to pick up and assemble facade elements using multiple robots. If the elements are to be placed on the ground in XY plane, the pick and place algorithm is quite simple as guided by Karl Singline. But what if an element is not oriented along the XY plane ? I have to assemble Pipe 1 in between the horizontal and vertical pipes and I am unable to orient pipe 1 along the required 3-d axis. I tried using the axis movement to position the robot in a way that the element grabbed is of the same orientation as to where it should be placed. But the axis movement makes the robot orient the element in correct geometric direction but not at the required destination or point. I have attached my grasshopper file for furthe visulaization.

Regards,
Abishek

Johannes @ Robots in Architecture

Hello Abishek,

By default KUKA|prc is running offline, so you cannot really simulate the waiting for a digital input.
Basically KUKA|prc is really a very slim interface for robot control, and the main commands are the movement commands.
You've got axis movements or Cartesian movements, and the Cartesian movements are defined by planes (i.e. coordinate systems, but GH refers to them as planes).
The entire logic how those planes are laid out are defined with more general Grasshopper components before.
If you want to assemble pipes that have rotational symmetry, you would probably create a plane via the Plane Normal component, and could then optimize reachability by rotating the pipe around it's Z-axis as to optimize the robot's trajectory. For rotating, you could e.g. use KUKA|prc's Orient Plane component, where you define a Point from which the plane's X-axis is oriented away from.

Hope that helps a bit!
I looked at your file but was missing an plugin for it to work properly on my laptop.

Best,
Johannes

Abishek Golecha

Hallo Johannes,

Thank you for your reply. I used rotate 3-d plugin in grasshopper to align the plane along the required direction and angle. But I guess your solution would work as well. Will update any further details if required. Regards,

Abishek