The Husky A300 ships with ROS 2 Jazzy pre-installed and configured on Ubuntu 24.04.

Note

ROS 2 Humble is not supported on the Husky A300. The Humble tabs are included for reference only.

For detailed ROS 2 documentation, refer to the Clearpath ROS 2 Documentation.

Pre-requisites

Installation

_images/a300.webp

Husky A300 Custom Integration


Installation on Robot

The Husky A300 comes with ROS 2 Jazzy pre-installed on Ubuntu 24.04. If you need to reinstall or update:

sudo apt-get update
sudo apt-get install --reinstall ros-jazzy-clearpath-robot

Verify that udev rules are installed:

ls /usr/lib/udev/rules.d/60-ros-jazzy-clearpath-robot.rules

Installation on External PC

To set up a remote workstation for development and monitoring:

  1. Install Ubuntu 24.04 on your workstation

  2. Install ROS 2 Jazzy following the official instructions:

    sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install curl -y
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    sudo apt update
    sudo apt install ros-jazzy-desktop
    
  3. Install Clearpath packages:

    sudo apt-get update
    sudo apt-get install ros-jazzy-clearpath-desktop
    
  4. Configure ROS 2 environment:

    echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    export ROS_DOMAIN_ID=0
    export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
    
  5. Install CycloneDDS (recommended for Clearpath robots):

    sudo apt install ros-jazzy-rmw-cyclonedds-cpp
    

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for installation instructions.

Autostart

Autostart Configuration

_images/web_system.png

Husky A300 System Services


The Husky A300 uses systemd services to automatically start ROS 2 nodes on boot.

Check Service Status:

sudo systemctl status clearpath-robot.service

Or via the web interface:

sudo service clearpath-platform status
sudo service hsky-webserver status

Restart Service:

sudo systemctl restart clearpath-robot.service

View Service Logs:

journalctl -u clearpath-robot.service -f

Service Status Indicators

  • Green - Service running correctly

  • Red - Startup job failed

  • Grey - Service not started

Robot YAML Configuration

In ROS 2 Jazzy, the robot is configured via a YAML file instead of environment variables.

Location: /etc/clearpath/robot.yaml

Example Configuration:

system:
  ros2:
    namespace: ""
    domain_id: 0
    rmw_implementation: rmw_cyclonedds_cpp
platform:
  model: a300
  serial_number: A300-XXXX
extras:
  ros2:
    - package: my_custom_package
      launch_file: my_launch.py

Apply Configuration Changes:

After modifying robot.yaml, restart the service:

sudo systemctl restart clearpath-robot.service

MYBOTSHOP Autostart

For MYBOTSHOP custom integrations, autostart is managed via:

ros2 run hsky_autostart startup_installer.py

The startup configuration is defined in hsky_autostart/startup_installer.py.

For detailed configuration options, refer to the Clearpath Configuration Documentation.

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for autostart configuration.

Webserver

Robot Web Interface

_images/web_dashboard.png

Husky A300 Web Dashboard


The Husky A300 includes a web-based interface for monitoring and basic control.

Accessing the Web Interface:

  1. Connect to the robot’s network

  2. Open a web browser

  3. Navigate to: http://192.168.131.1:9000/

Default Credentials:

  • Username: admin

  • Password: mybotshop

Login

_images/web_login.png

Webserver Login


Dashboard

_images/web_dashboard.png

Webserver Dashboard


The dashboard provides:

  • View IP Address of the Husky A300

  • View system load and status

Console

_images/web_console.png

Webserver Console


From the Console you can:

  • Enable/Disable Husky A300 ROS 2 services

  • Record system logs

  • Monitor battery status

  • Use pre-configured action buttons

  • Use the web joystick

  • View online image streams

Remote Desktop

_images/web_vnc.png

Husky A300 Remote Desktop (VNC)


Provides access to the on-board screen of the Husky A300’s computer.

Indoor Navigation

_images/web_nav_indoor.png

Indoor Navigation Interface


Outdoor Navigation

_images/web_nav_outdoor.png

Outdoor Navigation Interface


ROS 2 Web Bridge

For advanced web-based ROS 2 interaction using rosbridge:

sudo apt-get install ros-jazzy-rosbridge-server
ros2 launch rosbridge_server rosbridge_websocket_launch.xml

This enables WebSocket-based communication with ROS 2 topics and services.

Foxglove WebSocket

For modern web visualization, use Foxglove Bridge:

