Broken webui on ROSbot 3 PRO

Here is some general information first:

hostnamectl
date -Ins
timedatectl status
snap list | grep -E 'rosbot|husarion|snapd|core'

Static hostname: alpha
Operating System: Ubuntu 24.04.4 LTS
Kernel: Linux 6.8.0-1056-raspi
Architecture: arm64
2026-05-27T14:57:34,050011004+02:00
System clock synchronized: yes
NTP service: active
husarion-depthai  2.11.2-1noble.20250406.230308  49   jazzy/stable  husarion✓
husarion-rplidar  2.1.4+git4.gd71b45d            41   jazzy/stable  husarion✓
husarion-webui    v1.1.0                          134  jazzy/stable  husarion✓
rosbot            0.16.1                          225  jazzy/stable  husarion✓

NB that I changed the hostname to alpha. The WebUI loads at http://alpha:8080/ui, but panels remain blank or stale. The status near ws://alpha:8080/ws stalls instead of showing timestamp updates. I tried rebooting, refreshing snaps, ./flash_firmware.sh and ./factory_reset.sh but the problem stays. Trying to dig about this:

snap services | grep husarion-webui
systemctl status --no-pager snap.husarion-webui.web-ws.service

husarion-webui.web-ui  enabled  active    -
husarion-webui.web-ws  enabled  inactive  -
Active: inactive (dead)
Process: 9270 ExecStart=/usr/bin/snap run husarion-webui.web-ws (code=exited, status=0/SUCCESS)

Looking at logs:

journalctl -u snap.husarion-webui.web-ws.service -b --no-pager -n 300
journalctl -u snap.husarion-webui.web-ui.service -b --no-pager -n 200
....
[INFO] [foxglove_bridge-1]: process started with pid [9369]
[foxglove_bridge-1] /snap/husarion-webui/134/opt/ros/jazzy/lib/foxglove_bridge/foxglove_bridge: symbol lookup error: /snap/husarion-webui/134/opt/ros/underlay_ws/opt/ros/jazzy/lib/libfastrtps.so.2.14: undefined symbol: _ZN8eprosima7fastcdr3Cdr9serializeERKh
[ERROR] [foxglove_bridge-1]: process has died [pid 9369, exit code 127, cmd '/snap/husarion-webui/134/opt/ros/jazzy/lib/foxglove_bridge/foxglove_bridge --ros-args --params-file /tmp/launch_params_0g5hznmx'].
....
dial tcp 127.0.0.1:8765: connect: connection refused
status: 502
uri: "/ws"
Sec-Websocket-Protocol: "foxglove.websocket.v1"

The WebUI is served on port 8080, but the Foxglove websocket backend never listens on 127.0.0.1:8765:

sudo ss -ltnp | grep -E ':8080|:8765'

LISTEN 0 4096 *:8080 *:* users:(("caddy",pid=9330,fd=7))

How can I fix this?

Hi @pbruneau,

I’m not sure why this might have happened. Could you please also provide information on what the following commands return:

snap info husarion-webui
journalctl -u snap.husarion-webui.web-ws.service -b | grep -iE 'symbol|foxglove|died'

Hello,

