All Projects → LiJiangnanBit → Path_optimizer

LiJiangnanBit / Path_optimizer

Licence: mit
Real-time path planning for vehicles.

Projects that are alternatives of or similar to Path optimizer

2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (-77.56%)
Mutual labels:  robotics, autonomous-driving
Cherry Autonomous Racecar
Implementation of the CNN from End to End Learning for Self-Driving Cars on a Nvidia Jetson TX1 using Tensorflow and ROS
Stars: ✭ 294 (+88.46%)
Mutual labels:  robotics, autonomous-driving
l2r
Open-source reinforcement learning environment for autonomous racing.
Stars: ✭ 38 (-75.64%)
Mutual labels:  robotics, autonomous-driving
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+8832.05%)
Mutual labels:  robotics, autonomous-driving
Pointcnn
PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)
Stars: ✭ 1,120 (+617.95%)
Mutual labels:  robotics, autonomous-driving
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (-80.77%)
Mutual labels:  robotics, autonomous-driving
sparse-scene-flow
This repo contains C++ code for sparse scene flow method.
Stars: ✭ 23 (-85.26%)
Mutual labels:  robotics, autonomous-driving
Matlabrobotics
MATLAB sample codes for mobile robot navigation
Stars: ✭ 332 (+112.82%)
Mutual labels:  robotics, autonomous-driving
Deepseqslam
The Official Deep Learning Framework for Route-based Place Recognition
Stars: ✭ 49 (-68.59%)
Mutual labels:  robotics, autonomous-driving
Autorally
Software for the AutoRally platform
Stars: ✭ 595 (+281.41%)
Mutual labels:  robotics, autonomous-driving
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+1102.56%)
Mutual labels:  robotics, autonomous-driving
Mrpt
⚡️ The Mobile Robot Programming Toolkit (MRPT)
Stars: ✭ 1,190 (+662.82%)
Mutual labels:  robotics, autonomous-driving
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: ✭ 1,939 (+1142.95%)
Mutual labels:  robotics, autonomous-driving
Rosnodejs
Client library for writing ROS nodes in JavaScript with nodejs
Stars: ✭ 145 (-7.05%)
Mutual labels:  robotics
Urdf Viz
visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
Stars: ✭ 149 (-4.49%)
Mutual labels:  robotics
Stereo Odometry Soft
MATLAB Implementation of Visual Odometry using SOFT algorithm
Stars: ✭ 145 (-7.05%)
Mutual labels:  robotics
Articulations Robot Demo
Stars: ✭ 145 (-7.05%)
Mutual labels:  robotics
Libcanard
A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems
Stars: ✭ 151 (-3.21%)
Mutual labels:  robotics
Extrinsic lidar camera calibration
This is a package for extrinsic calibration between a 3D LiDAR and a camera, described in paper: Improvements to Target-Based 3D LiDAR to Camera Calibration. This package is used for Cassie Blue's 3D LiDAR semantic mapping and automation.
Stars: ✭ 149 (-4.49%)
Mutual labels:  robotics
Ssl slam
SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR IEEE RA-L 2021
Stars: ✭ 144 (-7.69%)
Mutual labels:  robotics

path_optimizer


This ROS package generates feasible paths for non-holonomic vehicles.
2021-01-07 01-19-29屏幕截图.png

Simulation videos

(1) Simulation in dynamic environment

(2) Simulation with complex static obstacles

simulation

Run demos

0. Install dependencies and build

  • ROS kinetic on Ubuntu 16.04
  • OpenCV 3
mkdir -p workspace/src && cd workspace/src
git clone [email protected]:LiJiangnanBit/path_optimizer.git
sudo bash path_optimizer/scripts/install_deps.sh
cd ..
catkin build path_optimizer
source devel/setup.bash

install_deps.sh will install other dependencies (Those already installed will be skipped). These dependencies include:

1. Demo

A png image is loaded as the grid map. You can click to specify the global reference path and the start/goal state of the vehicle.

roslaunch path_optimizer demo.launch

(1) Pick reference points using "Publish Point" tool in RViz.

  • Pick at least six points.
  • There are no hard and fast rules about the spacing of the points.
  • If you want to abandon the chosen points, just double click anywhere when using the "Publish Point" tool.
  • You can replace gridmap.png with other black and white images. Note that the resolution in demo.cpp is set to 0.2m, whick means that the length of one pixel is 0.2m on the map.
  • In application, the reference path is given by a global path or by a search algorithm like A*.

选点.gif

(2) Pick start state using "2D Pose Estimate" tool and pick goal state using "2D Nav Goal" tool.

  • Currently, it's not strictly required to reach the goal state. But this can be changed.
  • The start state must be ahead of the first reference point.

规划.gif

2. Benchmark test

This is a computation time test.

rosrun path_optimizer path_optimizer_benchmark

Usage

Refer to demo.cpp
The parameters that you can change can be found in planning_flags.cpp.

How it works

Refer here.

  1. Take inputs (red dots):
    2020-02-13 16-27-46屏幕截图.png
  2. (Optional) Use B spline curve fitting to make the path continuous and then search around it for a more reasonable reference path (yellow dots). This step can be skipped by changing settings.
    2020-02-13 16-27-56屏幕截图.png
  3. Smooth the reference path using IPOPT (yellow curve).
    2020-02-13 16-28-05屏幕截图.png
  4. Represent the path planning problem as a QP and solve it using OSQP.
    2020-02-13 16-28-19屏幕截图.png
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].