Announcing Link ROS: cloud topic visualization and logging

Hi everyone,

I’d like to announce Link ROS, a set of tools for viewing data coming from ROS and controlling robots from anywhere in the world, through any kind internet connection (firewall, cell connection, spotty WiFI, login screens, …). We just went live on Product Hunt and are giving it away for free for one year for one robot with promo code PRODUCTHUNT.


I was working on large 11DOF cleaning service robots before in places with bad WiFi connection. I would sit next to the robot on-site with a screen, keyboard, mouse plugged into the robot trying to recreate a bug that had happened several times. I know firsthand how hard it is to:

  • get a stable ssh connection, or even get it set up, especially on-site at a deployment location
  • get the right data in your rosbag, share it to another compute, and visualize it
  • control your robot remotely when something goes wrong.

I’ve seen these problems solved(ish) again and again and rarely properly. We set out to solve this once and for all. We support ROS out of the box with a one-line install. You own all the data. We have a frontend app, but we’re API first and so you can hook your app to it as well.

I’d love feedback from the ROS community so let me know if you give it a try!

Thanks,
Achille

25 Likes

Can we use this tool to collect data like user demonstrations or labeling to be used as a dataset for machine learning purposes? Could you for example supervise a reinforcement learning agent with this to provide corrective demonstrations in a way such that all this takes place on the cloud?

5 Likes

That’s an interesting idea - we actually do support that. The service can collect petabytes and it doesn’t even have to go through ROS: everything is built on a REST API. You could provide corrective demonstrations by taking over the robot through the pilot feature, or you could label images by clicking on the screen - which are then published onto a ROS topic.

You also don’t necessarily have to use our web app. You could write an app that is tailored to your application and hook it up to our API. Here’s a minimal example of that. Any kind of data is supported.

7 Likes

A few questions:
Talking about handling spotty connections and the like. Does that imply that freedom’s agent does some sort of caching and dumps the data on reconnect?

If the crux of this is an API that you can throw data at, why not just use an existing database structure, especially if not running ROS? OSI Pi comes to mind from my automation days…

I’ve seen some stuff looking through your pages about controlling rate of logging. But how about intelligent compression (again a huge deal when I’ve done industrial automation)? You don’t really want to be gathering the exact same position reading over and over and over…

Regardless, that I am seeing this in the same vein as the industrial automation tools I have used, says that this is exciting for robotics. Hopefully will help us get more robust…

5 Likes

Hi mjsobrep - Awesome questions!

Re spotting connections - Yes, Link ROS has a buffer which buffers messages when you go offline and streams them when you reconnect. Honestly, this was super cool for me last night when my dev robot went offline and it kept track of all the data and network connectivity stats and backfilled it all in once my robot came back up.

Re using an existing database or OSI Pi - There is a huge amount of engineering work that goes into tuning this to work out of the box with ROS robots (And robots in general) - we do use databases behind the scenes, but we do so much more than that and package it up with a one line install. They are built to globally scale. Link ROS enables distributed logging for autonomous robots which means that it supports having 1000s of robots and gigabytes/terabytes of data flow in and out from all around the world while assuming the connections will continuously fail and reset (All of us been there with robots). We have a serverless architecture which means it scales to millions of robots and works with single robots equally as well. OSI Pi is a great solution for automation but would require a good bit of steps to package all the data from standard ROS topics into it and visualize it is also not built to run in a “robot centric” world.

In the context of people using this with ROS, a key thing is that the overhead of linking rViz, rqt_*, grepping through files, visualizing lidar point clouds and putting it all together is 98% of the time/effort for people and it takes care of all of that - and hooks in to all of the other systems your team uses for alerting, logging, teleoperation, etc.

Re intelligent compression - interesting idea! We do dynamic scaling on video feeds when connected over webRTC which autoscales based on bandwidth - however we haven’t looked at things like “sending the same position over and over again” but that sounds super neat - do you have any literature on this? I’d love to look at including it!

