Android app for ROS inspection

Hi everyone,

I’m currently working on an Android app that monitors a running ROS system. At the moment it’s very, very beta and it has limited functionality, just the equivalent of rosnode list and info, rostopic list and info. I made this app because my students often make ROS projects running on our Pioneer P3-DX robots outside, where running the ROS command line tools is not very comfortable. Having an app running on a smartphone or tablet that can inspect the ROS graph, show the contents of messages on a certain topic, etc. will be much more convenient.

The tool is free and will be released to the open source community very soon (once version 1.0.0 has been rolled out). It is currently at release 0.9.1 but I will probably deliver some updates in the coming weeks. Expect improvements to the stability, error handling, layout, etc. I’d appreciate it if you would try it out and confirm that it actually works (I have only a few Android devices/simulators available) and ideally I’d like this tested by as many people as possible.

You can find the app here: https://play.google.com/store/apps/details?id=nl.joostvanstuijvenberg.introspect

Thanks in advance for testing it!

Regards,
Joost

6 Likes

Hi Joost

Nice tool. Tested on Nexus 5, android 6.0.1.
It connected nicely to my laptop and I could see the topics and publishers and subscribers… Once you open source it, you’ll receive more support from the community here. I would also be interested in helping to develop it further…

Good luck and thanks for sharing

Regards,
Keivan

1 Like

Cool! I just tried it in an old tablet using Android 4.4 and it worked fine for a basic test. I’m looking forward to seeing the code coming out.

I am a bit curious though. Did you use rosjava/ rosandroid to build the app?

1 Like

Hi Juan, thanks for trying my app! Android 4.4 is the minimum Android version (API 19) that I developed it for, since I own a ‘vintage’ Samsung tablet that has 4.4 on it, and 97% of the Android world is able to run apps on that level.

I decided not to use neither rosjava nor rosandroid, but instead developed my own classes for the communication with the ROS master. It’s really not that complicated and I think I wouldn’t use much of the offered functionality of those libraries. Besides, rosjava and rosandroid seem to be intended for the development of ROS nodes in Java, whereas my app needs functionality to query the ROS master. Not sure if that is offered by those libraries; will check it though.

Once I have added some more functionality, did (a lot of) refactoring and wrote some documentation, I will open it up. I’m thinking about opening a dedicated GitHub.io page for it.

In the mean time, if you’d like, you can leave a rating in the Google Play Store. Since this is the first time I deployed an app to the GPS, I’m curious as to how these ratings show up in the Google Play Console. And since I have to persuade some people here to give me some time to dedicate to this project, having positive feedback may help in convincing them :smiley:

Regards,
Joost

30 people from all over the world have tried my app! I wonder what all these people are doing with it. Feel free to leave a comment or just a rating in the Google Play Store. If you’d like to make me really happy, send me a photo of your robot, you and/or my app running on your smartphone or tablet. Currently release 0.9.3 has been rolled out to the Google Play Store. The user interface is still pretty basic and sometimes a bit weird (my ideas about it didn’t really work out the way I hoped) but it is more stable, shows when it is actually updating and you can now ‘hop’ between nodes, topics and services: if you see topics listed on the node details page (the topics it is publishing to or subscribing to) you can click them and immediately land on the topic details page. The back button has been disabled on these detail pages to prevent a long trail back to the main menu. Time is quite limited the coming weeks but I’ll try to add some more functionality. I expect to have more time in the last weeks of December. Cheers, Joost

Hi Joost,

I also tried the app. Great work, I look to future development of the app.
Is this a native Android app? If so what do you think about a hybrid implementation so it can be deployed to Android and iOS (that is what we have for the remote app of our robot)?

Regards,
Willem.

Hi!

I’m really enthusiastic about your project! I think that it’s a good idea to monitor easily ROS system from a remote mobile app.

I’ve tried it, and the job is done. It’s very simple, have not so many features, but the main ones for start are available, and it works well.

I just waiting for the public Github release, because I would like to participate in the development of this project.

Cheers,
Thibaut

Hi Willem,

Thanks for your kind words! Since I am a Java developer primarily, I decided to make the first version in Java, so yes, it is a native Android app. I was thinking about partly implementing the future work in Kotlin, since Google seems to be pushing this language as the language of choice for Android (not sure if that is really true, it’s just a feeling I have) and it might be a good opportunity to jump on this Kotlin train. On the other hand, you idea is really interesting! Since I have no experience at all with developing hybrid apps, I will have to postpone the idea until at least version 1.0 has been completed. Maybe it’s even a better idea if an experienced developer forks my repository and refactors it to a hybrid version?

This is why open source is so great; all these people that are willing to contribute and improve! The coming weeks my time is quite limited, but I expect to be able to spend more time in this project in the second half of December.

Regards,
Joost

Hi Thibaut,

Thanks! The repository will open soon, but the coming weeks my time is quite limited. Please bear with me for the coming time; I’ll let you know when it opens.

Regards,
Joost

Joost,

What is the name of the app? Or a link?

Hi Joe,

It’s called Introspect, but there’s another app by the same name. Make sure you have the right one, this is the link: https://play.google.com/store/apps/details?id=nl.joostvanstuijvenberg.introspect

Regards,
Joost

Hello Joost

I also tried your app. Thanks for the effort. When do you think it will be possible to send ROS messages from the app?

Hi Fatih, thanks! I’m afraid I can’t tell you exactly when that functionality will be offered. Since typing in message contents on a tablet or smartphone is a bit inconvenient, perhaps it would be better to use a laptop or PC for that. But thanks for the idea!

Regards,
Joost

Well, it took a bit longer than I anticipated, but finally the IntROSpect source is online. It can be found at: https://github.com/joostvanstuijvenberg/IntROSpect

Please expect lots of refactoring and other changes in the coming months :smile:

IntROSpect 1.0.0 is available in the Google Play Store. It still has limited functionality but at least you can set the refresh rate, which is especially nice if you use resource-constrained devices (like the Raspberry Pi 3s that I use myself).

If you can, please help me! I am trying to persuade my employer to allow me to dedicate some time to the development of IntROSpect. It would seriously help me if you would send me an action photo of your ROS system and IntROSpect together! This will help to convince them that there is actually an audience for this app and the development effort (and time) is well-spent.

Cheers, and happy 2018!
Joost

2 Likes