ROSMCT is a data visualization and telemetry system for ROS built on nasa's Open MCT. ROSMCT communicates to a rosbridge node using roslibjs. ROSMCT then uses the open mct platform to display and interact with the system.
ROSMCT consists of several distinct components
- A rosbridge node running on the same roscore as the system of interest
- A realtime server that manages the collection of ros systems, subscription of topics, and communication with openmct clients
- A rosmct plugin used by openmct when clients connect that allows ros topics to be parsed by rosmct
todo: graphic representation of ros mct architecture
ROS wiki page: wiki.ros.org/rosbridge_suite rosbridge github: https://github.com/RobotWebTools/rosbridge_suite rosbridge protocoal: https://github.com/RobotWebTools/rosbridge_suite/blob/groovy-devel/ROSBRIDGE_PROTOCOL.md
Rosbridge runs on the local ros system and acts a a websocket server to translate ROS-to-JSON and JSON-to_ROS with remote systems. The main functions of rosbridge utilized by rosmct are to:
- Query all available topics in the system
- Allow web clients to subscribe to a topic in the system
- (TODO) Allow web clients to publish to a topic in the system
TODO: configuring the server-side connection between the realtime server and rosbridge (order of deployment, url/port, etc)
Recording historical telemetry requires setting up a QuestDB instance. This can be disabled with the DISABLE_QUESTDB
environment variable.
The schema is as follow:
CREATE TABLE <rossystemname> (
ts timestamp,
id symbol,
data string
) timestamp(ts);
CREATE TABLE dictionaries (
dictionary string
);
todo
todo
todo
todo
todo
todo
todo