Giter Site home page Giter Site logo

active-target-coverage's Introduction

Active Object Tracking and Target Coverage

Overview

Active target coverage

Active target coverage can be described as an agent dynamically adjusting its pose in order to keep some target of interest in its sensor’s finite coverage area.

Trajectory prediction

The SensingAgent utilizes an estimation filter to track and predict the future state of relevant targets.

Examples

Interactive (mouse driven) demos

These are some fun interactive tests to exhibit the tracker behaviors. The higher the sample rate, the more accurate the tracker will be.

  • Active tracking with an agent following user mouse at sample rate 1/20.
    ./tests/interactive-sensing-agent.py 20

  • Static tracking with an agent predicting location of user mouse at sample rate 1/20:
    ./tests/static-interactive-sensing-agent.py 20

Repeatable dynamic examples

These are some programs for running repeatable examples, which are useful for tuning parameters.

  • Active tracking with an agent following a target traveling along specified track at every time step. Useful for sanity checking.
    ./tests/tracking-sensing-agent-test.py point-fields/loop.json

  • Active tracking with an agent following a target traveling along a specified track, with a user specified sample rate.
    ./tests/active-tracking-agent.py 20

Agent and/or target examples

Some examples for just rendering agent observations or target behaviors.

  • Agentless environment with a single target following its predefined path. Useful for debugging the generated tracks. LALT to translate, LSHIFT to rotate.
    ./tests/target-travel-test.py point-fields/loop.json

  • Agent with a target track, showing visibility vs detections. Useful for debugging the agent coordinate system.
    ./detecting-sensing-agent-test.py point-fields/grid.json

Generating a new track

A convenience program for generating some predefined tracks. Not clean code, but it rewards a skilled user.

  • Generate a path with two loops which looks a bit like a bow tie, with a noise factor of 10.
    ./point-fields/path-generator.py LOOP 10
  • Generate a cubic spline which resembles a sine wave with noise factor of 0.
    ./point-fields/path-generator.py LERP 0

active-target-coverage's People

Contributors

doyouevenstacksmash avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

active-target-coverage's Issues

enhance tracker prediction

currently the tracker only models constant velocity and angle heading. This often causes the tracker to overshoot its prediction. We need the agent to have a search behavior to reacquire the target, and to consider acceleration to avoid losing the target in the first place.

Add cartesian coordinate frame to SensingAgent

Currently, the whole coordinate frame of sensing agent is circular(and a fraction of a circle at that, defined by the sensor). This is somewhat of an improper hierarchy, as the agent should have its own coordinate frame. Displacements should be measured against the agent not merely the sensor.

This will be an invasive rewrite, but should be beneficial in the long term.

add quaternion support

gimbal lock will plague us in the future, as it has in the past. Replace Position (x,y,z,theta,phi) with quaternions?

add a to_json for all serializable classes

Current access patterns for serialized data in various classes are difficult to maintain. necessary to make a more standard to_json method which can be called from a top level json.dumps.

fix prediction displacements

currently the angular displacement for the tracker does not consider displacements to predictions
this throws the angle off tremendously.

resynchronize track displacement with heartbeat

Any displacement, whether angular or linear, updates the latest detection for all active tracks to ensure predictions remain valid. It would be useful to know which state is associated with a displaced detection, either in output json or as some marker in an ObjectTrack

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.