• Stars
    star
    1,054
  • Rank 43,744 (Top 0.9 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Visualize ROS topics inside a terminal with Unicode/ASCII art

rosshow: Visualize ROS topics in a terminal

Have you ever SSH'ed into a robot to debug whether sensors are outputting what they should, e.g. rostopic echo /camera/image_raw?

If so, rosshow is for you.

This displays various sensor messages in a useful fashion using Unicode Braille art in the terminal so you don't need to fire up port forwards, rviz, or any other shenanigans just to see if something is working. It currently only supports types from std_msgs and sensor_msgs but support for more types is coming. Contributions welcome!

Installation

Prerequisites:

sudo pip install numpy pillow requests

This package will install to your ROS bin directory, i.e. where other ROS binaries such as rostopic, rosnode, etc. are located. Or if you don't want to do that or don't have permissions, you can add it to your catkin workspace and run it using rosrun.

To install to the system:

source /opt/ros/<kinetic, melodic, noetic>/setup.bash
./configure-ros1
./ros-install-this

Usage

If you installed it to the system:

rosshow <topicname>

If you're using it from a catkin workspace:

rosrun rosshow rosshow <topicname>

Most visualizations use Unicode Braille characters to render visualizations. If your terminal supports only ASCII, you can use the -a option for a purely ASCII-art render:

rosshow -a <topicname>

You can also force 1-bit, 4-bit, or 24-bit color modes if your terminal type is not detected correctly. You may need these when using rosshow inside of a screen.

rosshow -c1 <topicname>
rosshow -c4 <topicname>
rosshow -c24 <topicname>

Screenshots

sensor_msgs/PointCloud2

You can rotate and tilt with the arrow keys, and zoom with the +/- keys. This has been tested with Velodyne data. PointClouds from devices that don't have "x", "y", and "z" fields are not supported.

screenshot

sensor_msgs/Image, sensor_msgs/CompressedImage

screenshot

sensor_msgs/LaserScan

You can zoom with the +/- keys.

screenshot

sensor_msgs/Imu

screenshot

sensor_msgs/NavSatFix

The NavSatFix visualization fetches map tiles from OpenStreetMaps, so your machine or robot needs to have internet access to be able to view those. Otherwise, you'll still be able to see a trace of points.

screenshot

The ASCII-only "-a" option works for all types. Here's what the NavSatFix message looks like on pure ASCII:

screenshot

std_msgs/Int32, std_msgs/Float32, etc.

For most std_msgs numeric types you will get a time series plot.

screenshot

Neat trick: You can reduce your terminal font size to get slightly higher resolution. Here's a nav_msgs/OccupancyGrid: screenshot

Full list of supported types

nav_msgs

  • nav_msgs/OccupancyGrid
  • nav_msgs/Odometry
  • nav_msgs/Path

std_msgs

  • std_msgs/Bool
  • std_msgs/Float32
  • std_msgs/Float64
  • std_msgs/Int8
  • std_msgs/Int16
  • std_msgs/Int32
  • std_msgs/Int64
  • std_msgs/UInt8
  • std_msgs/UInt16
  • std_msgs/UInt32
  • std_msgs/UInt64

sensor_msgs

  • sensor_msgs/CompressedImage
  • sensor_msgs/FluidPressure
  • sensor_msgs/Illuminance
  • sensor_msgs/Image
  • sensor_msgs/Imu
  • sensor_msgs/LaserScan
  • sensor_msgs/NavSatFix
  • sensor_msgs/PointCloud2
  • sensor_msgs/Range
  • sensor_msgs/RelativeHumidity
  • sensor_msgs/Temperature

More Repositories

1

rosboard

ROS node that turns your robot into a web server to visualize ROS topics
JavaScript
899
star
2

android-wearcamera

Remotely control a phone camera with an Android Wear smartwatch
Java
170
star
3

shoji-lamps

OpenSCAD
169
star
4

bokeh-camera

C++
107
star
5

ros-semantic-segmentation

ROS package for semantic segmentation
Python
104
star
6

magicimport.py

Python
95
star
7

rospy2

Python
85
star
8

ros-imu-bno055

ROS1/ROS2 C++ driver for Bosch BNO055 IMU (I2C)
C++
81
star
9

mnist-clock

A clock that displays digits using randomly selected MNIST digits.
Python
81
star
10

android-wearface-matrix

"The Matrix" watch face for Android Wear
Java
76
star
11

scripts

personal scripts to make life easier
Python
70
star
12

fooplot

LGPL JavaScript embeddable graphing calculator with Google maps style panning and other features.
JavaScript
61
star
13

ros-pwm-pca9685

ROS package for PCA9685 16-channel PWM driver, used in motor and LED applications
C++
47
star
14

python-termgraphics

Library to draw Unicode braille art in a terminal
Python
39
star
15

android-wearmaps

Pannable maps for Android Wear
Java
36
star
16

android-attopedia

A smartwatch-friendly interface for Wikipedia
Java
32
star
17

android-sesame

Door opener
Java
30
star
18

shadow-clock

a wall clock
OpenSCAD
29
star
19

python-fordreader

Python library to read steering wheel angles and more from a Ford car over OBD
Python
27
star
20

robot-luxo

JavaScript
27
star
21

aqi-monitor

Python
26
star
22

robot-botparty

CSS
23
star
23

big-yellow-proxxon-mf70-conversion

Proxxon MF70 mini-mill CNC conversion with 3D printed parts including y- and z-axis extensions
OpenSCAD
21
star
24

iceland-thermal

Python
19
star
25

roscpp2

C++
15
star
26

android-googlepinyin-dvorak

Dvorak version of Google Pinyin for Android
Smali
15
star
27

ros2-wifi-geolocation

Python
10
star
28

roslite.js

JavaScript
8
star
29

ros-power-ina219

ROS node for Texas Instruments INA219 current/power monitor
C++
8
star
30

first-photon-imaging

first photon imaging
MATLAB
7
star
31

ros-ford-can

ROS node for Ford vehicles to read steering wheel angle, speed, and much more over CAN
Python
6
star
32

robot-europa

ADAS system based on Jetson Xavier
C++
6
star
33

web-dheeranet

Personal website
HTML
6
star
34

python-belleds

Python implementation of the Belleds API
Python
5
star
35

phd-thesis

phd-thesis
TeX
4
star
36

ros-motor-pololu-qik

ROS package for Pololu Qik motor controllers
C++
3
star
37

ros-motor-romeo-quad

ROS driver for Romeo BLE Quad
C++
3
star
38

ros2-home-assistant

Python
2
star
39

web-sustainabilitysummit

MIT Sustainability Summit website
Python
2
star
40

photo-hacks

cameras + motors + arduinos
Arduino
2
star
41

ros-motor-roboteq-modbus

C++
2
star
42

ros-system-stats

ROS package providing simple system statistics e.g. CPU, GPU usage
Python
2
star
43

clip2type

C++
1
star
44

watchdog

C++
1
star
45

hydraharp-tools

GNU C file reader for PicoQuant Hydraharp binary files (for Time-Correlated Single Photon Counting)
C
1
star
46

lists-of-things

1
star
47

ros-pynodelet

Python
1
star
48

ros-lidar-avoidance

C++
1
star
49

iot-arduino

C++
1
star
50

install-scripts

Because everything is so complicated to install these days.
Shell
1
star
51

dheera.github.io

JavaScript
1
star
52

ros-imu-bno055-arduino

C++
1
star