husarion@alpha:~$ snap info husarion-webui
name:      husarion-webui
summary:   A web UI for Husarion robots
publisher: Husarion✓
store-url: https://snapcraft.io/husarion-webui
contact:   https://github.com/husarion/husarion-webui-snap/issues
license:   Apache-2.0
description: |
  The **husarion-webui** snap includes web user interfaces for Lynx, Panther, ROSbot XL and ROSbot 2
  running in Foxglove.

  **Parameters**

  The snap provides the following configurable parameters (`param name`: `default value`):

  * `ros`: `{...}`
  * `webui`: `{...}`

  The `ros` contains the following keys:

  * `ros.domain-id`: `0` - Sets the `ROS_DOMAIN_ID` environment variable for the ROS driver.
  * `ros.localhost-only`: `0` - Sets the `ROS_LOCALHOST_ONLY` environment variable for the ROS
  driver.
  * `ros.transport`: `udp` - Configures DDS transport. Options are `udp`, `shm`, `builtin` (or
  `rmw_fastrtps_cpp`), `rmw_cyclonedds_cpp`. Corresponding DDS XML files can be found in the
  `/var/snap/husarion-webui/common` directory (custom FastDDS setups can also be created here).
  * `ros.namespace`: `(unset)` - Namespace for all topics and transforms.

  The `webui` contains the following keys:

  * `webui.layout`: `default` - Specifies the layout for the Web UI. Available `*.json` layout files
  can be found in the `/var/snap/husarion-webui/common` directory (custom layouts can also be
  created here).
  * `webui.port`: `8080` - Specifies the port for the built-in web server hosting the Web UI.

  To set parameters, use the snap set command, e.g.,

     snap set husarion-webui webui.layout=husarion-ugv

  **Available Apps (Main)**

  * `husarion-webui.start` - Start the daemon running the web UI server.
  * `husarion-webui.stop` - Stop the daemon running the web UI server.

  **Working with ROS Parameters**

  For multiple snaps running ROS 2 or host-snap-Docker communication, useful files and scripts are
  available in `/var/snap/husarion-webui/common/`.

  Example usage:

     # Set parameters in the husarion-webui snap
     sudo snap set husarion-webui ros.transport=udp ros.domain-id=123 ros.namespace=abc

     # Mirror the setup for other ROS 2 snaps
     sudo snap set husarion-depthai $(cat /var/snap/husarion-webui/common/ros_snap_args)
     sudo snap set husarion-rplidar $(cat /var/snap/husarion-webui/common/ros_snap_args)

     # Set up the current shell with the same configurations
     source /var/snap/husarion-webui/common/ros.env

     # Install configurations with
     /var/snap/husarion-webui/common/manage_ros_env.sh
     source ~/.bashrc

     ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap __ns:=/${ROS_NAMESPACE}
commands:
  - husarion-webui.start
  - husarion-webui.stop
services:
  husarion-webui.web-ui: simple, enabled, active
  husarion-webui.web-ws: simple, enabled, inactive
snap-id:      BlkA5eKaAkz4HtGtmMV6yLZ0l7LMaBk8
tracking:     jazzy/stable
refresh-date: 5 days ago, at 16:01 CEST
channels:
  humble/stable:    v1.1.0 2025-07-24 (136) 597MB -
  humble/candidate: ↑
  humble/beta:      ↑
  humble/edge:      v1.1.0 2025-12-12 (155) 609MB -
  jazzy/stable:     v1.1.0 2025-07-24 (134) 618MB -
  jazzy/candidate:  ↑
  jazzy/beta:       v1.1.0 2025-11-27 (138) 626MB -
  jazzy/edge:       v1.1.0 2025-12-12 (154) 633MB -
installed:          v1.1.0            (134) 618MB -
husarion@alpha:~$ journalctl -u snap.husarion-webui.web-ws.service -b | grep -iE 'symbol|foxglove|died'
May 27 16:13:20 alpha husarion-webui.web-ws[2385]: [INFO] [foxglove_bridge-1]: process started with pid [2426]
May 27 16:13:20 alpha husarion-webui.web-ws[2385]: [foxglove_bridge-1] /snap/husarion-webui/134/opt/ros/jazzy/lib/foxglove_bridge/foxglove_bridge: symbol lookup error: /snap/husarion-webui/134/opt/ros/underlay_ws/opt/ros/jazzy/lib/libfastrtps.so.2.14: undefined symbol: _ZN8eprosima7fastcdr3Cdr9serializeERKh
May 27 16:13:20 alpha husarion-webui.web-ws[2385]: [ERROR] [foxglove_bridge-1]: process has died [pid 2426, exit code 127, cmd '/snap/husarion-webui/134/opt/ros/jazzy/lib/foxglove_bridge/foxglove_bridge --ros-args --params-file /tmp/launch_params_civ0jppa'].

As complementary information, rplidar has the same inactive status:

husarion@alpha:~/Documents/rosbot-autonomy$ snap services husarion-rplidar
Service                  Startup  Current   Notes
husarion-rplidar.daemon  enabled  inactive  -

