Grip component for attaching and transporting MUs with moving mechanisms like robots or grippers. More...

Public Member Functions | |
void | DeActivate (bool activate) |
Picks the GameObject obj. | |
void | Fix (MU mu) |
Picks the GameObject obj. | |
void | Unfix (MU mu) |
Places the GameObject obj. | |
void | Pick () |
Picks al objects collding with the Sensor. | |
void | Place () |
Places all objects. | |
![]() | |
void | PreStartSim () |
Is called by the realvirtualController before the component is started. | |
void | StartSim () |
Is called by the realvirtualController to start or stop the component. | |
void | StopSim () |
Vector3 | DirectionToVector (DIRECTION direction) |
Transfers the direction enumeration to a vector. | |
DIRECTION | VectorToDirection (bool torotatoin, Vector3 vector) |
Transfers a vector to the direction enumeration. | |
float | GetLocalScale (Transform thetransform, DIRECTION direction) |
List< BehaviorInterfaceConnection > | UpdateConnectionInfo () |
List< Signal > | GetConnectedSignals () |
void | SetVisibility (bool visibility) |
Sets the visibility of this object including all subobjects. | |
List< BehaviorInterfaceConnection > | GetConnections () |
List< Signal > | GetSignals () |
GameObject | GetChildByName (string name) |
Gets a child by name. | |
List< GameObject > | GetChildsByName (string name) |
Gets all child by name. | |
GameObject | GetChildByNameAlsoHidden (string name) |
List< GameObject > | GetAllMeshesWithGroup (string group) |
List< GameObject > | GetAllWithGroup (string group) |
List< GameObject > | GetAllWithGroups (List< string > groups) |
List< GameObject > | GetAllMeshesWithGroups (List< string > groups) |
List< string > | GetMyGroups () |
List< GameObject > | GetMeshesWithSameGroups () |
List< GameObject > | GetAllWithSameGroups () |
MeshRenderer | GetMeshRenderer () |
Gets the mesh renderers in the childrens. | |
void | SetCollider (bool enabled) |
sets the collider in all child objects | |
void | ErrorMessage (string message) |
Displays an error message. | |
void | ChangeConnectionMode (bool isconnected) |
void | Log (string message) |
Logs a message. | |
void | Log (string message, object obj) |
Logs a message with a relation to an object. | |
void | Warning (string message, object obj) |
Logs a warinng with a relation to an object. | |
void | Error (string message, object obj) |
Logs an error with a relation to an object. | |
void | Error (string message) |
Logs an error. | |
GameObject | DebugPosition (string debugname, Vector3 position, Quaternion quaternation, float scale) |
Displays a gizmo for debugging positions. | |
void | SetFreezePosition (bool enabled) |
Freezes all child components to the current poosition. | |
void | SetRbConstraints (RigidbodyConstraints constraints) |
virtual void | AwakeAlsoDeactivated () |
Public Attributes | |
Sensor | PartToGrip |
Identifies the MU to be gripped. | |
bool | DirectlyGrip |
If set to true the MU is directly gripped when Sensor PartToGrip detects a Part. | |
GameObject | PickAlignWithObject |
bool | AlignRotation |
If not null the MUs are aligned with this object before picking. | |
GameObject | PlaceAlignWithObject |
If not null the MUs are aligned with this object after placing. | |
UnityEngine.Joint | ConnectToJoint |
Sensor | PickBasedOnSensor |
Picking is started when this sensor is occupied (optional) | |
Drive_Cylinder | PickBasedOnCylinder |
Picking is stared when Cylinder is Max or Min (optional) | |
bool | PickOnCylinderMax |
Picking is started when Cylinderis Max. | |
bool | NoPhysicsWhenPlaced |
Object remains kinematic (no phyisics) when placed. | |
bool | PlaceLoadOnMU |
When placing the components they should be loaded onto an MU as subcomponent. | |
Sensor | PlaceLoadOnMUSensor |
Sensor defining the MU where the picked MUs should be loaded to. | |
bool | PickObjects |
true for picking MUs identified by the sensor. | |
bool | PlaceObjects |
//!< true for placing the loaded MUs. | |
EventMUGrip | EventMUGrip |
Unity event which is called for MU grip and ungrip. On grip it passes MU and true. On ungrip it passes MU and false. | |
bool | OneBitControl |
If true the grip is controlled by one bit. If false the grip is controlled by two bits. | |
PLCOutputBool | SignalPick |
PLCOutputBool | SignalPlace |
List< GameObject > | PickedMUs |
![]() | |
string | Name |
The name of the component if it should be different from the GameObject name. | |
ActiveOnly | Active |
GameObject | FromTemplate |
realvirtualController | realvirtualController |
bool | HideNonG44Components |
bool | SceneIsAdditive |
bool | ForceStop |
Additional Inherited Members | |
![]() | |
enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
![]() | |
static bool | DirectionIsLinear (DIRECTION direction) |
Gets back if the direction is linear or a rotation. | |
![]() | |
bool | hidename () |
bool | hideactiveonly () |
virtual void | OnStopSim () |
virtual void | OnPreStartSim () |
virtual void | OnStartSim () |
MU | GetTopOfMu (GameObject obj) |
Gets the top of an MU component (the first MU script going up in the hierarchy) | |
void | InitGame4Automation () |
Initialiates the components and gets the reference to the realvirtualController in the scene. | |
virtual void | AfterAwake () |
void | Awake () |
Detailed Description
Grip component for attaching and transporting MUs with moving mechanisms like robots or grippers.
The Grip component is a fundamental part of realvirtual's material handling system, enabling dynamic pick-and-place operations in industrial automation simulations. It provides flexible attachment mechanisms for securely gripping MUs (Material Units) and transporting them through the production system. The component works by detecting MUs through a sensor, fixing them kinematically or with physics joints, and maintaining the attachment while the parent object moves through space.
Key Features:
- Sensor-based MU detection for automatic or controlled gripping
- Kinematic attachment for stable, physics-free transportation
- Optional physics joint connection for dynamic simulations
- Alignment control for precise positioning during pick and place operations
- Direct gripping mode for immediate attachment on sensor detection
- Support for loading MUs as subcomponents onto other MUs
- Single-bit or dual-bit PLC control modes
- Unity events for grip and ungrip notifications
Common Applications:
- Robotic end effectors and tool changers
- Conveyor transfer mechanisms
- AGV loading/unloading systems
- Palletizing and depalletizing operations
- Assembly line pick-and-place stations
- Material sorting and distribution systems
Integration Points: The Grip component integrates seamlessly with other realvirtual components through the sensor system for MU detection, the MU system for material tracking, and Drive_Cylinder for automated gripping based on cylinder positions. It can be controlled through PLC signals (PLCOutputBool) for industrial control system integration or directly through Unity Inspector properties for simulation control.
Performance Considerations: The component uses kinematic attachment by default, which is more performant than physics-based joints. When using physics joints (ConnectToJoint), ensure proper joint configuration to avoid unstable simulations. The component efficiently manages multiple gripped objects through list-based tracking and provides immediate response to control signals in FixedUpdate for deterministic behavior.
Events and Signals: The EventMUGrip Unity event provides real-time notifications of grip operations, passing the MU reference and grip state (true for grip, false for ungrip). This enables custom logic execution during material handling operations, such as updating production tracking systems or triggering dependent automation sequences.
For detailed documentation and examples, visit: https://doc.realvirtual.io/components-and-scripts/grip
Member Function Documentation
◆ DeActivate()
void realvirtual.Grip.DeActivate | ( | bool | activate | ) |
Picks the GameObject obj.
Implements realvirtual.IFix.
◆ Fix()
void realvirtual.Grip.Fix | ( | MU | mu | ) |
Picks the GameObject obj.
Implements realvirtual.IFix.
◆ Pick()
void realvirtual.Grip.Pick | ( | ) |
Picks al objects collding with the Sensor.
◆ Place()
void realvirtual.Grip.Place | ( | ) |
Places all objects.
◆ Unfix()
void realvirtual.Grip.Unfix | ( | MU | mu | ) |
Places the GameObject obj.
Implements realvirtual.IFix.
Member Data Documentation
◆ AlignRotation
bool realvirtual.Grip.AlignRotation |
If not null the MUs are aligned with this object before picking.
◆ DirectlyGrip
bool realvirtual.Grip.DirectlyGrip |
If set to true the MU is directly gripped when Sensor PartToGrip detects a Part.
◆ EventMUGrip
EventMUGrip realvirtual.Grip.EventMUGrip |
Unity event which is called for MU grip and ungrip. On grip it passes MU and true. On ungrip it passes MU and false.
◆ NoPhysicsWhenPlaced
bool realvirtual.Grip.NoPhysicsWhenPlaced |
Object remains kinematic (no phyisics) when placed.
◆ OneBitControl
bool realvirtual.Grip.OneBitControl |
If true the grip is controlled by one bit. If false the grip is controlled by two bits.
◆ PartToGrip
Sensor realvirtual.Grip.PartToGrip |
Identifies the MU to be gripped.
◆ PickBasedOnCylinder
Drive_Cylinder realvirtual.Grip.PickBasedOnCylinder |
Picking is stared when Cylinder is Max or Min (optional)
◆ PickBasedOnSensor
Sensor realvirtual.Grip.PickBasedOnSensor |
Picking is started when this sensor is occupied (optional)
◆ PickObjects
bool realvirtual.Grip.PickObjects |
true for picking MUs identified by the sensor.
◆ PickOnCylinderMax
bool realvirtual.Grip.PickOnCylinderMax |
Picking is started when Cylinderis Max.
◆ PlaceAlignWithObject
GameObject realvirtual.Grip.PlaceAlignWithObject |
If not null the MUs are aligned with this object after placing.
◆ PlaceLoadOnMU
bool realvirtual.Grip.PlaceLoadOnMU |
When placing the components they should be loaded onto an MU as subcomponent.
◆ PlaceLoadOnMUSensor
Sensor realvirtual.Grip.PlaceLoadOnMUSensor |
Sensor defining the MU where the picked MUs should be loaded to.
◆ PlaceObjects
bool realvirtual.Grip.PlaceObjects |
//!< true for placing the loaded MUs.