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
srcfolder git clone https://github.com/AUVSL/UWB-Jackal-World.gitsudo 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
gtecfolder in yourcatkin_ws/srcfolder - Navigate to your
catkin_ws/src/gtecfolder 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_wsfolder rospack profilecatkin_makesource ~/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.launchTo launch a Gazebo world with the Jackal and the stationary anchors:
roslaunch jackal_world gazebo_world_launcher.launchTo launch a Gazebo world with the Jackal and the stationary anchors:
roslaunch jackal_world scenario1.launchTo 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.launchTo launch a Gazebo world with the 2 Jackals and the stationary anchors in a complex terrain:
roslaunch jackal_world scenarioRoom.launchTo 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>/srcgit clone https://github.com/AUVSL/Hector-Quadrotor.gitcd <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.launchWhen installing if you have issues opening the worlds due to models not existing. Please unzip models.zip and place it into your ~/.gazebo/models