husarion@alpha:~/Documents/rosbot-autonomy$ snap info husarion-rplidar
name:      husarion-rplidar
summary:   RPLIDAR ROS 2 driver for Husarion robots
publisher: Husarion✓
store-url: https://snapcraft.io/husarion-rplidar
contact:   https://github.com/husarion/husarion-rplidar-snap/issues
license:   Apache-2.0
description: |
  The `husarion-rplidar` snap contains all the necessary software to bring the RPLIDAR LIDARS up.

  **Parameters**

  The snap provides the following configurable parameters (`param name`: `default value`):

  * `configuratin`: `custom`
  * `driver`: `{...}`
  * `ros`: `{...}`

  The `ros` contains the following keys:

  * `ros.domain-id`: `0` - Sets the `ROS_DOMAIN_ID` environment variable for the ROS driver.
  * `ros.localhost-only`: `0` - Sets the `ROS_LOCALHOST_ONLY` environment variable for the ROS
  driver.
  * `ros.transport`: `udp` - Configures DDS transport. Options are `udp`, `shm`, `builtin` (or
  `rmw_fastrtps_cpp`), `rmw_cyclonedds_cpp`. Corresponding DDS XML files can be found in the
  `/var/snap/rosbot-xl/common` directory (custom FastDDS setups can also be created here).
  * `ros.namespace`: `(unset)` - Namespace for all topics and transforms.

  The `driver` contains the following keys:

  * `channel-type`: `serial`
  * `serial-port`: `auto`
  * `serial-baudrate`: `256000`
  * `frame-id`: `laser`
  * `inverted`: `false`
  * `angle-compensate`: `true`
  * `scan-mode`: `(unset)`
  * `device-namespace`: `(unset)`

  To set the parameters, use the snap set command, e.g.,

     snap set husarion-rplidar driver.device-namespace=front_lidar
commands:
  - husarion-rplidar
  - husarion-rplidar.start
  - husarion-rplidar.stop
services:
  husarion-rplidar.daemon: simple, enabled, inactive
snap-id:      w8lK1AlBRZZAq5ARR4IBkAwiOqkldsYA
tracking:     jazzy/stable
refresh-date: today at 09:40 CEST
channels:
  humble/stable:    2.1.4+git4.gd71b45d 2025-03-22 (40) 53.0MB -
  humble/candidate: ↑
  humble/beta:      ↑
  humble/edge:      2.1.4+git7.g24cc9b6 2026-05-29 (46) 56.3MB -
  jazzy/stable:     2.1.4+git4.gd71b45d 2025-03-22 (41) 67.2MB -
  jazzy/candidate:  ↑
  jazzy/beta:       ↑
  jazzy/edge:       2.1.4+git7.g24cc9b6 2026-05-29 (47) 70.1MB -
installed:          2.1.4+git4.gd71b45d            (41) 67.2MB -

This problem seems to have a similar root cause:

husarion@alpha:~/Documents/rosbot-autonomy$ journalctl -u snap.husarion-rplidar.daemon.service -b | grep -iE 'symbol|died'
Jun 01 09:49:09 alpha husarion-rplidar.daemon[2266]: [rplidar_node-1] /snap/husarion-rplidar/41/opt/ros/snap/lib/rplidar_ros/rplidar_node: symbol lookup error: /snap/husarion-rplidar/41/opt/ros/underlay_ws/opt/ros/jazzy/lib/libfastrtps.so.2.14: undefined symbol: _ZN8eprosima7fastcdr3Cdr9serializeERKh

If that can be of any help tracing the problem, I was frequently running/deactivating the rosbot-autonomy stack using just start-navigation and just stop (the main branch here: GitHub - husarion/rosbot-autonomy at main · GitHub).

This has been working perfectly for months until recently, all of a sudden. Please let me add this, it may be useful too:

