Web User Interface#
Overview#
The Web User Interface (also referred to as WebGUI) is a tool, consisting of a set of applications (apps) designed to simplify the configuration and control of the robot as well as the user experience. The Web User Interface is accessed using a web browser.
Note
The recommended browser is Google Chrome (latest versions). Accessing the Web User Interface from a different browser might result in some of the functions not working properly or at all.
You can access the WebGUI via http://robot-type-Xc, where robot-type is the robot’s type (e.g. ari, tiago), and X is the robot’s serial number.
![../_images/access_webgui.png](../_images/access_webgui.png)
Note
Depending on the network configuration for the robot, the URL address might change.
Control Joint#
The Control Joint application allows easy real-time control and movement of the robot’s individual joints. The joint types available to control from WebGUI are:
Revolute
Prismatic
Interface#
The interface of Control Joint consists of joint groups that contain the corresponding interactive joint sliders.
![../_images/control_joint_interface.png](../_images/control_joint_interface.png)
The joint component is made up from the following elements:
Joint name: Shows ROS defined name of the joint (e.g.: “arm_1_left”).
Input slider: Move the slider thumb to make the robot joint move in real time.
Joint limits: Available minimum and maximum limits of joints, where possible the soft limits assigned in the URDF are used otherwise hard limits instead.
Input field: Numerical input field, to move joint using the stepper inside it or directly inputting the desired joint value.
Each joint can be moved from the slider or the numerical input field. The input slider has two thumbs, a ghost thumb (grey) and a movable thumb (black).
![../_images/control_joint_slider.png](../_images/control_joint_slider.png)
Only the dark color thumb is draggable by the user. Move it to the desired joint position. The ghost thumb indicates the real joint position at any time. Below there is an example of how the movement of WebGUI’s sliders controls the robot’s arm (in Gazebo simulation).
Warning
Dragging the slider’s thumb moves the robot without any security. Be sure the robot has enough space and no obstacles around to move freely.
![../_images/control_joint_move.gif](../_images/control_joint_move.gif)
Gazebo simulation of the interactive sliders and the robot movement correlation#
If the joints are controlled from a different tool or command, WebGUI’s sliders thumbs will reflect the real time change of joints positions, e.g.:
![../_images/control_joint_live_view_change.gif](../_images/control_joint_live_view_change.gif)
Sending a ros2action goal to play_motion2.#
Technical Overview#
The available joint groups can vary on the robot and its configuration.
The displayed groups (controllers) are obtained from the following ROS2 service: /controller_manager/list_controllers
The response is the list of available controllers on the robot, from which only the joint_trajectory_controller/JointTrajectoryController are displayed.
The robot description (URDF) is parsed to obtain the limits of the joints that belong to each controller.
Demos#
Simple app to start and stop robot demos that come out of the box with the robot.
Interface#
The interface consists of a grid of buttons that launch the corresponding demos.
![../_images/demos_interface.png](../_images/demos_interface.png)
Click on a given demo to start it:
![../_images/demos_start.png](../_images/demos_start.png)
The demo will start and the button will change to a STOP button. Click on it to stop the demo.
![../_images/demos_stop.png](../_images/demos_stop.png)
Diagnostics#
Diagnostics app displays the real time status of the robot’s hardware and software.
Overview#
The diagnostics data is organised in an hierarchical tree. The first level contains the Hardware, Software, and Others groups.
The Hardware diagnostics contain the status of the physical components of the robot, its readings and possible errors, e.g., status of motors, joints, etc.
The Software group contains the programs and data elements that run on the robot, such as vision or text to speech applications.
The Other groups any unfiltered elements.
Inside the hardware and software categories, there’s an entry (log) for each individual functionality or device. Some devices are grouped together (motors, sonars), but each device can still be seen in detail.
Table with level, icon and description of the diagnostics tree:
Interface#
![../_images/diag_interface.png](../_images/diag_interface.png)
The status of a particular category can be expanded by clicking on its name. This will provide information specific to the device or functionality. The Logs card displays the latest messages printed by the applications’ logging system.
Examples:
![../_images/diag_hardware_expanded.png](../_images/diag_hardware_expanded.png)
Clicking on the Hardware category will expand the group and display its sub-entries.#
![../_images/diag_motor_expanded.png](../_images/diag_motor_expanded.png)
Clicking on the Motors sub-group will show the subsequent entries and the corresponding logs.#
Dummy devices#
The Dummy devices app simplifies the way to set or unset the available RT devices as dummies.
Interface#
The interface consists of the three main device type groups: actuators, sensors, and IOs.
Each device type group contains the list of devices corresponding to it. For actuators and sensors the devices can be grouped based on their prefix to select or unselect multiple devices at once.
Note
Some robots can come without any sensor dummy device, in that case only actuator and IO devices are shown.
When you enter the app, the devices that already have their checkboxes marked in black are the ones previously set as dummy.
![../_images/dummies_ui_initial.png](../_images/dummies_ui_initial.png)
Dummy Devices app interface with some actuators marked as dummies#
While you are marking or unmarking the checkboxes, the ones that differ from the original state will be marked with orange or have an orange highlight around them. You can click the RESET button to go back to original values for all the devices.
![../_images/dummies_ui_unsaved_changes.png](../_images/dummies_ui_unsaved_changes.png)
Unsaved changes marked with orange checkboxes highlight#
After marking the devices you want to set or unset as dummy, click on the SAVE CHANGES button and confirm in the prompt.
Important
The robot must be restarted for the changes to take effect.
![../_images/dummies_ui_updated.png](../_images/dummies_ui_updated.png)
After the new values are processed, the orange highlights and SAVE / RESET buttons disappear, with checkboxes returning to black#
Modules#
The Modules app displays the list of PAL Robotics modules that are configured to be started on the robot, and the states these modules can be in.
Overview#
Each module or group of modules that provide a functionality can choose to specify a startup dependency on other modules or groups of modules. Below there is the possible states legend.
Table with level, icon and description of the modules:
Interface#
![../_images/startup_interface.png](../_images/startup_interface.png)
Each item of the list has the following parts:
Icon showing the state of the module.
Name of the module.
Button to start or stop the module depending on the state. If the module is running, a STOP button is displayed, which will stop it when clicked. If the module is stopped or has crashed, the button START will start it when clicked.
Example:
![../_images/startup_start_stop.png](../_images/startup_start_stop.png)
For more information about the PAL Module Manager, and how the modules are created and managed, please refer to The startup process of the robot and application management.
Networking#
The Networking application provides information about the robot’s network configuration, check out Network configuration for more information on how you can use the WebGUI, and other tools to manage the robot’s network.
Validation#
The Validation app serves to run validation tests on the robot using available validation modules.
Overview#
Multiple validation modules can be launched at once. Some modules are already grouped, and you can run individual modules or entire groups. Icons next to each module’s name show if the validation is in progress or finished. The legend below shows the possible statuses.
Legend:
State |
Icon |
Description |
---|---|---|
FINISHED |
Module finished execution on its own. This was an expected outcome. |
|
WAITING |
Module has been started but it’s waiting for dependencies. |
|
CRAHSED |
Module has ended execution unexpectedly |
|
RUNNING |
Module is currently running. |
|
Logs |
Module has available logs information. Click the icon to open it. |
Interface#
When you first open the Validation app, you’ll see a list of validation modules with corresponding checkboxes. Grouped modules are shown as dropdowns.
![../_images/validation_start_screen.png](../_images/validation_start_screen.png)
Choose the modules you want to launch and click the START TESTS button. For safety reasons you will be prompted to confirm starting validation again in the dialog message.
![../_images/validation_alert_dialog.png](../_images/validation_alert_dialog.png)
Once the validation process starts, each active module will display a status icon. Some modules may
still be running , while others may show as finished
or failed
.
![../_images/validation_is_running.png](../_images/validation_is_running.png)
If you need to stop the validation process while it’s running (this will affect all active modules), click the CANCEL TESTS button and confirm your choice in the dialog window.
![../_images/validation_cancel_dialog.png](../_images/validation_cancel_dialog.png)
For modules with validation triggered, the log button is available. Click the button
to display the messages on the right panel.
![../_images/validation_logs.png](../_images/validation_logs.png)
After all validation tests have been executed, click the RESET button to exit the validation mode and clear the modules selection and its states.