Skip to content

Commit

Permalink
Set up Assignment 01-introduction
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexGeControl committed Apr 3, 2021
1 parent 1bc7bea commit 7c335de
Show file tree
Hide file tree
Showing 65 changed files with 249 additions and 736 deletions.
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
doc
ubuntu-setup
workspace
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vscode
30 changes: 20 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,30 @@
# 基于激光的多传感器融合定位与建图
# Multi-Sensor Fusion for Localization & Mapping -- 多传感器融合定位与建图

深蓝学院[多传感器融合定位/Sensor Fusion](https://www.shenlanxueyuan.com/my/course/261)学习环境.
深蓝学院[多传感器融合定位与建图/Multi-Sensor Fusion for Localization & Mapping](https://www.shenlanxueyuan.com/course/324)学习环境.

Maintained by **Ge Yao**, [email protected]

---

## Overview

本Repo为基于**ROS melodic** @ **Ubuntu 18.04**[多传感器融合定位/Sensor Fusion](https://www.shenlanxueyuan.com/my/course/261)学习环境.
本Repo为基于**ROS melodic** @ **Ubuntu 18.04**[多传感器融合定位与建图/Multi-Sensor Fusion for Localization & Mapping](https://www.shenlanxueyuan.com/course/324)学习环境.

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

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

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

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

为了节约安装配置的时间:
* 本项目Native PC的操作系统选择**Ubuntu**. Windows与Mac不推荐使用, 若有意尝试, 请自行搜索相关解决方案.

* 部分依赖项由于网络原因难以取得

* 新依赖的引入可能会导致与本地依赖的冲突
**若您坚持在Native PC上进行开发**, 此处**将默认您有足够的定位&建图开发环境运维经验, 能够自定义开发环境, 并且自主解决由于环境依赖冲突导致的各种问题**. 请您

上述环境将以**Docker Image**的形式提供, 实现与Native PC环境的隔离. 本项目Native PC的操作系统选择**Ubuntu**. Windows与Mac不推荐使用, 若有意尝试, 请自行搜索相关解决方案.
* 根据Dockerfile[here](docker/cpu.Dockerfile)自行准备开发环境
* 熟悉其中的各个依赖库, 有能力在出现依赖问题时, 自行查询相关资料, 修复依赖冲突

---

Expand All @@ -26,15 +36,15 @@

### 获取Docker开发环境

本课程推荐使用官方Docker环境[点击链接进入](docker/README.md)完成课程学习. Docker提供了一个轻量级的标准化开发环境, 能够避免环境配置差异导致的诸多问题.
本课程推荐使用配套的Docker环境[点击链接进入](docker/README.md)完成课程学习. Docker提供了一个轻量级的标准化开发环境, 能够避免环境配置差异导致的诸多问题.

---

### Workspace

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

* 第一次使用时, 请首先下载课程配套的KITTI测试数据.
* **第一次使用时, 请首先下载课程配套的KITTI测试数据**[here](workspace/data/kitti/README.md).

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

Expand All @@ -52,7 +62,7 @@

<img src="doc/development-environment.png" alt="Development Environment, Native VS Code in Mounting Point" width="100%">

***Docker /workspace**下, 进行编译. 具体的编译方法, 请参考[作业0 Hello, KITTI](workspace/assignments/00-hello-kitti/README.md)
***Docker /workspace**下, 进行编译. 具体的编译方法, 请参考[作业1 环境搭建](workspace/assignments/01-introduction/README.md)


---
Expand Down
1 change: 1 addition & 0 deletions docker/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
doc
70 changes: 41 additions & 29 deletions docker/cpu.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
FROM ubuntu:18.04

# ------ powered by Ge Yao, [email protected] ------

LABEL maintainer="[email protected]"

# ------ USER ROOT HAS BEEN ACTIVATED ------

# use root for dependency installation:
Expand Down Expand Up @@ -67,58 +71,66 @@ RUN apt-fast update --fix-missing && \
git mercurial subversion \
# daemon & services:
supervisor nginx \
# dev. tools:
terminator \
firefox \
# potential image & rich text IO:
libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \
lxde \
gnome-themes-standard \
xvfb dbus-x11 x11-utils libxext6 libsm6 x11vnc \
gtk2-engines-pixbuf gtk2-engines-murrine pinta ttf-ubuntu-font-family \
mesa-utils libgl1-mesa-dri libxrender1 \
gnuplot \
texlive-latex-extra \
# c++:
#
# general development:
#
# a. c++:
gcc g++ \
make cmake build-essential autoconf automake libtool \
libglib2.0-dev libboost-dev libboost-all-dev libtbb-dev \
# python 2:
libglib2.0-dev libboost-dev libboost-all-dev \
libomp-dev libtbb-dev \
libgoogle-glog-dev \
# b. Python 2:
python-pip python-dev python-tk \
# ROS melodic:
ros-melodic-desktop-full \
ros-melodic-rosbridge-server \
ros-melodic-tf2 ros-melodic-tf2-ros ros-melodic-tf2-sensor-msgs \
ros-melodic-teleop-twist-keyboard \
python-catkin-tools python-rosdep python-rosinstall python-rosinstall-generator python-wstool \
ninja-build \
# development common:
# c. lua:
lua5.3 liblua5.3-dev libluabind-dev \
libgoogle-glog-dev \
libsdl1.2-dev \
libsdl-image1.2-dev \
ros-melodic-ecl-threads \
ros-melodic-rviz-visual-tools \
ros-melodic-plotjuggler \
#
# numerical optimization:
#
coinor-libcoinutils-dev \
coinor-libcbc-dev \
libeigen3-dev \
gfortran \
libopenblas-dev liblapack-dev \
libdw-dev libatlas-base-dev libsuitesparse-dev \
libcholmod3 libcxsparse3 \
libmetis-dev \
# graph optimization -- https://github.com/RainerKuemmerle/g2o
# a. visualization:
#
# 3D graphics:
#
freeglut3-dev \
libqt4-dev libqt4-opengl-dev \
qt5-default qt5-qmake qtdeclarative5-dev libqglviewer-dev-qt5 \
# b. numerical optimization:
libcholmod3 libcxsparse3 \
qt5-default qt5-qmake \
qtdeclarative5-dev libqglviewer-dev-qt5 \
#
# ROS melodic:
#
ros-melodic-desktop-full \
ros-melodic-ecl-threads \
ros-melodic-rosbridge-server \
ros-melodic-tf2 ros-melodic-tf2-ros ros-melodic-tf2-sensor-msgs \
ros-melodic-teleop-twist-keyboard \
ros-melodic-rviz-visual-tools \
ros-melodic-plotjuggler \
python-catkin-tools python-rosdep python-rosinstall python-rosinstall-generator python-wstool \
ninja-build \
# imu:
ros-melodic-imu-complementary-filter ros-melodic-imu-filter-madgwick ros-melodic-rviz-imu-plugin \
# lidar:
ros-melodic-laser-pipeline \
ros-melodic-perception-pcl \
# GUI tools:
freeglut3-dev \
gnuplot \
gnome-themes-standard \
terminator \
firefox && \
ros-melodic-perception-pcl && \
apt-fast autoclean && \
apt-fast autoremove && \
rm -rf /var/lib/apt/lists/*
Expand Down
4 changes: 0 additions & 4 deletions docker/installers/download-ipopt-installer.sh

This file was deleted.

6 changes: 1 addition & 5 deletions ubuntu-setup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@

## Overview

本文档旨在提供Ubuntu操作系统Native安装配置指导, 支持某些对系统性能要求较高, 使用虚拟机无法满足性能要求的Linux开发工作,譬如:

* Deep Learning

* ROS Development
本文档旨在提供Ubuntu操作系统Native安装配置指导, 支持某些对系统性能要求较高, 使用虚拟机无法满足性能要求的Linux开发工作

---

Expand Down
2 changes: 2 additions & 0 deletions workspace/assignments/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
image_based_modelling
ImageBasedModellingEdu
69 changes: 0 additions & 69 deletions workspace/assignments/00-hello-kitti/CMakeLists.txt

This file was deleted.

Binary file removed workspace/assignments/00-hello-kitti/doc/demo.png
Binary file not shown.
Binary file not shown.
69 changes: 0 additions & 69 deletions workspace/assignments/00-hello-kitti/src/CMakeLists.txt

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 7c335de

Please sign in to comment.