• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    C++
  • Created almost 3 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multi-sensor fusion for localization courseware, 深蓝学院, China

Multi-Sensor Fusion for Localization & Mapping -- 多传感器融合定位与建图

深蓝学院多传感器融合定位与建图/Multi-Sensor Fusion for Localization & Mapping学习环境.

Maintained by Ge Yao, [email protected]


先修课程与准备知识检查

我在学习这门课程时,已经完成如下深蓝学院课程的学习:

且有多年的机器人系统开发经验, 熟悉以下的基础理论, 开发语言/框架/工具:


Before You Start...

在开始前, 请自行通过百度, 或者我推荐的Coursera参考课程, 自行学习, 熟悉以下工具的基本概念与操作. 否则你可能连这篇文档都读得稀里糊涂

  1. git
  2. GitHub
  3. MarkDown语法与README.md的书写
  4. VSCode使用

当且仅当你完成上述基本工具的学习后,再继续阅读,否则你可能连这篇文档都读得稀里糊涂


Docker Env - Up & Running

WARNING - About Environment

若您坚持在Native Ubuntu上进行开发, 此处将默认您有足够的定位&建图开发环境运维经验, 能够自定义开发环境, 并且自主解决由于环境依赖冲突导致的各种问题. 课程的重点在多传感融合定位算法, 并非基于Docker的环境搭建. 如果感兴趣, 请根据以下提示, 自行学习.本框架只确保Docker环境的开箱即用, 不提供任何本地环境配置冲突解决的帮助.

  • 确保熟悉Docker与Docker-Compose的开发使用
  • 根据Dockerfile Click Here自行准备开发环境
  • 熟悉其中的各个依赖库, 有能力在出现依赖问题时, 自行搜索, 查询相关资料, 修复依赖冲突

WARNING - On This Guide

请您务必按照本指南, 一步一步操作, 当且仅当您在对本环境足够熟悉的情况下,再自由发挥

Overview

本Repo为基于ROS melodic @ Ubuntu 18.04多传感器融合定位与建图/Multi-Sensor Fusion for Localization & Mapping学习环境.

定位与建图是一个复杂的工程. 每一个解决方案, 都有较为复杂的环境依赖. 然而:

  • 部分依赖项由于网络原因(Great Fire Wall & Server IP Block)难以直接获得

  • 由于课程依赖项的版本, 与本地现有依赖项的版本, 可能有所不同, 直接冒然安装, 可能会导致本地开发环境被破坏

故: 本课程的学习环境将以Docker Image的形式提供, 以实现与Native PC环境的隔离.

  • 本项目Native PC的操作系统选择Ubuntu. Windows与Mac不推荐使用, 若有意尝试, 请自行搜索相关解决方案.

安装Ubuntu

首先请确保您可以访问Ubuntu开发环境. 如果没有Ubuntu环境, 请按照点击链接进入指南, 在本地PC上安装配置Ubuntu环境.


针对国内同学 将Ubuntu APT源换为阿里云源

为了保证本地Native环境APT安装速度, 请根据This CSDN Post, 将Ubuntu上默认的APT源切换为阿里云源.


Fetch This Git Repo.

感谢第5期同学的分享 如果在国内, 因DNS污染等原因, 导致GitHub访问受限, 可以通过GitHub Proxy代理进行加速

# 1. direct clone:
git clone https://github.com/AlexGeControl/Sensor-Fusion-for-Localization-Courseware
# 2. use GitHub proxy for acceleration:
git clone https://ghproxy.com/https://github.com/AlexGeControl/Sensor-Fusion-for-Localization-Courseware

获取Docker开发环境

本课程推荐使用配套的Docker环境点击链接进入完成课程学习. Docker提供了一个轻量级的标准化开发环境, 能够避免本地已有环境的差异导致的奇怪问题, 避免环境配置调试的巨额时间浪费.


JFYI: Dependency Overview


Workspace

当Native PC与Course Docker Environment均准备就绪时, 即可开始使用本开发环境:

  • 第一次使用时, 请首先下载课程配套的KITTI测试数据here.

  • 之后, 即可通过本地VSCode开发, Docker内部编译测试的模式, 完成课程作业.

获取课程数据

在第一次使用时, 需要将课程配套的修复后KITTI数据下载至本地文件系统. 具体操作方法参考点击链接进入

安装Native Ubuntu IDE

本课程推荐使用VSCode进行开发. 请按照链接,完成VSCode的安装. 安装VSCode之后,请继续安装以下VSCode Plug-Ins:

  • C/C++ by Microsoft, 用于完成作业时加速C++开发.

  • Markdown All in One by Yu Zhang, 用于在VSCode中查看课程中所有的README.md, (Shift+Ctrl+V).

开发, 编译与测试

启动Docker环境后, Docker中的/workspace目录, 会被映射到当前Repo中的workspace目录.

