Giter Site home page Giter Site logo

vivek-uka / batch-opt-highway-driving Goto Github PK

View Code? Open in Web Editor NEW
31.0 5.0 11.0 150.24 MB

Repo associated with IEEE Robotics and Automation Letters publication titled "Multi-Modal Model Predictive Control through batch non-holonomic trajectory optimization"

License: MIT License

Python 6.06% CMake 1.55% Makefile 0.38% C 82.34% C++ 9.66%
autonomous-vehicles highway-simulator

batch-opt-highway-driving's Introduction

Repository associated with paper:

"Multi-Modal Model Predictive Control through Batch Non-Holonomic Trajectory Optimization: Application to Highway Driving" - Youtube

If you use this code for your own work, please consider citing:

@article{adajania2022multi,
  title={Multi-Modal Model Predictive Control Through Batch Non-Holonomic Trajectory Optimization: Application to Highway Driving},
  author={Adajania, Vivek K and Sharma, Aditya and Gupta, Anish and Masnavi, Houman and Krishna, K Madhava and Singh, Arun K},
  journal={IEEE Robotics and Automation Letters},
  volume={7},
  number={2},
  pages={4220--4227},
  year={2022},
  publisher={IEEE}
}

Structure

The folder ros_ws/src contains the implementation of approaches: Standard MPC, Batch ACADO over parallel threads, Frenet Frame Planner in C++, and our proposed Multi-modal MPC. It also contains a highway driving simulator and custom ros2 messages used by the packages.

  • mpc_car_acado_single: implementation of standard MPC. The problem formulation can be viewed in the code generation file (code_gen.cpp).
  • mpc_car_acado: implementation of batch ACADO or multi-threaded ACADO where each thread solves the optimization problem for different goals.
  • frenet_cpp: implementation of trajectory sampling based approach: Frenet Frame Planner in C++
  • mpc_car_batch: implementation of our proposed multi-modal MPC that is built on Eigen C++ library.
  • highway_car: a highway driving simulator where obstacles are motivated by Intelligent Driver Model (IDM).
  • msgs_car: custom ROS2 messages that consists of visualization data as well as control input data.
  • stats: folder where the simulation data is saved

Dependencies

Installation

After installing the dependencies, build our package as follows:

cd your_ws/src
git clone https://github.com/dv367/Batch-Opt-Highway-Driving  
cd your_ws/src/ros_ws/src  
colcon build  
source ./install/setup.bash  

Setting a high-level driving mission

  • There are two obstacles settings: obstacles follow Intelligent Driver Model (IDM) or pre-recorded trajectories from NGSIM Dataset
  • In each approach folder, you will find config.yaml, set setting to one of the following:
    • Cruise driving in IDM env - cruise_IDM
    • Cruise driving in NGSIM env - cruise_NGSIM
    • Move with high speed and with preference of rightmost lane in IDM env - HSRL_IDM
    • Move with high speed and with preference of rightmost lane in NGSIM env - HSRL_NGSIM

In the first terminal:

  • Running our proposed multi-modal MPC
ros2 run mpc_car_batch mpc_node  
  • Running multi-threaded-acado
ros2 run mpc_car_acado mpc_node  
  • Running standard-mpc-acado
ros2 run mpc_car_acado_single mpc_node_single
  • Runinng frenet-frames C++
ros2 run frenet_cpp frenet_car

In the second terminal:

source ./install/setup.bash  
ros2 run highway_car highway_node2    

batch-opt-highway-driving's People

Contributors

adi201998 avatar arunkumar-singh avatar houman-hm avatar vivek-uka 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

Watchers

 avatar  avatar  avatar  avatar  avatar

batch-opt-highway-driving's Issues

YAML::Bad file error

Hi, I tried running this as mentioned, but I encountered a YAML::Bad file error. I have carefully reviewed YAML files, and it seems to be correctly formatted. Could you please help me in solving this issue?

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.