GithubHelp home page GithubHelp logo

frenet_planner_agv's Introduction

Frenet_Planner_AGV

This repository improves upon the work done previously on the sampling based planners in frenet frame. The improvements were done by Parv Maheshwari, Animesh Jha, Rohit Ranjan, Himadri Bhatka and Aayush Jain.

Changes and improvements

Version 2.0

Contributors

Rohit Ranjan, Himadri Bhatka and Aayush Jain

Changes and Results

Here is a brief summary of the changes and improvements made in the planner:

  • Sorting based on path cost introduced. Sampled paths are now checked for collision in ascending order of path cost.
  • New class Fplist introduced.
  • Fplist class reduces redundancy of repetitive polynomial sampling and provides efficient memory transactions.
  • Average frequency of over 25 Hz achieved.

A short video of a demo run.

Version 1.0

Contributors

Parv Maheshwari and Animesh Jha

Changes and Results

Here is a brief summary of the changes and improvements made in the planner:

  • ROS Melodic and Gazebo 9 compatibility added.
  • Provisions for stopping the car have been added.
  • Reduced the time spent on generating a path (by 5-6 times) through parallel processing and other optimisations.
  • Average frequency of over 5 Hz achieved.
  • Fixed the issue of ghost obstacles caused due to faulty lidar data processing by car_demo.

A short video of a demo run.

Frenet Planner ROS (Readme of the original repo)

Introduction

This is an implementation for a sampling based planner in frenet frame. The original paper discusses about converting normal coordinate frame to frenet frame & sampling of paths, selecting the them based on cost associated with each path.

Use Case

The planner has been tested in various environments. But is formed & found to be useful for high speed scenarios with minimal curves in path. This converts to highway scenario in the the physical world.

There are a lot of cases that require dynamic consideration of other traffic participants for complex maneuvers like merging into traffic flow, passing with on- coming traffic, changing lanes, or avoiding other vehicles.

Heuristics based planners sort all these quite easily. But in cases of time sparsity these planners don't perform well. So there in comes the concept of taking time 't' into consideration at planning & execution level. This is what the planner handles through taking maneuver time into account in sampling.

Requirements

Dependencies

Based on whether you have Ubuntu 16 or 18, the packages you require changes. The first options are for Ubuntu 16 while the 2nd ones are for Ubuntu 18.

Running Instructions

The following commands are to be run from your terminal: $ roscore $ roslaunch car_demo demo.launch $ roslaunch frenet_planner frenet_planner.launch
$ python ~ catkin_ws/src/tracking_control/src/scripts/tracking_Methods/pure_pursuit.py
$ python ~ catkin_ws/src/tracking_control/src/scripts/controllers/PID_MIT_velocity_controller.py

Further Research Aspects

Incorporation of vehicle dynamics

The original paper doesn't take the vehicle dynamics(Max. Acceleration & Turning Radius) into account. We have implemented a check function to prevent generation of paths with yaw greater than turning radius of our car. But a mathematical approach to incorporate this in the cost is still to be thought of.

Robust & Optimized Obstacle Checking

Currently we are iterating through the entire cost map for checking presence of obstacles. But this approach, though foolproof, isn't optimized & requires a lot of computation, specially in the urban environments.

Training of Sampling Parameters

Our main task for the planner is to find the best suited path. In the original paper this was done through sampling. But on close observation & after checking it's mathematical validity, we are trying to make an Reinforced Learning based model learn the same on it's own. This would thus reduce the computation by a lot while maintaining the stability of the planner.

Resources

Contributors:

frenet_planner_agv's People

Contributors

aayush-jain01 avatar anime-sh avatar parv-maheshwari avatar rohit-ranjan-tfj avatar shreya-bhatt27 avatar sidharthsinha avatar sirmisscriesalot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

frenet_planner_agv's Issues

where code ?

$ python ~ catkin_ws/src/tracking_control/src/scripts/tracking_Methods/pure_pursuit.py
$ python ~ catkin_ws/src/tracking_control/src/scripts/controllers/PID_MIT_velocity_controller.py

Separate frenet from other packages.

We can make a new repo - with car demo, trackers everything + a frenet which would be a link to this repo. So basically this repo would only maintain frenet

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.