michael153 / isaacs3d

Autonomous drone path planning for Port of Oakland radiation source detection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ISAACS 2.5D / 3D Research Project

Overview

Problem Overview

The ISAACS 2.5D / 3D project's goal is to autonomously detect radiation sources within shipping containers, which is a necessary step in effectively screening international container traffic and regulating trade.

To find the radiation source(s), an autonomous drone is flown along the mission's waypoint path to collect radiation data. The drone then iteratively rules out potential source locations by using the AdaSearch algorithm, which is described in more detail in A Successive-Elimination Approach to Adaptive Robotic Sensing.

This repository contains code to plan the waypoint path when given the environment's point cloud data (which is gathered upstream by the drone). The waypoints are algorithmically computed by generating raster paths over the surfaces of every shipping container found within the point cloud.

Example Images

       

Example container extraction, surface reconstruction, and path generation from the point cloud data

Getting Started

Setup

  1. Install pip requirements
pip3 install -r requirements.txt
  1. Set file paths You can set the path to the input point cloud file (must be a .ply file) and the path to the output waypoints path (must be a .pkl file) by running
python3 set_paths.py -in [path to point cloud file] -out [path to output waypoints path]

Running the path planner

  1. Execution
python3 container_extraction.py [--verbose] [--graph]

The flags specify whether you want the planner to print out debugging statements and if you want to graph the container extraction, surface reconstruction, and path generation.

End-to-end testing with MAVROS Drone and ISAACS Server

Setup

To set up the end-to-end testing framework with the ISAACS server, we must install the following dependencies. It is recommended to use either Ubuntu 16.04 or 18.04.

  1. Set up the ISAACS server Instructions here Make sure to use the operator branch.

  2. Set up automated onboarding, connection, and communication of the MAVROS drone with ISAACS server Instructions here. Make sure to use the server-connector branch.

Putting it all together

Once everything is installed, run the following commands in sequential order.

  1. Launch the Gazebo world
gazebo --verbose worlds/typhoon_ardupilot.world 
  1. Start the SITL Simulation In the installed ardupilot directory, run
python3 Tools/autotest/sim_vehicle.py -v ArduCopter -f gazebo-iris

If this is the first time running the SITL, run param set FRAME_CLASS 2 in the sim_vehicle terminal.

  1. Start the ISAACS server
roslaunch rosbridge_server rosbridge_websocket.launch unregister_timeout:=600
  1. Run the Operator node In the installed isaacs_server directory, run
python3 src/operator.py --ip localhost
  1. Launch the MAVROS drone and connect with the ISAACS server In the drone-mavros directory, run
roslaunch server_connector src/server_connector/launch/start_connection.launch server_ip:=localhost
  1. Run AdaSearch flight algorithm
python3 isaacs_server_interface.py

About

Autonomous drone path planning for Port of Oakland radiation source detection


Languages

Language:Python 100.0%