onlytailei/CppRobotics
onlytailei/CppRobotics has 2,243 GitHub stars and 535 forks. GitHot measured -1 stars in 24 hours. Last checked 2026-11-07 22:09 UTC. Last push 2024-03-08.
cpp implementation of robotics algorithms including localization, mapping, SLAM, path planning and control
Measured star growth
- in 24h
- -1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalCppRobotics
This is the cpp implementation of the PythonRobotics
Requirment
- cmake
- opencv 3.3
- Eigen 3
- CppAD / IPOPT (for MPC convex optimization) install tips
- ROS (To make the repo lightweight :). Yet, we may still need it for 3D visualization.)
Build
$ mkdir build
$ cd build
$ cmake ../
$ make -j 8
Find all the executable files in build/bin.
Table of Contents
- Localization
- Extended kalmam filter
- Particle filter
- Histogram filter
- Mapping
- Gaussian grid map
- SLAM
- FastSLAM 1.0
- Path Planning
- Path Tracking Control
- Aerial Navigation
- Drone 3D Trajectory Following
- Rocket Powered Landing
Localization
Extended Kalman Filter Localization
- green line: the groundtruth trajectory
- black line: dead reckoning
- red points: observations (e.g. GPS)
- blue line: estimated positions
Particle Filter Localization
- green line: the groundtruth trajectory
- black line: dead reckoning
- red points: landmarks
- blue line: estimated positions
Path Planning
Dijkstra
- blue point: the start point
- red point: the goal point

A star
- blue point: the start point
- red point: the goal point

RRT
- red circle: the start point
- blue circle: the goal point
- black circle: obstacles

Dynamic Window Approach
- blue circle: the target point
- red circle: the robot

The dynamic window approach to collision avoidance
Model Predictive Trajectory Generator
This part is based on the bicycle motion model.
- blue circle: the target point
- red circle: the initial point

Cubic Spline Planner

State Lattice Planner
- blue circle: the target point
- red circle: the initial point
Frenet Frame Trajectory
- black line: the planned spline path
- red circle: the obstacle
- blue circle: the planned trajectory
- green circle: the real-time position of robot

Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame
Path Tracking Control
LQR Steering Control
- black line: the planned spline path
- red circle: the position under lqr control

LQR Speed and Steering Control
- black line: the planned spline path
- red circle: the position under lqr control

MPC Speed and Steering Control
- black line: the planned spline path
- blue line: the passed path
- yellow cross: the reference trajectory for MPC
(To compile this part, you need to uncomment the related lines in CMakeLists.txt and install CppAD and IPOPT.)
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,792 starspublic-apis/public-apis
A collective list of free APIs
497,015 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
440,969 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,144 stars