husarion@alpha:~/Documents/rosbot-autonomy$ snap info rosbot
name:      rosbot
summary:   A driver for ROSbot mobile robot
publisher: Husarion✓
store-url: https://snapcraft.io/rosbot
contact:   https://husarion.com/
license:   Apache-2.0
description: |
  **Description**

  The **rosbot** snap includes all the essential software required to operate the ROSbot, including
  the controller, robot state publisher, and more. The snap is dedicated for: ROSbot XL, ROSbot 3 /
  3 PRO, ROSbot 2R / 2 PRO.
  The snap is based on https://github.com/husarion/rosbot_ros package, which provides the ROS 2
  driver for the ROSbot mobile robot.

  **Installation**

  To install this snap on the Single Board Computer (SBC) within the ROSbot run the following
  command:

     snap install rosbot
     sudo /var/snap/rosbot/common/post_install.sh
     sudo rosbot.flash

  **Usage**

  After installation, you need to specify robot-model by running:

     sudo snap set rosbot driver.robot-model=rosbot/rosbot-xl

  You can start the ROSbot driver by running:

     sudo rosbot.start

  After that robot is operational and you can control it using by sending commands to the `/cmd_vel`
  topic. For example, you can use the `teleop_twist_keyboard` node to control the robot from a
  terminal:

    sudo rosbot.teleop

  or you can connect a Logitech F710 USB dongle to the ROSbot's USB port to control the robot.
  Remember to set gamepad in `X` mode and keep pressing the LB button on the gamepad to enable
  control.

  **Parameters**

  The snap provides the following configurable parameters:

  * `driver`: `{...}`
  * `ros`: `{...}`

  The `ros` contains the following keys:

  * `ros.domain-id`: `0` - Sets the `ROS_DOMAIN_ID` ROS 2 env.
  * `ros.localhost-only`: `0` - Sets the `ROS_LOCALHOST_ONLY` ROS 2 env.
  * `ros.transport`: `udp` - Configures DDS transport. Options are `udp`, `shm`, `builtin` (or
  `rmw_fastrtps_cpp`), `rmw_cyclonedds_cpp`. Corresponding DDS XML files can be found in the
  `/var/snap/rosbot/common` directory (custom FastDDS setups can also be created here).
  * `ros.namespace`: `` - Namespace for all topics and transforms.

  The `driver` contains the following keys:

  * `driver.configuration`: `basic` - Specify robot configuration. This parameter affects URDF and
  starts the manipulator. `rosbot` has only `basic` configuration. `rosbot-xl` has: `basic`,
  `telepresence`, `autonomy`, `manipulation`, `manipulation-pro`.
  * `driver.mecanum`: `True/False` (depend on robot-model) - switches between mecanum or
  differential drive controller.
  * `driver.robot-model`: `` - Allows you to select the robot model (options: `rosbot`,
  `rosbot-xl`).
  * `driver.serial-port`: `auto` - Serial port for firmware (e.g., `/dev/ttyUSB0`).

  To set parameters, use:

     snap set rosbot driver.mecanum=True

  **Available Apps (Main)**

  * `rosbot.flash` - Flash firmware for the STM32F4 microcontroller.
  * `rosbot.start` - Start the daemon running the ROSbot ROS 2 driver.
  * `rosbot.stop` - Stop the daemon running the ROSbot ROS 2 driver.
  * `rosbot.teleop` - Run the `teleop_twist_keyboard` node to control the robot from a terminal.

  **Auxiliary Apps**

  * `rosbot.config-ftdi` - Set up the CBUS pins in the FTDI chip (used with RST and BOOT0 pins in
  STM32); needs to be done only once.
  * `rosbot.print-serial-number` - Print the CPU ID and serial number of ROSbot.
  * `rosbot.reset-stm32` - Reset the STM32F4 microcontroller.

  **Working with ROS Parameters**

  For multiple snaps running ROS 2 or host-snap-Docker communication, useful files and scripts are
  available in `/var/snap/rosbot/common/`.

  Example usage:

     # Set parameters in the rosbot snap
     sudo snap set rosbot ros.transport=udp ros.namespace=abc

     # Mirror the setup for other ROS 2 snaps
     sudo snap set husarion-depthai $(xargs -a  /var/snap/rosbot/common/ros_snap_args)
     sudo snap set husarion-rplidar $(xargs -a  /var/snap/rosbot/common/ros_snap_args)

     # Set up the current shell with the same configurations
     source /var/snap/rosbot/common/ros.env

     # Install configurations
     /var/snap/rosbot/common/manage_ros_env.sh
     source ~/.bashrc

     ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap __ns:=/${ROS_NAMESPACE}
commands:
  - rosbot.arm-activate
  - rosbot.arm-disactivate
  - rosbot.config-ftdi
  - rosbot.flash
  - rosbot.print-serial-number
  - rosbot.reset-stm32
  - rosbot.restart
  - rosbot
  - rosbot.start
  - rosbot.stop
  - rosbot.teleop
services:
  rosbot.daemon:    simple, enabled, active
  rosbot.db-server: simple, enabled, active
