grip
Activate the vacuum gripper to pick up an object.
This method represents the grip operation of the OnRobot VGC10 and VG10 vacuum gripper. The gripper applies the specified vacuum level to grip an object.
Return
VGToolGripState continuously updated execution state of the URScript.
Parameters
vacuum channel to activate (0 = A; 1 = B; 2 = AB).
target vacuum level (kPa).
maximum time (seconds) to wait for the object to be gripped.
maximum time (milliseconds) to wait for the command to complete.
enable/disable popup messages on Polyscope.
⚠️ Experimental: optional callback invoked whenever the VGToolGripState changes during execution. This API may change or be removed in future versions.
optional callback that is invoked once when the VGToolGripState is final. The state is final when runningState assumes the following value: RunningState.END, RunningState.TIMEOUT, RunningState.CANCELED
Samples
import com.wolfscowl.ur_client.UR
import com.wolfscowl.ur_client.examples.Examples.ur
import com.wolfscowl.ur_client.interfaces.state.await
import com.wolfscowl.ur_client.interfaces.state.awaitBlocking
import com.wolfscowl.ur_client.interfaces.state.awaitBlockingUntil
import com.wolfscowl.ur_client.interfaces.state.awaitUntil
import com.wolfscowl.ur_client.model.element.JointPosition
import com.wolfscowl.ur_client.model.element.Pose
import com.wolfscowl.ur_client.model.element.RunningState
import com.wolfscowl.ur_client.model.element.Vec3
import com.wolfscowl.ur_client.model.robot_state.mode.RobotMode
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
import kotlin.system.exitProcess
fun main() {
//sampleStart
val ur = UR("192.168.2.1")
val vg = ur.attachToolOnRobotVG(host = "192.168.2.2", toolIndex = 0)
runBlocking {
ur.connect()
ur.isConnectedFlow.first { it }
val state = vg.grip(
channel = 2,
vacuum = 80,
gripTimeout = 2.0f,
cmdTimeout = 5000,
popupMsg = false,
onChange = null,
onFinished = { state -> /* do something */}
).await() // await for the finale state
println(state)
}
//sampleEnd
}