Debug realityeditor - No objects displayed today, but was working before

Hello,
Is there a way to troubleshoot RealityEditor iOS app? Since today morning the iOS app does not show the interface associated with my target. Everything was working fine last week, when I point the iOS app to target, I got the UI overlay.

But today nothing happens, I do see node.js logs showing the iOS application finding OpenHybrid server, and and it is sending beats for the object.

All devices are in the same WiFi network and nothing has changed AFAIK.

Thank You!
Jacob

OpenHybrid node.js logs
Starting the Server
Initialize System:
Loading Hardware interfaces
Done
Loading Hybrid Objects
Enter loadHybridObjects
TempFolderName: MyTestApplicationI81e5crjodgs
No saved data for: MyTestApplicationI81e5crjodgs
Done
creating beat for object: MyTestApplicationI81e5crjodgs
with version number: 160
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
socket.io started
started
ready to start internal servers
Creating folder: /opt/dev/openhybrid/object-1.6.0/objects/MyTestApplication/
AddIO objectID: MyTestApplicationI81e5crjodgs empty2Example
I will save: MyTestApplication and: tvui
it’s all cleared

Init MyTestApplication

found 1 internal server
starting internal Server.
webserver + socket.io is listening on port: 8080
UDP listening on port: 52316
ping
creating beat for object: MyTestApplicationI81e5crjodgs
with version number: 160
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
ping
creating beat for object: MyTestApplicationI81e5crjodgs
with version number: 160
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
ping
creating beat for object: MyTestApplicationI81e5crjodgs
with version number: 160
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}
UDP broadcasting on port: 52316
Sending beats… Content: {“id”:“MyTestApplicationI81e5crjodgs”,“ip”:“192.168.47.2”,“vn”:160,“tcs”:“4jvunv”}

Can you try to delete the app from your phone and reinstall it via the app store?
The editor will then freshly reinitialize all markers.

Thanks @valentin. That solved the issue.

Do you know what causes this issue? How can we avoid this in the future?

Thank You!
Jacob

I have the suspicion, that something with the downloader in the reality editor has a small bug that happens from time to time.
Have you been updating your markers recently?

The last change that I made to the updater was that the Reality Editor is checking a checksum of the marker files before download. This dramatically improved the Reality Editor start up time.
It could be possible that with the last marker change that you made, the Editor generated a corrupted download.

I can fix this by verifying the checksum of the downloaded files within the Reality Editor with every start and reinitializing if the checksums do not match.

@valentin First I wanted to say Thank You very much for all your help and quick responses :).

Sorry I’m not familiar with the term marker. I’ve seen the term used in the documentation, but couldn’t find out what exactly it did.

This is not the first time it has happened. It happened twice before but wrote it off as a mistake I made. I have not been able to identify a pattern as to why this happens.

A marker is that image that you make of your objects used by the reality editor to track the object.
The image is used to create a “marker” with the vuforia system.

If you have created such a new image / marker and uploaded it to the open hybrid server then the reality editor will be forced to make a new download. If that download breaks for what ever reason there is a possibility that the editor falsely thinks that the download happened.
I need to make that more redundant and force the reality editor to verify with every start and every download that the files have been ok and not corrupted.

If it happens another time, can you try to remember what have been the last significant changes you made? This would help us to debug the issue.

@valentin, thanks for clarifying the term - I guess you use the term marker and target interchangeably.

But no, I’ve not changed the marker image at all. I’ll keep track of changes.

Sorry forgot to mention this earlier, but I do development/testing on my computer running node.js, and then deploy the code onto a raspberry pi. To deploy code I take a tar of the hardwareInterfaces and objects directory. Then untar the directories in raspberry pi. Do you know if this could be causing the problem? I try not to have both node.js servers running at the same time.

I think there should be no problem.

A tip for faster development:
You can mount your PI folder with sshfs.
You will need to install sshfs on the PI via package manager.
If you have a mac you can install https://osxfuse.github.io to use it.

And then you can just mount your PI as an external disk and work on it directly like so:
sshfs root@objectname.local:/ ~/mountpoint

mountpoint needs to be an empty folder on your mac.

Thank You @valentin, I’ll try that

Edit: The download feature (zipbackup) in OpenHybrid interface does not seem to work. Is that a know issue. Upload seems to work fine.

Jacob.

yes that was a known issue.
I will check with my sources and see how to fix it.

@valentin, I was looking at it, seems like there are two competing routes in server.js.

  1. https://github.com/openhybrid/object/blob/master/server.js#L810
  2. https://github.com/openhybrid/object/blob/master/server.js#L995

Seems like, when you do GET /object/%object_name%/zipBackup/, the first one answers.

I was able to make a quick change and get it to work, I can send you a pull request if you prefer.
I made the following changes

  1. In server.js#L995 - webServer.get(’/zipBackup/*’, function (req, res) { on server.js#L995
  2. In HybridObjectsWebFrontend.js - ’ ’ +

Jacob

I think the change that I have in my unpushed sources is that I have moved

 webServer.get('/object/*/', function (req, res) {
            //  cout("get 7");
            res.json(objects[req.params[0]]);
        });

after the
webServer.get('/object/*/zipBackup/', function (req, res) {

Is that what you changed as well?

Yes, feel free to sent a pull request.

Yes, I moved it after the if/else for globalVariables.developer === true).

I’ve created the pull request.

I did notice, once you upload, you need to restart node server.js for it to display in RealityEditor.

@ejactho
I just updated the Editor with a bugfix that should eliminate the error that you had originally.

@valentin, Thank you for this. I’ve not seen this issue come up.

1 Like