Code Monkey home page Code Monkey logo

owly's Introduction

DEPRECATED - PLEASE USE OWL INSTEAD

The repository contains rapid prototype implementations of motion planners and their variants, version 0.1.0.

The code includes experimental features that in their current form should not make their way to a live robot. We have extracted and refined the approved methods to the repository owl.

List of algorithms: GLC, RRT*

The references are

  • A Generalized Label Correcting Method for Optimal Kinodynamic Motion Planning by Brian Paden and Emilio Frazzoli, arXiv:1607.06966
  • Sampling-based algorithms for optimal motion planning by Sertac Karaman and Emilio Frazzoli, IJRR11

The following integrators are available:

  • Euler, Midpoint
  • Runge-Kutta 4th order, and 5th order
  • exact integrator for the group SE2

The owly repository implements visualizations in 2D as showcased below. See also a video.

The separate repository owly3d implements animations and visualizations in 3D.

Examples

GLC

Rice2: 4-dimensional state space + time

rice2dentity_1510227502495

rice2dentity_1510234462100


SE2: 3-dimensional state space

Car

se2entity_1510232282788

Two-wheel drive (with Lidar simulator)

twdentity_1510751358909


Tracking of potential locations of pedestrians and vehicles

shadow_region


Pendulum Swing Up

owly_psu1


Rice1

owly_rice1


R^2

r2

owly_r2sphere


Lotka-Volterra: predator and prey, control by decay rate of predators

owly_1498564633644


surface flow in river delta

lava

against the direction of current

delta_c

current reversed

delta_s

AnyTime GLC

R^2

r2_circle_gif

RRT*

R^2

r2ani

r2

Contributors

Jan Hakenberg, Jonas Londschien, Yannik Nager

owly's People

Contributors

datahaki avatar jelavice avatar lojonas avatar ynager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

lojonas truher

owly's Issues

Baseline planner to achieve desired behavior of vehicle

Motivation

Achieve/Plan the desired behavior of vehicle

  • when there is only free space and static geometry around, driving with 100% speed is permitted
  • drive with reduced speed (e.g. 50%) when there is a person in a certain radius of the vehicle
  • drive with reduced speed when the vehicle is in the vicinity of space that due to the sensor configuration cannot be classified as empty
  • stop if a human is blocking the vehicle

Make use of existing functionality

With the right setup, the GLC planner generates a trajectory that meets the desired behavior of the vehicle while still being "optimal" according to min-time/min-distance/min-curvature, ... etc.

Baseline planner

The road map described in the milestones leads to a non-trivial planner that produces trajectories in real-time, and is suitable to be used on the gokart in the dubendorf hangar

Suggested Milestone 1

  • car-like robot in SE2, time invariant scenario, i.e. 3D
  • create new controls for the vehicle to plan with both 50% and 100% speed
  • implement a TrajectoryRegionQuery that only permits planned trajectory segments that are driven with 50% of the speed within a certain radius of a central coordinate
  • visualize these regions and show that the vehicle drives slowly when passing through the region
  • show that the vehicle may prefer to go around such a region if min-time is the objective

Suggested Milestone 2

  • car-like robot in SE2, time dependent scenario, i.e. 4D
  • create new controls for the vehicle to plan with 0%, 50%, and 100% speed
  • use the TrajectoryRegionQuery from the previous milestone to simulate moving pedestrians that walk along the lane, or cross the lane (assume that the motion of the pedestrians is known)
  • visualize the planned behavior of the vehicle: drive slowly, and even stopped even when min-time is the objective

Suggested Milestone 3

  • adapt an existing map (for instance the Figure 8 map) to feature narrow/"tunnel-like" passages
  • detect the "exit from narrow passages" in the map (using whatever criteria) depending on the position of the vehicle
  • convert the "exit from narrow passages" into regions that permit only trajectories that are driven at 50% of the speed

Related work

Initial Trajectory Generation for the Gokart

Motivation

The task description is the result of the discussion on 2018-03-05.
The motivation for the approach described below is to have available a baseline trajectory planner for a fixed map as soon as possible that can be integrated with the gokart in the hangar.
The initial use of GLC in favor over RRT* was proposed by @ynager.

Background

  • The owly repository includes an implementation of the GLC planner. The state-space model for a car-like robot without slip is available.
  • At the moment, 1) the goal of the planner is updated via user interaction by mouse input, and 2) the simulated robot follows the trajectory at constant speed.

Task Description

  • Auto-generate goals for the planner so that the simulated robot loops indefinitely within a map. This can be achieved for instance by predefining a collection of way-points.
  • Update the goal and replan based on proximity (instead of elapsed time).
  • Modify the simulated robot to vary in velocity (between zero and max speed) so as to more realistically simulate the gokart's pure pursuit mode.
  • The planner should be demonstrated to work with a map that approximates the free space available to the gokart in the hangar.

Related Work

image
https://www.youtube.com/watch?v=SQuYCnUP5Fg
https://www.youtube.com/watch?v=-YZ1ro5RMVk

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.