Giter Site home page Giter Site logo

active-safety's Introduction

Active Safety Component

Contains the process implementing the active safety. This module ensures that the drone does not bump into obstacles in it near space

Setup

To run the current simulation, the following steps are needed (NOTE: no guarantee that this works directly...):

  1. Follow the basic SITL setup from here
  2. Download the ROS flight control module from here to the catkin workspace source folder
  3. Download this repository to the catkin workspace source
  4. Execute catkin_make_isolated -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7/ from the catkin build root
  5. Execute source devel_isolated/setup.bash
  6. From one terminal run roslaunch flight_control spawn_gui.launch
  7. From another terminal go to the source directory of this repo and execute ./run.sh

Interfaces

Currently implements the following interfaces (with specified methods) to communicate with this module. Each interface implements at least an isAvailable() method. For the implementations see /src/interfaces/.

  • GlobalPositionInterface
    • setGlobalPosition(Point): updates the global position of the controller
  • ActiveSafetyInterface
    • setTargetPosition(Point): sets the target location that it should fly to (while keeping a safe distance)
    • setGlobalMinimumDistance(double): sets the global minimum safe distance (in meter), within this the module should react to obstacles
    • setGlobalRepulsionStrength(double): sets how aggressive this module should react to obstacles (NOT YET EXACTLY DEFINED)

The current default implementation of the GlobalPositionInterface just forwards the position to the controller.

The following interfaces should only be used by the module itself to communicate with other modules.

  • SonarInterface
  • ControllerInterface

Currently the default Sonar and Controller interfaces are implemented to communicate with Gazebo using ROS.

TODO

  • Further tuning of the model
  • Support better configuration (and determine what can be done online)
  • Implement custom range and strength at different locations
  • Implement module tests
  • Implement events
  • Communication and parallel setup of the sonars
  • Communication with real controller

active-safety's People

Contributors

woutertue avatar koensw avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.