sudo apt install ros-jazzy-foxglove-bridge
ros2 launch foxglove_bridge foxglove_bridge_launch.xml

Connect using Foxglove Studio for real-time visualization and debugging.

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for webserver information.

Teleoperation

Joystick Teleoperation

The Husky A300 supports teleoperation via a paired PlayStation-style controller.

Controller Mapping:

  • PS Button: Connect controller to robot

  • L1 (Hold): Slow mode - max 0.3 m/s

  • R1 (Hold): Fast mode - max 2.0 m/s

  • Left Thumbstick: Movement control

Keyboard Teleoperation

For keyboard control from a connected workstation:

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=/cmd_vel

Keyboard Controls:

  • i: Forward

  • k: Stop

  • j: Turn left

  • l: Turn right

  • ,: Backward

  • u: Forward-left curve

  • o: Forward-right curve

Custom Velocity Commands

To send velocity commands programmatically:

ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.5}, angular: {z: 0.0}}"

Teleoperation via RQT

For a graphical teleoperation interface:

ros2 run rqt_robot_steering rqt_robot_steering --ros-args -r cmd_vel:=/cmd_vel

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for teleoperation instructions.

Visualization

RViz2 Visualization

_images/web_vnc_viz.png

Husky A300 RViz2 Visualization


To visualize the robot state and sensor data:

ros2 launch husky_a300_viz view_robot.launch.py

Or using Clearpath packages:

ros2 launch clearpath_viz view_robot.launch.py

This launches RViz2 with a pre-configured layout showing:

  • Robot model

  • TF frames

  • Sensor data (if available)

  • Odometry

Custom RViz Configuration

To save your custom RViz configuration:

  1. Configure RViz displays as desired

  2. File > Save Config As > /path/to/my_config.rviz

To load a custom configuration:

ros2 launch clearpath_viz view_robot.launch.py rviz_config:=/path/to/my_config.rviz

Foxglove Studio

For an alternative web-based visualization:

  1. Install Foxglove Bridge:

    sudo apt install ros-jazzy-foxglove-bridge
    
  2. Launch the bridge:

    ros2 launch foxglove_bridge foxglove_bridge_launch.xml
    
  3. Open Foxglove Studio and connect to your robot’s IP address.

Viewing TF Frames

To visualize the transform tree:

ros2 run tf2_tools view_frames

This generates a PDF showing the complete TF tree structure.

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for visualization instructions.

Sensors

Default Sensors

The Husky A300 includes the following built-in sensors:

  • IMU: Inertial Measurement Unit for orientation and acceleration data

  • Wheel Encoders: For odometry calculation

IMU Data:

ros2 topic echo /imu/data

Odometry:

ros2 topic echo /odometry/filtered

Depth Cameras

Supported depth cameras include Intel RealSense and ZED series.

Example: Adding a RealSense D435 to robot.yaml:

sensors:
  cameras:
    - model: intel_realsense
      urdf_enabled: true
      launch_enabled: true
      parent: top_plate_link
      xyz: [0.15, 0.0, 0.1]
      rpy: [0.0, 0.0, 0.0]

Lidars

Supported LiDAR sensors include Velodyne, Ouster, and SICK series.

Example: Adding a Velodyne VLP-16 to robot.yaml:

sensors:
  lidar3d:
    - model: velodyne_vlp16
      urdf_enabled: true
      launch_enabled: true
      parent: top_plate_link
      xyz: [0.0, 0.0, 0.2]
      rpy: [0.0, 0.0, 0.0]

GPS

GPS receivers can be added for outdoor navigation.

Example: Adding a GPS receiver to robot.yaml:

sensors:
  gps:
    - model: nmea_gps
      urdf_enabled: true
      launch_enabled: true
      parent: top_plate_link
      xyz: [0.0, 0.0, 0.3]

Auxiliary Sensors

Additional sensors and accessories can be configured through the robot.yaml file. Refer to the Clearpath Integration Guide for detailed sensor integration instructions.

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for sensor information.

Simulation

Gazebo Harmonic Simulation

The Husky A300 can be simulated in Gazebo Harmonic with ROS 2 Jazzy.

Prerequisites:

Set up your simulation workspace:

mkdir -p ~/clearpath_sim_ws/src
cd ~/clearpath_sim_ws/src
git clone https://github.com/clearpathrobotics/clearpath_simulator.git
vcs import . < clearpath_simulator/clearpath_sim.repos --recursive