I love the analogies to industrial tools too - I used to be an applications engineer quite a bit ago! It really means we are becoming more mature as a community and building all kinds of ways to debug/build/deploy robots in large numbers to solve real world problems!

Happy to chat more on this and also dig in with you if you want to install. Check out the docs Please reach out to me directly and we can hop on a zoom. I would love to get your in-the-moment responses as you see data start to flow.

6 Likes

This looks pretty cool - Do you support ROS 2? We are in the process of migrating to ROS2 and concerned with what features we will no longer be able to use out of the box.

5 Likes

I have been using this for a while now on our deliveries at cyanbot.com - it has really helped us scale and grow our business quickly without recreating all the tooling necessary for a robotics company. One thing we have started looking into is building some of our own dashboarding and analytics on this as well - Can I have both your webapp and my own running at the same time?

4 Likes

Yes. It does support ROS 2. Here are the setup docs for enabling it with ROS 2. We are starting to see more and more developers really dive in and would love to get any feedback on your successes and challenges with ROS 2. It has made a huge amount of progress in the last year and we are really bullish on it.

3 Likes

Hi Zach. Good to hear from you and we are excited that you really like the platform! The answer is yes. We built this as an API-first platform, so you have direct API access to develop your own apps in React, Angular, Vue or write server-side apps in Node, Python and other languages. We actually treat our own frontend apps as customers of the API. We have companies building their own full apps against the API so that they can create custom interfaces for their operators, developers and users.

  • Multi-robot access - for listing and understanding robots by alerts, data, fleets, etc.
  • API Reference - you can use standard ajax calls against the API at any volume for as many robots as you want.
  • Platform Integrations - You can easily integrate with Slack, email, pagerduty, webhooks, etc.

Happy to give you more examples of how to use the data and visualize things on your own.

5 Likes

So cool! Love the Freedom folks! Here they are with Rover Robotics at TechCrunch Robotics Berkley
Freedom Robotics Rover Spin.2020-03-13 04_14_11

7 Likes

We have been using Freedom for a while and find it useful to manage our picking robots deployed in the field. They manage low bandwidth well and currently we’ve cranked the bandwidth way down and only upload a few critical topics so as to not rack up a crazy cell card bill

4 Likes

Hey @sjhansen3, Thanks for the replies.

@Achllle and I hopped on a call I showed him a bit of the system I have and he showed me around Freedom’s system. Very cool stuff. I’m going to try out Freedom for admin monitoring and visibility as soon as we have enough downtime on one of our systems. I’m now very excited that I don’t have to implement a bunch of this stuff.

Wrt data compression, if you start looking around at “data historian” you can find stuff from the big automation folks. Here is an older video for the Factory Talk Data Historian Exception/Compression system .

3 Likes

Here is an example on my Mars Rover - I used Freedom to get my encoders, odom and other systems running and then used it for teleoperation. :slightly_smiling_face: Check it out here!

Here’s the Robot Replay of it from while I was tuning it. Shows more than a 1000 words!

1 Like

That’s a super slick interface. I would love to know more about your JPL rover build out. Would you happen to have that documented somewhere?

3 Likes

Thanks! The JPL rover is well-documented and has been built by several high-school teams and hobbyists. All build documentation is on GitHub and the ROS code lives in a separate repo. Let me know if you decide to build one! It’s a bit of an undertaking but 100% worth it.

Also their website is one of the coolest I’ve ever seen: https://opensourcerover.jpl.nasa.gov/
ezgif.com-video-to-gif

3 Likes

Amazing! At kiwibot we appreciate a lot the work of the Freedom Team. They have help us a lot!

4 Likes

If you’re looking to generate a dataset for ML while operating your robot - or generating a report each morning on your security robot, this tutorial might be useful to you: blog+tutorial on capturing images remotely on trigger

@eratner This might be useful for you and the other folks at Berkely AI Research

I wanted to add here that LinkROS now supports resource monitoring in much more detail than ever before. Check it out the most recent release here.