Skip to content

Latest commit

 

History

History
111 lines (62 loc) · 3.53 KB

File metadata and controls

111 lines (62 loc) · 3.53 KB

Docker Environment for Motion Planning for Mobile Robots

基于Docker的移动机器人运动规划/Motion Planning for Mobile Robotics学习环境.


Overview

本文档旨在提供移动机器人运动规划的标准开发环境, 减轻环境配置的工作量


安装配置Docker以及Docker-Compose

在开始使用前,首先需要在本地配置Docker以及Docker-Compose环境.


安装Docker

请参考Docker官方文档完成Docker环境的安装

安装完成后, 还需要进行如下操作, 以保证环境的易用性:

(请务必执行此操作)将当前用户加入Docker Group

为了能在非sudo模式下使用Docker, 需要将当前用户加入Docker Group.

  • 执行命令:

    sudo usermod -aG docker $USER
  • 为了使上述变更生效,请先Logout,再Login


安装Docker-Compose

Docker-Compose是基于Docker解决方案的Orchestrator.

请参考Docker Compose官方文档完成Docker-Compose环境的安装


获取镜像

在安装完成Docker以及Docker-Compose之后,需要从阿里云源上获得所需镜像.

# login to my Alibaba Cloud registry -- default password -- shenlansf20210122:
docker login --username=937570601@qq.com registry.cn-shanghai.aliyuncs.com
# download images, ubuntu 18.04 + ROS melodic + vnc
docker pull registry.cn-shanghai.aliyuncs.com/shenlanxueyuan/motion-planning-for-mobile-robots:bionic-cpu-vnc
# TODO: enable ROS noetic

启动实例

在当前Repo根目录下, 启动Terminal, 执行命令, 启动Docker Workspace:

docker-compose down && docker-compose up

成功启动后, 命令行输出如下 请不要过度在意此处的日志输出,除非你很清楚容器里到底在执行什么,请直接进行下一节的Service Health Check:

Launch Workspace


Service Health Check

然后打开Chrome浏览器, 访问URLhttp://localhost:49001/, 默认账号/密码为motionplanning/motionplanning, 确保所有服务成功启动.

若所有服务成功启动, 系统状态如下图所示:

Service Health Check


访问工作空间

接着在Chrome浏览器中, 访问URLhttp://localhost:40080/, 默认登录密码为motionplanning, 访问Docker Workspace

Access Workspace

该Workspace可理解为一个在浏览器中的Ubuntu 18.04 Bionic环境. 可在其中进行一切Ubuntu环境下的开发操作.


编译作业

请将作业所需的源代码数据, 分别放到当前Repoworkspace/assignmentsworkspace/data目录下. Docker Workspace会将当前Repoworkspace文件夹映射到Docker Instance/workspace目录下.

可在Docker Workspace中执行如下命令, 确保两者--当前Repo workspace文件夹Docker Instance /workspace文件夹--的一致性

Mount Native Workspace into Docker


常见问题

  1. Docker运行时默认用户为root, 运行过程中可能导致当前Repo workspace文件夹的User以及Group变更为root, 从而使本地文件IO操作因Permission Denied失败. 解决方案: 使用chown命令, 变更User-Group:
sudo chown [CURRENT_USER]:[CURRENT GROUP] workspace