Skip to content

Implementation of the Frenet Optimal Planning Algorithm (with modifications) in ROS.

License

Notifications You must be signed in to change notification settings

SS47816/frenet_optimal_planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b8cd3e4 · Jan 23, 2024
Jan 23, 2024
Jan 23, 2024
Jan 23, 2024
Feb 22, 2022
May 19, 2022
Jan 23, 2024
Nov 24, 2021
Jan 23, 2024
Mar 1, 2022
Jan 23, 2024
Jan 23, 2024

Repository files navigation

frenet_optimal_planner

Ubuntu ROS C++ CodeFactor GitHub Repo stars GitHub Repo forks

Implementation of the Frenet Optimal Planning Algorithm (with modifications) in ROS.

The original paper "Optimal trajectory generation for dynamic street scenarios in a Frenét Frame" can be found here

Demo

image

Features & Modifications

  1. We improved the framework to adopt the pipeline used in Apollo Lattice Planner to speed up the planning.
  2. We add an asynchronous collision checking module as an option (can be switched on by setting use_async = True), which can significantly improve the planning frequency.
  3. We add a trajectory concatenation strategy to keep the trajectories consistent between adjacent planning cycles.

Dependencies

Our package is only based on standard ROS pkgs, with no other external dependencies:

  • C++11 above
  • CMake: 3.0.2 above
  • Eigen (included)
  • ROS Packages:
    • roscpp
    • rospy
    • tf
    • tf2_ros
    • std_msgs
    • nav_msgs
    • geometry_msgs
    • autoware_msgs
    • message_generation
    • visualization_msgs
    • tf2_geometry_msgs
    • dynamic_reconfigure

Installation

Clone the repo and install dependencies:

# clone the repo
git clone https://github.com/SS47816/frenet_optimal_planner.git
cd frenet_optimal_planner

# install dependencies
rosdep install --from-paths src --ignore-src -r -y

# build using `catkin_make` , or you can build with `catkin build`
catkin_make
# source
source devel/setup.bash

Usage

Launch the Planner node by running:

# Launch nodes
roslaunch frenet_optimal_planner frenet_optimal_planner.launch

Contribution

You are welcome contributing to the package by opening a pull-request

We are following: Google C++ Style Guide, C++ Core Guidelines, and ROS C++ Style Guide

License

Our frenet_optimal_planner ROS package is licensed under Apache License 2.0

The included Eigen Library follows its own Mozilla Public License v. 2.0