Install Dependencies:

cd ~/clearpath_sim_ws
rosdep install -r --from-paths src --rosdistro jazzy -i -y
sudo apt install ros-jazzy-rmw-cyclonedds-cpp

Build the Workspace:

colcon build --symlink-install
source install/setup.bash

Launch Simulation:

ros2 launch clearpath_gz simulation.launch.py

Robot Configuration for Simulation

Create a robot.yaml file to customize your simulated robot:

system:
  ros2:
    namespace: a300
    domain_id: 0
platform:
  model: a300

Isaac Sim

NVIDIA Isaac Sim support is available for advanced simulation scenarios. Refer to the Clearpath Isaac Sim Documentation for setup instructions.

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for simulation instructions.

Packages

Robot Description

The clearpath_description package contains URDF models for the Husky A300.

ros2 launch clearpath_viz view_model.launch.py

In ROS 2 Jazzy, robot configuration uses a YAML file (robot.yaml) instead of environment variables.

Twist Mux

The twist_mux package manages multiple velocity input sources with priority handling.

Topics are prioritized in the following order (highest to lowest):

  1. Emergency stop commands

  2. Joystick teleoperation

  3. Navigation commands

  4. External commands

EKF Localization

The robot_localization package provides Extended Kalman Filter (EKF) based localization, fusing wheel odometry with IMU data.

To view the current odometry:

ros2 topic echo /odometry/filtered

Clearpath Common Packages

In ROS 2 Jazzy, Clearpath uses common packages across all supported platforms:

  • clearpath_common - Shared configurations and utilities

  • clearpath_config - Robot YAML configuration handling

  • clearpath_description - Robot URDF models

  • clearpath_generator - Configuration file generators

  • clearpath_msgs - Custom message definitions

  • clearpath_platform - Platform-specific drivers

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for package information.

Debugging

Common Debugging Commands

List Active Topics:

ros2 topic list

Check Topic Publishing Rate:

ros2 topic hz /odometry/filtered

View Node Information:

ros2 node list
ros2 node info /robot_state_publisher

Check TF Tree:

ros2 run tf2_tools view_frames

This generates a PDF showing the TF tree structure.

Diagnostic Tools

System Diagnostics:

ros2 topic echo /diagnostics

Hardware Status:

ros2 topic echo /platform/mcu/status

RQT Robot Monitor:

ros2 run rqt_robot_monitor rqt_robot_monitor

Log Files

System logs are stored in:

  • /var/log/syslog - System messages

  • ~/.ros/log/ - ROS 2 log files

To view real-time ROS 2 logs:

ros2 run rqt_console rqt_console

Reinstalling Packages

If packages become corrupted:

sudo apt-get update
sudo apt-get install --reinstall ros-jazzy-clearpath-robot

Checking Configuration

Verify your robot.yaml is valid:

ros2 run clearpath_config check_config /etc/clearpath/robot.yaml

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for debugging information.

Miscellanious

Backing Up Robot Configuration

Before making changes, back up your robot configuration:

git clone https://github.com/clearpathrobotics/robot-backup
cd robot-backup
./backup.sh

Keep a copy of your robot.yaml file for use when upgrading or restoring.

Upgrading from Humble to Jazzy

If upgrading from ROS 2 Humble:

  1. Back up your robot.yaml configuration

  2. Follow the Clearpath Upgrade Guide

  3. Restore your robot.yaml after upgrade

Updating Packages

To update all Clearpath packages:

sudo apt-get update
sudo apt-get upgrade ros-jazzy-clearpath-*

Network Configuration

Check Network Status:

ip addr
nmcli device status

Configure Static IP with Netplan:

Edit netplan configuration:

sudo nano /etc/netplan/01-network-config.yaml

Example configuration:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.131.1/24

Apply changes:

sudo netplan apply

Time Synchronization

Ensure time is synchronized for proper TF operation:

timedatectl status
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncd

CycloneDDS Configuration

For multi-robot setups or complex networks, configure CycloneDDS:

Create /etc/cyclonedds/cyclonedds.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS>
  <Domain>
    <Id>0</Id>
  </Domain>
</CycloneDDS>

Export the configuration:

export CYCLONEDDS_URI=/etc/cyclonedds/cyclonedds.xml

Warning

ROS 2 Humble is not supported on the Husky A300. The A300 ships with ROS 2 Jazzy on Ubuntu 24.04.

Please refer to the Jazzy tab for additional information.