snap-id:      IX8kZXHijORI92kMSVoEOPuSNVxr59CP
tracking:     jazzy/stable
refresh-date: today at 09:39 CEST
channels:
  humble/stable:    0.15.1        2025-07-24 (223) 427MB -
  humble/candidate: ↑
  humble/beta:      ↑
  humble/edge:      0.15.2        2025-10-14 (231) 428MB -
  jazzy/stable:     0.16.1        2025-07-24 (225) 480MB -
  jazzy/candidate:  ↑
  jazzy/beta:       ↑
  jazzy/edge:       1.0.0-247b329 2026-05-30 (326) 543MB -
installed:          0.16.1                   (225) 480MB -

Hi @pbruneau,
I managed to reproduce the problem and I think I understand what’s going on. Please test these two solutions.

Solution 1 - change lib order (quick solution)

# husarion-webui
echo 'export LD_LIBRARY_PATH=$SNAP/opt/ros/underlay_ws/opt/ros/jazzy/lib:$LD_LIBRARY_PATH' | sudo tee -a /var/snap/husarion-webui/common/ros.env
sudo husarion-webui.stop && sudo husarion-webui.start

# husarion-rplidar
echo 'export LD_LIBRARY_PATH=$SNAP/opt/ros/underlay_ws/opt/ros/jazzy/lib:$LD_LIBRARY_PATH' | sudo tee -a /var/snap/husarion-rplidar/common/ros.env
sudo husarion-rplidar.stop && sudo husarion-rplidar.start

Solution 2 - upgrade to edge (there may be differences resulting in effects other than those known)

# husarion-webui
sudo snap remove husarion-webui
sudo snap install husarion-webui --channel=jazzy/edge

# husarion-rplidar
sudo snap remove husarion-rplidar
sudo snap install husarion-rplidar --channel=jazzy/edge

The snaps are based on a single shared snap, rosbot-jazzy-base. It was recently updated, and there appears to be a discrepancy with library names/versions. Thanks for sharing these observations.

Hi @RafalGorecki,

Thank you for the feedback - I just tried both solutions; in short, things got better, but I’m still in trouble with rplidar in both cases.

I first tried solution 1: the webui comes back:

(don’t mind for the missing oak panel, I disabled it on purpose)
At first sight it seems ok BUT logs show concerning warnings about base_link. And the “3D” view shows lidar points, but doesn’t show the rosbot “self”. Below are warnings as seen in the CLI:

husarion@alpha:~$ ros2 topic echo /rosout
stamp:
  sec: 1780381550
  nanosec: 837659944
level: 30
name: laser_filter
msg: Could not get transform, irgnoring laser scan! Invalid frame ID "base_link" passed to canTransform argument target_frame - frame...
file: ./include/laser_filters/box_filter.h
function: update
line: 145
---
stamp:
  sec: 1780381551
  nanosec: 840739034
level: 30
name: laser_filter
msg: Could not get transform, irgnoring laser scan! Invalid frame ID "base_link" passed to canTransform argument target_frame - frame...
file: ./include/laser_filters/box_filter.h
function: update
line: 145
---
....

Before this persisting issue, and the fact that the patch doesn’t survive reboot, I went for solution 2.

After updating the snaps as instructed, I’m getting this:

This time, the 3D panel is completely empty. Attending to rplidar logs:

