This Docker is a standard development environment for iG-LIO, which helps you quickly experience iG-LIO. The Docker is visualized via VNC, noVNC, and Xserver, allowing users to see the trajectory and mapping in real time.
Supported scheme | Viusal manner |
---|---|
Ubuntu (any version) with GPU (recommended) | Xserver |
Ubuntu without GPU | VNC or noVNC |
Windows with GPU | Xserver |
Windows without GPU | VNC or noVNC |
Since Docker utilizes the CPU to render frames in VNC, RViz may experience delays when visualizing dense point clouds. It is advisable to use sparse_map(VNC)
to visualize the global map in RViz.
Please install Docker following the links. This Docker supports both Ubuntu and Windows.
- Ubuntu: install Docker engine and nvidia-docker.
- Windows (without GPU): If you plan to visualize in VNC, just install Docker desktop.
- WIndows (with GPU): If you want to GPU acceleration, you should install docker engine in
WSL2
, and then installNVIDIA Container Toolkit
onWSL2
. It is recommended that follow this tutorial.
docker pull zijiechenrobotic/ig-lio-workspace:latest
# for Chinese mainland
docker pull registry.cn-guangzhou.aliyuncs.com/zijiechenrobotics/ig-lio-workspace:latest
If you are not interested in the Docker's source code, you do not need to git clone. Simply create a new workspace in the following format.
# the "lidar_dataset" folder is used to store the datasets
# download iG-LIO source code
cd workspace
git clone https://github.com/zijiechenrobotics/ig_lio.git
git clone https://github.com/Livox-SDK/livox_ros_driver.git
Enter the below contents in the docker-compose.yml
version: '3.4'
services:
ig-lio-workspace:
build:
context: .
image: zijiechenrobotic/ig-lio-workspace:latest
# or
# registry.cn-guangzhou.aliyuncs.com/zijiechenrobotics/ig-lio-workspace:latest
environment:
- DISPLAY=$DISPLAY
- QT_X11_NO_MITSHM=1
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [ gpu ]
volumes:
# Map ig-lio source code to Docker (please change to your own path)
- <your workspace folder path>:/root/workspace
# Map datasets to Docker (Please change to your own path)
- <your lidar_dataset folder path>:/root/lidar_dataset
- /tmp/.X11-unix:/tmp/.X11-unix:rw
Launch container
# cd to ig_lio_workspace
docker compose up -d
Shut down container
# cd to ig_lio_workspace
docker compose down
Access Container
# enter below command in the local terminal (necessary)
xhost +local:root
# access container
docker exec -it <containter id> bash
# check opengl is rendered by GPU
inxi -G
# output-> OpenGL: renderer: <your GPU namae> instead of llvmpipe
Coming soon...
version: '3.4'
services:
ig-lio-workspace:
build:
context: .
image: zijiechenrobotic/ig-lio-workspace:latest
# or
# registry.cn-guangzhou.aliyuncs.com/zijiechenrobotics/ig-lio-workspace:latest
environment:
- VNC_PW=abc123 # user defined password
- VNC_GEOMETRY=1280x720 # vnc resolution
- VNC_DEPTH=24 # 16/24/32
volumes:
# Map ig-lio source code to Docker (please change to your own path)
- <your workspace folder path>:/root/workspace
# Map datasets to Docker (Please change to your own path)
- <your lidar_dataset folder path>:/root/lidar_dataset
ports:
# noVNC port:
- 46080:6080
# standard VNC port:
- 45901:5901
Launch container
# cd to ig_lio_workspace
docker compose up -d
Shut down container
# cd to ig_lio_workspace
docker compose down
Access via VNC
Enter the following address to access Docker via any VNC viewer ( recommend Windows uses MobaXterm and Ubuntu uses Remmina)
localhost:45901
Access via noVNC (recommend)
Any browser, enter the following address in the address bar
localhost:46080/vnc.html
# build iG-LIO
cd /root/workspace/ig_lio
catkin_make
# launch iG-LIO
source devel/setup.bash
roslaunch ig_lio lio_<dataset name>.launch
Since we have mapped the datasets to the lidar_dataset
, we can play the datasets inside Docker
# open another terminal
cd /root/lidar_dataset
rosbag play <dataset name>
base: nvidia/opengl:1.0-glvnd-runtime-ubuntu20.04
ROS noetic
evo
gcc9 & g++9
glog
git