Teleop.xyz - A lightweight online ROS visualizer

Hey robots and humans :robot:

I made a minimum viable ROS visualizer :metal:

I call it https://teleop.xyz

Designed for speed, enter your rosbridge address, select an RViz file and party🎉!

Most visualizers supported by ros3djs work. Many won’t work without a more comprehensive service.

Lots more to come. Feel free to support with donations so I can build out this roadmap✨


6 Likes

Neat, though I only seem to be getting an empty grid regardless of that rviz config I pick.

Console says:

index.js?b635:186 display class 'rviz/Range' not supported
start @ index.js?b635:186
index.js?b635:186 display class 'rviz/Marker' not supported
start @ index.js?b635:186
index.js?b635:186 display class 'rviz/TF' not supported
start @ index.js?b635:186
index.js?b635:186 display class 'rviz/Image' not supported
start @ index.js?b635:186
index.js?b635:186 display class 'rviz/Marker' not supported
start @ index.js?b635:186
4index.js?b635:186 display class 'rviz/Range' not supported

Maybe I’m doing something wrong here, or is it just not that far developed yet?

Does everything go through rosbridge aside from the video stream? From what I’ve used it in other implementations, even large laserscans seem to completely clog it on wifi, at what frequency are you getting updates on that pointcloud over there? :stuck_out_tongue:

From what I understand this is mostly a wrapper around ros3djs, that feeds data and models, etc. into it? Usually models need to be set up locally for rviz to pick them up, I don’t suppose that works over rosbridge.

1 Like

Thanks for the feedback! @MoffKalast

This is very much a rapid prototype.

Currently supported types are: Grid, LaserScan, PointCloud2, MarkerArray, Map, Odemetry, Path

I’ll definitely be supporting more of the low hanging fruit (1:1 mappings rviz → ros3djs ). Including Marker, InteractiveMarker, Tf, Urdf, Image

Urdf and Image will probably take me a while to get perfect.

As for network optimization and service approaches, its a looong story and YMMV :joy: but I try to use reasonable defaults:

First off, if your ROS device has the compute it is helpful to run the services in the example/point_cloud.launch

Right now the vizualizer is pulling all data from rosbridge. The example runs point_downsample_node which by default will downsample a pointcloud topic to around ~100kBs or less and includes a visual tool for tweaking settings. There are also a few tools in the ros community for doing the same down sampling step. I also include in the example launch tools for more efficient image and pointcloud downlinking, these aren’t supported yet but will make image streaming as good as your network will allow{ web_video_server, depthcloud_encoder }.

rosbridge has some pretty bad performance at times so its best to use low bandwidth topics and reasonable defaults for what to show in viz, its actually pretty good at high frequency/low bandwidth topics tho. I also see rosbridge sometimes slowing to the speed of the slowest client at times, so multi-user can be a bit wonky performance wise. Naturally your specific network situation and compute are a huge factor.

Check out topic_tools for throttling topics.

1 Like

If you have issues with SSL checkout this work around

Supported joy sticks in the browser along with several other updates

v0.2.0: adds viz support for { [tf, Marker, Odom(bug fix), URDF }.
v0.3.1: adds viz support for InteractiveMarkers, supports /joy publishing from the browser when gamepad attached, improved TfTree, URDF and debug output



1 Like