LiJiangnanBit / Path_optimizer
Licence: mit
Real-time path planning for vehicles.
Stars: ✭ 156
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
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.
Simulation videos
Simulation in dynamic environment
(1)Simulation with complex static obstacles
(2)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:
- ipopt 3.12.4
- cppad 20180000.0
- google benchmark
- glog
- gflags
- osqp-eigen
- grid_map
- ros_viz_tools
- tinyspline_ros.
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 indemo.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*.
(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.
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
here.
Refer- Take inputs (red dots):
- (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.
- Smooth the reference path using IPOPT (yellow curve).
- Represent the path planning problem as a QP and solve it using OSQP.
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].