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 )
This is the Jackal from Clearpath Robotics, on its sides (labeled in red circles) are two Decawave Ultra-wideband sensors setup as tags.
This is currently the only simulated world. There are currently 4 UWB sensors setup as anchors which send their range measurement.
This project uses ROS Melodic
as its ROS backend.
To setup:
- Either create a catkin workspace or navigate to the
src
folder git clone https://github.com/AUVSL/UWB-Jackal-World.git
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
- Create a
gtec
folder in yourcatkin_ws/src
folder - Navigate to your
catkin_ws/src/gtec
folder 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
git clone https://github.com/AUVSL/rosmsgs
- This installs the custom UWB ranging messages
- Navigate to your base
catkin_ws
folder rospack profile
catkin_make
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.
To launch a Gazebo world with only a Jackal:
roslaunch jackal_world empty_world.launch
To launch a Gazebo world with the Jackal and the stationary anchors:
roslaunch jackal_world gazebo_world_launcher.launch
To launch a Gazebo world with the Jackal and the stationary anchors:
roslaunch jackal_world scenario1.launch
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:
roslaunch jackal_world scenario2.launch
To launch a Gazebo world with the 2 Jackals and the stationary anchors in a complex terrain:
roslaunch jackal_world scenarioRoom.launch
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:
cd <catkin_ws>/src
git clone https://github.com/AUVSL/Hector-Quadrotor.git
cd <catkin_ws>
catkin_make
- 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
roslaunch jackal_world scenarioDroneMobile.launch
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