This project is an implementation of a rescue operation using a swarm of Clearpath Jackal robots.
Search and rescue is one of the most widely implemented problems in real-life robotic applications. The task of rescue can be generalized and used for moving an object from a source to any desired destination. In this project, we propose to develop a system that will deploy a swarm of 20 robots in a simulated gazebo environment and help rescue an object successfully to the defined end goal. The robot we propose to use is the Jackal unmanned ground vehicle. Agents in the rescue swarm will spawn at a pre-set start position and then navigate towards the object to be rescued. Once they reach the object contact point the agents will push the object synchronously and start moving towards the goal location.
- Number of agents in swarm : We propose to implement 20 agents and scale it to 30 in final sprint if time permits
- Arena : The Gazebo world will will a closed area with wall surroundings and will contain immobile obstacles
- Robot : The dimensions of the jackal robot can be seen in the figure below
- Object : The object to be rescued is a rectangle of dimensions approimately equal to ~ 6m X 6m X 1m
Clearpath Jackal | Turtlebot |
---|---|
20 Kg payload | > 1.3x more than Turtlebot |
Run time 40 hrs | > 1.6x more than Turtlebot |
Max speed 2m/s | > 7.7x more than Turtlebot |
Widely used in industries |
1. Kavyashree Devadiga (117398045)
Computer buff, interested in smart autonomous systems. Has a Bachelors degree in Computer Science and is currently pursuing Masters of Engineering in Robotics at University of Maryland College Park.
2. Aswath Muthuselvam (118286204)
Holds interest in Autonomous Mobile Agents, Computer Vision, Simultaneous Localization and Mapping, AI, Real-Time systems, and controls. Has a Bachelors's degree in Electrical, Electronics, and Communications Engineering and is currently pursuing Masters of Engineering in Robotics at the University of Maryland College Park.
The Quad chart is as follows. You can access the pdf version here
Jackal2.mp4
Jackal1.mp4
- Robots are not aware of its neighbours.
- Centralized communication, there is a common node(rosmaster) through which all robots communicates with each other.
- Swarms only operate in 2D plane.
- Ubuntu 20.04 and Ubuntu 18.04
- OMPL library version: 1.5.2
The project will be developed using industry-grade agile methodologies. The agile method being adaptive in nature will quickly adapt to software requirements and changes due to challenges faced if any during the project development cycle. For software development, pair programming strategies will be used which will ensure a robust, bug-free package. We have hierarchical test suites, which will test the submodules by implementing unit test cases and the validity of the whole system. To simulate real-world challenges we plan to use different Gmock test cases and confirm the correctness of the system.
Sprint planning notes and review
It is assumed that the system has Ubuntu 18.04 and above with ROS Melodic/Noetic installed. If not, install Ubuntu from here and ROS from here
First step is to install Jackal robot. Download the setup bash file from here.
Execute the downloaded file using following command
sh setup.sh
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-`rosversion -d`-ompl
sudo apt-get install ros-<ros-version>-octomap ros-<ros-version>-octomap-mapping
rosdep install octomap_mapping
rosmake octomap_mapping
cd swarm_robots/src
git clone --recursive https://github.com/kavyadevd/swarm_robots.git
catkin_make
roslaunch swarm_robots main.launch
On separate terminal run the following command
rosrun swarm_robots swarm_robots_node
- Launch Rviz : rviz:=y
- Launch rqt topic list : rqt_topic:=y
- Launch rqt graph : rqt_graph:=y
- Launch tf tree : rqt_tf_tree:=y
- Launch rosbag record node : rosbag_yn:=y
catkin_make
roslaunch swarm_robots demo.launch
On separate terminal run the following command
rosrun swarm_robots swarm_robots_node
To make the test files execute the following commands successively
catkin_make tests
rostest swarm_robots test.launch
Output will be similiar to :
... logging to /home/kavya/.ros/log/rostest-Matrix-27255.log
[ROSUNIT] Outputting test results to /home/kavya/.ros/test_results/swarm_robots
/rostest-test_testswarm.xml
[ WARN] [1636828912.923804367]: Publisher message will be changed.
[Testcase: testtestswarm] ... ok
[ROSTEST]-----------------------------------------------------------------------
[swarm_robots.rosunit-testswarm/TestArentsInit][passed]
[swarm_robots.rosunit-testswarm/TestSwarmSize][passed]
SUMMARY
* RESULT: SUCCESS
* TESTS: 2
* ERRORS: 0
* FAILURES: 0
rostest log file is in /home/user/.ros/log/rostest-Matrix-27255.log
- ROS1 Melodic and above (Standard three-clause BSD license)
- ROS packages (all licensed under three-clause BSD license) - roscpp, std_msgs, message_generation, actionlib, actionlib_msgs, geometry_msgs, rospy, tf, octomap_msgs, octomap_ros.
- The open motion planning library - OMPL (Standard three-clause BSD license)
- multi-jackal ROS package forked by amdpaula (Standard three-clause BSD license)
- Google Test (Standard three-clause BSD license)
The project is licensed under the 3-Clause BSD License. Click here to know more.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.