使用该Workspace进行开发, 编译与测试的方法如下:

  • 当前Repo的workspace下, 启动VSCode, 编辑源代码:

Development Environment, Native VS Code in Mounting Point


Assignments

请各位执行如下的分支切换指令, 完成各周对应的作业.

Week 02, Lidar Odometry, Basic

git checkout 02-lidar-odometry-basic

Week 03, Lidar Odometry, Advanced

git checkout 03-lidar-odometry-advanced

Week 04, Mapping and Matching

git checkout 04-mapping-and-matching

Week 05, IMU Calibration

git checkout 05-imu-calib

Week 06, IMU Navigation

git checkout 06-imu-navigation

Week 07, Filtering, Basic

git checkout 07-filtering-basic

Week 08, Filtering Advanced

git checkout 08-filtering-advanced

Week 09, Graph Optimization

git checkout 09-graph-optimization

Week 10, Sliding Window

git checkout 10-sliding-window

Week 11, Capstone - Do It Own Your Own!


Keep Learning & Keep Coding

Ge Yao, [email protected]

More Repositories

1

3D-Point-Cloud-Analytics

Portfolio for 3D Point Cloud Processing from www.shenlanxueyuan.com China
JavaScript
247
star
2

Sensor-Fusion

Sensor Fusion for Localization & Mapping
C++
187
star
3

Motion-Planning-for-Mobile-Robots

Course Assignment Solutions for Motion Planning for Mobile Robots
C++
84
star
4

Visual-Inertial-Odometry

Visual Inertial Odometry from www.shenlanxueyuan.com
C++
24
star
5

Auto-Car-04-Planning-01-Trajectory-Planning-Robotics-Approach

Trajectory planning for highway situation with classic robotics approach.
C++
12
star
6

Auto-Car-03-SLAM-00-Algorithms

Algorithm tutorial for visual SLAM
C++
12
star
7

Multi-Sensor-Fusion-for-Perception

C++
9
star
8

GNSS-INS-SIM-Extended

gnss-ins-sim extended for deterministic error simulation
Python
8
star
9

Deep-Learning-Codebase

Codebase for fast prototyping of deep learning applications
Jupyter Notebook
7
star
10

Perception-for-Autonomous-Vehicles

Multi-sensor perception for autonomous vehicles
C++
5
star
11

Coding-Interview-Prep

Repo for coding interview prep based on assignments from www.jiuzhang.com
C++
4
star
12

3D-Point-Cloud-KITTI-Evaluation

KITTI evaluation toolkit for 3D Point Cloud Analytics
C++
3
star
13

Auto-Car-02-Estimation-and-Control-04-PID-Steering-Control

Lane keeping through PID steering control
C++
2
star
14

Emerging-Automotive-Technologies

Workspace for ChalmersX's Emerging Automotive Technologies MicroMaster from edX
MATLAB
2
star
15

Cloudera-Training-01-Hadoop-Administration

Hands on exercises from Hadoop Administration
Jupyter Notebook
2
star
16

Robotics-03-Perception-03-3D-Perception

3D perception for pick & place.
C++
2
star
17

Image-Based-3D-Reconstruction

Reference solution to Image Based 3D Reconstruction, ShenLanXueYuan
C++
1
star
18

Auto-Car-02-Estimation-and-Control-01-Extended-Kalman-Filter

Extended Kalman filter for radar & lidar sensor fusion.
C++
1
star
19

MS-in-IOT-UMass-Amherest--ECE697-MIPS-Simulation

MIPS Simulation using CPP
C++
1
star
20

Artificial-Intelligence-01-Graph-Search-02-Pacman

Graph search for UCB Pacman.
Python
1
star
21

Auto-Car-01-Vision-03-Behavioral-Cloning

Behavioral cloning for end-to-end autonomous driving
Jupyter Notebook
1
star
22

Graph-Neural-Network

Sandbox for graph neural network learning.
Jupyter Notebook
1
star
23

Auto-Car-05-System-Integration-01-Udacity-Capstone

Udacity capstone project
Python
1
star
24

Auto-Car-02-Estimation-and-Control-05-Model-Predictive-Control

Lane keeping through Model Predictive Control(MPC)
C++
1
star
25

Auto-Car-02-Estimation-and-Control-02-Unscented-Kalman-Filter

Unscented Kalman filter for non-linear motion tracking.
C++
1
star
26

ROS-Engineer

Workspace for ROS-Theory and Practice, 深蓝学院 and Robo Software Engineer, Udacity
CMake
1
star
27

Auto-Car-02-Estimation-and-Control-03-Particle-Filter-Localization

Localization through particle filter.
C++
1
star
28

Artificial-Intelligence-01-Graph-Search-03-Random-Heuristics

Random search through simulated annealing & genetic algorithm.
Jupyter Notebook
1
star