Your comments
Hi, do you have the full editor log file - I am sorry, based on what we see we can't tell you what the issue is.
I am sorry we don't have example code really covering what you need.
You can check our api documentation here - there you will find the public properties and methods for example for our drives:
https://realvirtual.io/apidoc/namespacerealvirtual.html
You can also check here how to implement your own interface:
https://doc.realvirtual.io/components-and-scripts/custom-interfaces
The rest is more or less standard c# scripting for a tcp-ip communication. Maybe you can start here:
https://learn.microsoft.com/de-de/dotnet/fundamentals/networking/sockets/tcp-classes
I think the questions are somehow similar to the questions in this post:
https://forum.realvirtual.io/communities/1/topics/654-unity-physics-and-kinematics
Maybe more in detail concerning your problem:
Physical joints are always unstable per se and often only work without oscillations if the fixed update is very small (e.g. 1ms - disadvantage: performance of the model then quickly reaches its limit).
In general: If possible, do not use physical joints. If physical joints are used, then only as a "slave" and the end position is always guaranteed via a drive (e.g. delta pickers, drive for the X,Y,Z position, physical joints for the joints and rods).
I would control the example model myself purely via drives - which are then connected to each other via CAM or GEAR.
Hi Michael,
There are several approaches you can take to achieve this:
- Position Control via End Element: You can manage the positioning by moving only the endpoint. Although this endpoint is not a real drive, you can connect it to the actual drive using Unity Physics joints. This setup ensures precise endpoint control. While the joints in between might exhibit some shaking, this should not affect the overall functionality.
- Integrated Drives with Gears or CAMS: Another method involves equipping all joints with drives and synchronizing them through the use of gears or CAMs. This setup mimics the movement based on a "Master" Drive, which aligns with the position of the actual drive. For more details, you might find these resources helpful:
- Defining CAMs: Defining CAMs Documentation
- Drive Behavior: Drive Behavior Documentation
- Using Unity Physics for Kinematics: Employ Unity Physics and Unity Joints (details at Unity Joints Documentation) to handle forward kinematics. In cases requiring purely linear movements, consider using Articulation Bodies (Articulation Body Documentation). Be aware that Unity Physics can be somewhat unstable or jittery, which can be mitigated by reducing the Physics fixed timestep at the cost of performance.
For complex scenarios not involving parallel kinematics, which are typically challenging and unstable with Unity Physics, you might explore using AGX from Algoryx (see https://doc.realvirtual.io/extensions/agx-physics9. This is a more robust solution for accurately simulating complex physics interactions, although it is not free and the definition of kinematics is on my point of view more complicated).
In general, whenever feasible, we prefer to resolve these issues using non-physical forward kinematics, whether it’s a straightforward kinematic chain of a robot or something that can be easily managed with defined cams or gears.
I hope this helps! Let me know if you need further assistance.
Best,
Thomas
Hi, it would be best to implement a TCP-IP interface in C# for realvirtual.io which understands your custom commands and then send for example the drive to a position with the public methods of the drive:
if (commandtype = "motordriveto)
{
drive.DriveTo(destinationposition);
}
I think this is much better than transferring your commands to a PLC like signal based control of the Drive.
Hallo,
anbei die Antworten zu Ihren Fragen:
Im Umlaufsystem stapeln sich die WTs ab einer Staulänger von 4 Wts. Wie kann ich das verhindern?
Bitte verwenden Sie ausschließlich guided Transport. Die Kombination aus normaler Transportsurface und guided Transport wird nicht funktionieren.
Wie kann ich ein "Transport Guided (Script)" unterbrechen (durch zB einen Heber) und danach wieder fortführen?
Hier gibt eine Umsetzung in der Demoszene zum guidedTransport, welche als Vorlage genutzt werden kann. (realvirtual/Scenes/DemoGuidedTransport)
Wie kann ich eine "Guideline" bei einem Transportsystem mit zwei "Transport Surfaces" einfügen?
Ein System wie in ihrem Beispiel wird immer nur mit einer Transportsurface umgesetzt, damit kann einfach eine Guideline ergänzt werden. Unity betrachtet immer nur eine "Collision".
Unter main/realvirtual/ui/button1 wird ein image verwendet. Wo finde ich die Datei?
Button-GameObject in der Hierarchie auswählen und im Inspector auf das definierte Bild klicken. Es wird dann im Projekt angezeigt.
Roboter bewegen sich zu bestimmten Positionen deutlich langsamer. Warum ist das so?
Die Bewegung richtet sich nach der langsamsten Achse.
Grüße Christin
Use only guided transport. Combining normal transport surfaces with guided transport will not work.
There is an implementation in the demo scene for guided transport that can be used as a template. (realvirtual/Scenes/DemoGuidedTransport)
A system like the one in your example is always implemented with a single transport surface, allowing an easy addition of a guideline. Unity only considers one "Collision".
Select the Button-GameObject in the hierarchy and click on the defined image in the Inspector. It will then be displayed in the project.
The movement speed is determined by the slowest axis.
Regards Christin
Hallo,
unsere 2022 releases laufen nur mit Unity2022 zusammen (Unsere 2021 releases auch nur mit Unity 2021).
realvirtual Professional 2021 läuft nicht zusammen mit realvirtual Simulation 2022. Auch hier müssen die 20XX immer zusammenpassen. Also realvirtual Professional 2022, realvirtual Simulation 2022 und Unity 2022 oder realvirtual Professional 2021, realvirtual Simulation 2021 und Unity 2021
Gruß
Thomas
Customer support service by UserEcho
Thanks, we know this issue - it is already fixed - if you need a beta you can get access - otherwise it will be fixed in about 1 week with the next official release.