UWB-Jackal-World icon indicating copy to clipboard operation
UWB-Jackal-World copied to clipboard

This project is meant to simulate an environment where a Clearpath robotics Jackal is combined with Decawave Ultra-wideband sensors to improve localization.

Gazebo Jackal Ultra-wideband Environment

GitHub commit activity Stars Forks Issues GitHub

1. Table of contents

  • Gazebo Jackal Ultra-wideband Environment
    • 1. Table of contents
    • 2. Project Description
      • 2.1. The robot
      • 2.2. The world
    • 3. Installation
    • 4. Launch
      • 4.1. Jackal Only
      • 4.2. Stationary world
      • 4.3. Scenario 1
      • 4.4. Scenario 2
      • 4.5. Scenario Room
      • 4.6. Scenario Drone and Mobile
    • 5. Known Issues
      • 5.1. No model found

2. Project Description

This project is meant to simulate an environment where a Jackal is combined with Decawave Ultra-wideband sensors to improve localization. (This is in Gazebo )

2.1. The robot

Image of Jackal robot setup Simulated Jackal robot

This is the Jackal from Clearpath Robotics, on its sides (labeled in red circles) are two Decawave Ultra-wideband sensors setup as tags.

2.2. The world

Simulated world

This is currently the only simulated world. There are currently 4 UWB sensors setup as anchors which send their range measurement.

3. Installation

This project uses ROS Melodic as its ROS backend.

To setup:

  1. Either create a catkin workspace or navigate to the src folder
  2. git clone https://github.com/AUVSL/UWB-Jackal-World.git
  3. sudo apt-get install ros-melodic-jackal-simulator ros-melodic-jackal-desktop ros-melodic-jackal-navigation
    • This will install all the necessary melodic packages for the Jackal as well as its base model
    • For more detailed instuctions on the Jackal API: https://www.clearpathrobotics.com/assets/guides/melodic/jackal/simulation.html
  4. Create a gtec folder in your catkin_ws/src folder
  5. Navigate to your catkin_ws/src/gtec folder
  6. git clone https://github.com/AUVSL/UWB-Gazebo-Plugin.git
    • This installs the UWB plugin library which allows for the tags and anchors to send values
  7. git clone https://github.com/AUVSL/rosmsgs
    • This installs the custom UWB ranging messages
  8. Navigate to your base cakin_ws folder
  9. rospack profile
  10. catkin_make
  11. source ~/catkin_ws/devel/setup.bash
    • This step is very important. Be sure to run this every time you open up a new terminal. If you do not you will get errors when trying to run the world, that you cannot see certain packages.
    • To make things easier if you only have a single ROS build and catkin_ws, then you can run:
    • echo "source ~/catkin_ws/devel/setup.bash" > ~/.bashrc
    • This will allow you to not have to run the source command every time.

4. Launch

4.1. Jackal Only

To launch a Gazebo world with only a Jackal:


roslaunch jackal_world empty_world.launch

4.2. Stationary world

To launch a Gazebo world with the Jackal and the stationary anchors:


roslaunch jackal_world gazebo_world_launcher.launch

4.3. Scenario 1

To launch a Gazebo world with the Jackal and the stationary anchors:

Scenario 1


roslaunch jackal_world scenario1.launch

4.4. Scenario 2

To launch a Gazebo world with the 2 Jackals and the stationary anchors. In this scenario one of the Jackals is able to localize itself using the stationary anchors only, while the other Jackal must first wait for the other one to be localized and then localize, itself from it:

Scenario 2


roslaunch jackal_world scenario2.launch

4.5. Scenario Room

To launch a Gazebo world with the 2 Jackals and the stationary anchors in a complex terrain:

Scenario Room


roslaunch jackal_world scenarioRoom.launch

4.6. Scenario Drone and Mobile

To launch a Gazebo world with the 2 Jackals and the stationary anchors defined as drones. The drones will move from one location to other and the jackals will also move towards them. In order to use this scenario though you need to install: https://github.com/AUVSL/Hector-Quadrotor

In order to do this:

  1. cd <catkin_ws>/src
  2. git clone https://github.com/AUVSL/Hector-Quadrotor.git
  3. cd <catkin_ws>
  4. catkin_make
  5. Also make sure that you have teleop_twist_keyboard installed, in order to run the drone teleop GUI
    • sudo apt-get install ros-melodic-teleop-twist-keyboard

Scenario Drone Mobile


roslaunch jackal_world scenarioDroneMobile.launch

5. Known Issues

5.1. No model found

When installing if you have issues opening the worlds due to models not existing. Please unzip models.zip and place it into your ~/.gazebo/models