husarion@alpha:~$ snap services husarion-rplidar
Service                          Startup  Current   Notes
husarion-rplidar.daemon          enabled  inactive  -
husarion-rplidar.husarion-agent  enabled  active    -
husarion@alpha:~$ journalctl -u snap.husarion-rplidar.daemon.service -b | grep -iE 'symbol|died'
Jun 02 08:57:12 alpha husarion-rplidar.daemon[2262]: [ERROR] [rplidar_node-1]: process has died [pid 2389, exit code -11, cmd '/snap/husarion-rplidar/57/opt/ros/snap/lib/rplidar_ros/rplidar_node --ros-args -r __node:=rplidar -r __ns:=/ --params-file /tmp/launch_params_hw8apgcv --params-file /tmp/launch_params_b7rc3mvz --params-file /tmp/launch_params_h4shllqd --params-file /tmp/launch_params_2cj2ix2d --params-file /tmp/launch_params_aifw4qfa --params-file /tmp/launch_params_poirdf42 --params-file /tmp/launch_params_7bdyjx5z --params-file /tmp/launch_params_p1k777zr --params-file /tmp/launch_params_sulspndp --params-file /tmp/launch_params_zccjfvek --params-file /tmp/launch_params_zrbdg1gr'].
husarion@alpha:~$ snap info husarion-rplidar
name:      husarion-rplidar
summary:   RPLIDAR ROS 2 driver for Husarion robots
publisher: Husarion✓
store-url: https://snapcraft.io/husarion-rplidar
contact:   https://github.com/husarion/husarion-rplidar-snap/issues
license:   Apache-2.0
description: |
  The `husarion-rplidar` snap contains all the necessary software to bring the RPLIDAR LIDARS up.

  **Parameters**

  The snap provides the following configurable parameters (`param name`: `default value`):

  * `configuratin`: `custom`
  * `driver`: `{...}`
  * `ros`: `{...}`

  The `ros` contains the following keys:

  * `ros.domain-id`: `0` - Sets the `ROS_DOMAIN_ID` environment variable for the ROS driver.
  * `ros.localhost-only`: `0` - Sets the `ROS_LOCALHOST_ONLY` environment variable for the ROS
  driver.
  * `ros.transport`: `udp` - Configures DDS transport. Options are `udp`, `shm`, `builtin` (or
  `rmw_fastrtps_cpp`), `rmw_cyclonedds_cpp`. Corresponding DDS XML files can be found in the
  `/var/snap/rosbot-xl/common` directory (custom FastDDS setups can also be created here).
  * `ros.namespace`: `(unset)` - Namespace for all topics and transforms.

  The `driver` contains the following keys:

  * `channel-type`: `serial`
  * `serial-port`: `auto`
  * `serial-baudrate`: `256000`
  * `frame-id`: `laser`
  * `inverted`: `false`
  * `angle-compensate`: `true`
  * `scan-mode`: `(unset)`
  * `device-namespace`: `(unset)`

  To set the parameters, use the snap set command, e.g.,

     snap set husarion-rplidar driver.device-namespace=front_lidar
commands:
  - husarion-rplidar
  - husarion-rplidar.peer-join
  - husarion-rplidar.start
  - husarion-rplidar.stop
services:
  husarion-rplidar.daemon:         simple, enabled, inactive
  husarion-rplidar.husarion-agent: simple, enabled, active
snap-id:      w8lK1AlBRZZAq5ARR4IBkAwiOqkldsYA
tracking:     jazzy/edge
refresh-date: today at 08:45 CEST
channels:
  humble/stable:    2.1.4+git4.gd71b45d 2025-03-22 (40) 53.0MB -
  humble/candidate: ↑
  humble/beta:      ↑
  humble/edge:      2.1.4+git7.g24cc9b6 2026-06-01 (54) 66.8MB -
  jazzy/stable:     2.1.4+git4.gd71b45d 2025-03-22 (41) 67.2MB -
  jazzy/candidate:  ↑
  jazzy/beta:       ↑
  jazzy/edge:       2.1.4+git7.g24cc9b6 2026-06-01 (57) 80.6MB -
installed:          2.1.4+git7.g24cc9b6            (57) 80.6MB -

Please help :sweat_smile:

Thanks @pbruneau for sharing this information. I came up with a better option today:

# Revert to jazzy channel 
sudo snap remove husarion-rplidar husarion-webui

sudo snap install husarion-rplidar --channel=jazzy
sudo snap install husarion-webui --channel=jazzy

# Revert ros-jazzy-ros-base dependency
sudo snap revert ros-jazzy-ros-base
sudo snap refresh --hold ros-jazzy-ros-base

After these commands:

sudo snap revert ros-jazzy-ros-base
sudo snap refresh --hold ros-jazzy-ros-base

I ended up doing ./factory_reset.sh, and rosbot post-installation steps. After this, everything seems to be back to normal, thanks!

If I got this right, the commands above freeze the ros-jazzy-ros-base snap? What are the implications for future rosbot/husarion-rplidar/husarion-webui updates? I mean can I blindly refresh snaps periodically, or should I pay special attention (and how, then?)

We’re planning to release a new system image. We’re implementing a few new features and, at the same time, fixing the ros-jazzy-ros-base issue.

When new images appear on the stable channel, you’ll need to uninstall the ros-jazzy-ros-base version and update the dependencies.