URCap runs in URSim but not on real robot (same API version)

I have developed a URCap using the SDK 1.6.0, so it should work correctly in PolyScope 3.9.0 (CB-Series) and 5.3.0 (e-Series) or higher versions. These are the tests we have done:

  • When installing the URCap in the simulators, it is installed correctly (PolyScope 3.11 and PolyScope 5.5, respectively)
  • When installing the URCap on an e-Series robot, it is installed correctly (PolyScope 5.6)
  • When installing the URCap on a CB-Series robot, the installation fails (PolyScope 3.11)

In this third case, a yellow warning is displayed next to the name of the URCap, in the section Robot Setup → URCaps, as can be seen in the following image:
warning

We have accessed the robot terminal and were able to capture the following error during the robot initialization:
error

As we have read in this forum, this warning usually appears when the URCap is not compatible with the PolyScope version, but it is not the case. It seems very strange that it works correctly in the CB-Series simulator and not in the robot, both having the same version. We have tried to install the URCap both manually (USB with .urcap) and remotely, and it fails in both cases.

Any suggestions? Thank you!

have you tried simply using a newer API version or would there be any issues with the newest version 1.9?

Which version of java compiler do you use?
If you use version 1.8, please try to change to 1.6 in “pom.xml”.

The robots use Java 6; if you compile your URCap for newer Java versions it won’t work.
You should be able to control the compatibility from the POM as stated above, but you may also have dependencies compiled for newer versions.
You should ensure that every .class file you include in your jar are compiled for Java 6.

Here’s a way of checking the compiled artifacts: java - how to check the jdk version used to compile a .class file - Stack Overflow

1 Like

Hi fujikit,
Thank you for your suggestion. I checked my pom.xml and I think the java compiler version is correctly set to 1.6 (default version):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.0</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>
1 Like

Hi jubeira,
Thank you for answering. As I answered to @fujikit, the java compiler version is set by default to 1.6 in my pom.xml file:

On the other hand, I am not using any external dependencies like libraries in this URCap, only those that come by default as the UR API. So I don’t understand for now what is causing this version incompatibility.

1 Like

Hi m.birkholz,
Thank you for answering. I would rather not have to change the API version for compatibility reasons with robots with previous (PolyScope) API versions. However, I will try to use more recent API versions to see if the same thing happens.

I see.
Can you try on real robot updated to Polyscope SW3.12 ?

Hi fujikit,
Unfortunately I can’t right now.

Do you use full-width space or double-size characters in pom.xml?

I use Japanese characters for programming urcaps.
When I include Japanese characters in pom.xml, the compiled urcap can run on ursim but not on real robot(CB Series, SW3.**).

So I use English characters only in pom.xml.

T.Fujiki

Hi Fujiki,

Thank you for answering. I am using English characters only. Anyway, did you have the same or similar exception messages when using Japaese characters?

Certainly, the same or similar error sometimes causes when I write by English characters only.
I try to rewrite pom.xml in this case.

I will try rewriting my pom.xml file. Thank you :slight_smile: