Rosshow: ASCII/Unicode art viewers for sensor message types

Hi all! First post here and first attempt to contribute so please advise if I should be posting elsewhere. I’m an MIT graduate and co-founder of a robotics startup in Palo Alto.

One of the problems I have had is that often one wants to simply visualize the output of various sensor message topics without having to fire up some complex visualization tool to answer simple questions such as whether a LIDAR is functioning or whether a camera is saturating. In many cases one simply wants to do this over ssh.

I created a tool to visualize LaserScan, Image, and NavSatFix topics using Unicode/ASCII art. PointCloud2 supported as well but no rotation of the view yet. Currently very pre-alpha and hacky. Would welcome advice on the best way to structure this, and contributions!

2 Likes

Great work and great repo!

Why don’t you make it a ROS package?

I can help if you need help on that.

Awesome.

I second the suggestion to make it a ROS package.

I wanted to give it a try, but unfortunately it relies on python 3, where the default python version for ROS (at least on Ubuntu) is 2.

1 Like

@awesomebytes Good idea! Will work on that but probably not free until next week; if you want to take a stab at converting it to a package in the next few days let me know!

@NikolausDemmel Thanks for the feedback! I used a package I made called python-termgraphics (github.com/dheera/python-termgraphics) for drawing, and I targeted dual Python2/3 compatibility with that. I guess I just need to make the ROS part with dual compatibility. Is there any reason ROS is using Python 2 as the default still? (I use Python 3 for most of my robot code for future-proofing especially with TensorFlow and other new packages pushing for Python 3 support first.)

Another option I was considering is to eventually just port the whole thing to C++ (especially useful for people who may run the image viewer on RPis or other embedded hardware).

1 Like

I love it! great!
it seems possible to implement rqt_plot easily!

1 Like

I think it is mostly the vast amount of legacy code and also target platform support / defaults. I believe python 3.5 and up compatibility is strongly encouraged for recent ROS distros but python 2.7 is still the default.

There is some info here: REP 3 -- Target Platforms (ROS.org)

ROS 2 is already Python 3 only, so it is worth making/keeping your Python software in a condition where it can be executed on both Python 2 and Python 3.