This is the GUI for the International MATE ROV-competition 2018. The GUI is made with React and Electron, and communicates with the ROV through ROS.
To start the GUI, first install npm, then run:
npm install
npm run dev
This will start the Electron-app in development mode.
To be able to connect to ROS, a ROS-bridge-server has to be installed:
Ubuntu: sudo apt-get install ros-kinetic-rosbridge-suite
Run npm run dist
.
This will produce an Linux-x64 executable called rov-gui inside dist/linux/rov-gui-linux-x64/
If another platform/arch is required this can be configured in package.json.
In this section all the topics used by the GUI will be listed.
- /is_alive (std_msgs/Empty) - Should be published to by the ROV with a rate of at least 2 Hz. Otherwise the GUI will show an error message, indicating that the ROV is disconnected.
- /general/healthcheck/<item> (std_msgs/Empty) - For telling if a specific component of the ROV is connected, where <item> is the name of the component (e.g. IMU, manipulator, etc) in lowercase. If it is not published to with a rate of at least 2 Hz the GUI will mark the component as "Not connected".
- /obs/voltage (std_msgs/Float64) - The voltage of the OBS should be published to this topic.
- /obs/angles (geometry_msgs/Point) - The angle of the OBS should be published to this topic. The z-value of the Point-message is ignored.
- /obs/data (std_msgs/Float64MultiArray) - The data received from the OBS should be published to this topic. The GUI will then display the data both as a table and as a seismograph.
- /aircraft_id/type (std_msgs/String) - Publish a single letter A-F to indicate which kind of aircraft is identified by the ROV.