0
Answered

Need Help Connecting to RobotStudio From Unity

Sharpworks 2 years ago in realvirtual.io Starter and Professional updated by aitor943 5 months ago 10

I have the professional version of realvirtual.io but I am very new to this type of software. I am trying to connect my unity build to RobotStudio but I cannot figure out how to connect the I/O signals needed. I first followed this YouTube tutorial on defining robot kinematics, so I have my robot set up in Unity. 

Youtube video

Now that I finished this tutorial I started following the documentation on connecting to RobotStudio here https://realvirtual.io/documentation/current/abb.html#ABB-RobotStudio

The part I am stuck at is the final steps under "Interface Configuration in Unity" shown here.

Image 642

I have the SIMITConnection module set up in RobotStudio but I don't know what signals I need to replicate or how to name them based on my configuration. I also don't know if I need the actual program SIMIT or not. Can someone provide a more detailed explanation of the step-by-step process I need to do to complete this setup? Thank you!

Answer

Answer

I see that ABB is not finding the UnityConnection. It seems that something is wrong configured on the ABB side. Will check tomorrow on the computer in the Office where ABB RobotStudio is installed if I can find our example project and send it to you. My advice would be also to first just start with a very simple config (e.g. just the axis values) and extend this later on as soon as the connection is up and running.. 

Answered

I have seen that some picutre links are broken in our documentation. We will try to fix this.

It is important that there are no empty not defined memroy regions in the shared memory. If needed you could use empty signals which you are not using. For signals that should be matched there is a naming convention. Please also check here ABB help as well as the video below.


Thank you. Will this work without SIMIT?

Yes sure, we are just using the Simit standard to communicate with ABB Robot Studio. ABB Robotstudio has a Simit SHM interface already on board. So you don't need simit to communicate between realvirtual.io and RobotStudio.

Ok, perfect. How does the process differ for me to use that direct interface instead of SIMIT? I'm very new to all of this.

You can use for ABB Robotstudio the toolchain realvirtual - simit - ABB or realvritual - abb. 

You should use Simit if you need to additionally connect Siemens PLC and for example if you need the special Siemens Drive models which Simit provides.

Ok, I think I set up the signals according to the resources you provided. I replicated all of the signals seen in this screenshot within realvirtual. How do I test to see if the connection is working? I tried playtesting unity and starting the simulation in RobotStudio, and the ABB RobotStudio interface in Unity says it's connected to the SIMITConnection module in RobotStudio, but when I change signal values in either program, the value on the other end does not update. Did I miss a step somewhere? My overall goal is to have the robot model in Unity move when the RobotStudio model moves, and hopefully to be able to move the RobotStudio robot by moving the Unity model. 

Answer

I see that ABB is not finding the UnityConnection. It seems that something is wrong configured on the ABB side. Will check tomorrow on the computer in the Office where ABB RobotStudio is installed if I can find our example project and send it to you. My advice would be also to first just start with a very simple config (e.g. just the axis values) and extend this later on as soon as the connection is up and running.. 

Ok, I look forward to hearing back from you. Thank you for the help.

Hi,

you can find here a full example:

https://github.com/game4automation/game4automation-Community


Here is the RobotStudio Archive:

https://github.com/game4automation/game4automation-Community/tree/main/in2sight/Robots/ABB/IRB7600-400-255/RobotStudioArchive


and here is the a robot with the suitable RobotStudio interface:

https://github.com/game4automation/game4automation-Community/blob/main/in2sight/Robots/ABB/IRB7600-400-255/IRB7600-400-255-withArticulatedBody.unity


Hope this helps. If not we would need to debug on your computer - we don't have any more a robot studio license for testing.

I am trying to establish communication between "RoboDK" and "Unity." I have followed all the steps in the following video (

;t=848s). However, when running "Unity," I encounter the following errors:

NullReferenceException: Object reference not set to an instance of an object

game4automation.RoboDKTarget.Start () (at Assets/game4automation/private/Interfaces/RoboDK/RoboDKTarget.cs:22)

NullReferenceException: Object reference not set to an instance of an object

game4automation.RoboDKInterface.InitAxis () (at Assets/game4automation/private/Interfaces/RoboDK/RoboDKInterface.cs:383)

game4automation.RoboDKInterface.Start () (at Assets/game4automation/private/Interfaces/RoboDK/RoboDKInterface.cs:349)

NullReferenceException: Object reference not set to an instance of an object

game4automation.RoboDKInterface.UpdateAxisPosition () (at Assets/game4automation/private/Interfaces/RoboDK/RoboDKInterface.cs:397)

game4automation.RoboDKInterface.CommunicationThreadUpdate () (at Assets/game4automation/private/Interfaces/RoboDK/RoboDKInterface.cs:528)

game4automation.InterfaceThreadedBaseClass.CommunicationThread () (at Assets/game4automation/private/Interfaces/InterfaceThreadedBaseClass.cs:92)

System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) (at :0)

System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)

System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)

System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at :0)

System.Threading.ThreadHelper.ThreadStart () (at :0)

UnityEngine.<>c:b__0_0(Object, UnhandledExceptionEventArgs)

I'm not sure where these errors might be coming from. Could someone help me resolve them?