Your comments

You must check the scaling in whole hierarchy. For such kinematic chains I always do scaling Vector3.one and use scaling only for child gameobjects with mesh renderer.

Hallo xingbutou, have you attached a collider for this object?

Hello, I don't know exactly if there is class for this in package. But you can try GameObjectRecorder

If you have joint angles, it's well doable:

1. Create DH matrixes and calculate Forward Kinematics

2. Calculate the TCP speed and the time span between two frames. Can you do something similar to this post from the ROS forum

Hallo Kadir,

so wie ich das verstehe, musst du nur die Achsenwerte und Binärsignale für Greifer auslesen und dann entsprechend mit Unity koppeln. Auf alle Signale kann man über den Namen in der IO-Liste in RobotStudio zugreifen.

Kannst du bitte etwas mehr dazu schreiben, mit welchem Schritt du Probleme hast?

Mfg

As I wrote before, just use the following trick. For moving transport surface create new flag. If transport is "Dynamic" then collision events are used.

public class Transport : MonoBehaviour 
{
[Header("Settings")]
private bool _isDynamic;
private void OnCollisionEnter(Collision other)
{
if (!_isDynamic) return;
if (other.gameObject.TryGetComponent(out Part part)) part.transform.parent = transform;
}
private void OnCollisionExit(Collision other)
{
if (!_isDynamic) return;
if (other.gameObject.TryGetComponent(out Part part))
{
if (part.transform.parent == transform) part.transform.parent = null;
}
}
}
public class Part: MonoBehaviour
{

}

2022-10-11 22-04-40.mp4

Difficult to say.

I don't have this package. But I'm sure it's not that much effort to implement the same principle with package classes.

I will try to contribute to https://github.com/game4automation this week then.

The idea is the following.

Each part and each conveyor has a GuidedEntity and transport script, respectively.

OnCollisionEnter and OnCollisionExit are stored collided conveyors.

In the Update method, Raycast is used cyclically to check which conveyor the part is currently colliding with and to set the speed and position of the articulated anchors. If the part collides with several conveyors at the same time, I take the closest one.

If no collision happens or Conveyor type is wrong, then Joint is destroyed and the physical properties of the part are reset.