This template will get you set up using ROS2 with VSCode as your IDE.
A fork of athackst/vscode_ros2_workspace with better wsl2 support.
- 系统盘下至少有 5G 的空余空间。否则可能安装失败。
- 由于网络原因,可能需要提前配置好系统代理。
-
使用管理员权限打开终端
-
在打开的终端中运行:
wsl --install -
安装 Docker Desktop。
winget install Docker.DockerDesktop
-
打开 Docker Desktop,跳过登录和那些麻烦的选择。
Tip
Docker 服务会随 Docker Desktop 启动。启动完毕后可关闭 Docker Desktop,保留 Docker 服务在后台即可。
See docker docs.
-
使用 vscode 打开本项目目录
Now that you've cloned your repo onto your computer, you can open it in VSCode (File->Open Folder).
-
安装 vscode 插件
Dev Container按下快捷键
Ctrl+P调出 Vscode Quick Open,输入:ext install ms-vscode-remote.remote-containers -
启动 DevContainer
按下快捷键
Ctrl+Shift+P,输入rebuild,选择Dev Containers: Rebuild and Reopen in Container
Note
请在打开 DevContainer 时关闭代理软件的 TUN 模式。否则会导致 vscode 插件无法自动安装。
- 等待启动。第一次启动需要构筑镜像,可能会花费长达 10 分钟。
If you open a terminal inside VSCode (Terminal->New Terminal), you should see that your username has been changed to ros, and the bottom left green corner should say "Dev Container"
若你需要在开发容器中使用 USB 设备(如工业相机、串口等),请进行以下操作。 Linux 系统不需要按照此部分操作。可直接使用 USB 设备。
Note
需要更好的解决方案。Docker Desktop 运行于一个基于 Alpine 的 WSL 镜像 docker-desktop,而 usbipd-win 不支持直接 attach 到 docker-desktop 内。此 issue 建议安装一个单独的 Ubuntu 22.04 镜像用于接入 USB。能用但不优雅。
-
下载 usbipd-win >= 4.0
winget install usbipd
Important
请确保你的 usbipd-win 版本 >= 4.0. 你可以手动从 GitHub Release 安装最新版。
-
安装 Ubuntu-22.04 WSL
wsl --install Ubuntu-22.04
首次运行请等待安装完成。安装完成后会自动切入 WSL Ubuntu-22.04 系统内终端。
保持此窗口在后台运行,直到完成此部分前不要关闭。 -
列出设备的 BUSID
启动一个有管理员权限的新终端,运行:
usbipd list
输出应当类似于:
Connected: BUSID VID:PID DEVICE STATE 1-3 27c6:589a Goodix fingerprint Not shared 2-3 8087:0032 英特尔(R) 无线 Bluetooth(R) Not shared 3-1 2b7e:b557 XiaoMi USB 2.0 Webcam Not shared Persisted: GUID DEVICE记住你期望在 Docker 中使用的设备的 BUSID。
-
设置默认 WSL Distro
wsl --set-default Ubuntu-22.04
-
配置待穿透设备
usbipd bind --busid=<BUSID> usbipd attach --wsl --busid=<BUSID>
将你需要在 Docker 环境中使用的设备 BUSID 替换掉命令中的
<BUSID>。
例如在上述usbipd list的输出示例中,你希望将 XiaoMi USB 2.0 Webcam 映射到 Docker 中:usbipd bind --busid=3-1
Tip
每次重启宿主机,你需要重新运行第 5 步。
Docker 镜像中已内置 CUDA。不需要进行任何手动配置。
无需安装 CUDA for WSL2 或在 WSL 中安装 CUDA。
-
在 CodeUp 上 Fork 本项目。
-
进入 codeup_circleci_pipeline 配置文件仓库,参考
.circleci目录下plain.yml新增一个配置文件,修改其中参数。 -
在 CodeUp 的 设置 -> Webhooks 中增加一个由标签推送事件触发的 Webhook。
-
进入 CircleCI,在 CodeUp 项目 下新增一条 Trigger 指向上一步中新增的 Webhook。
-
修改 Fork 项目内的
.devcontainer/requirements/中的依赖。 -
向 CodeUp 的 Fork 推送一个标签,触发 CircleCI 构建镜像并等待构建完成。
-
修改
.devcontainer/Dockerfile和.devcontainer/Dockerfile.l4t35中的基础镜像为 CircleCI 构建的镜像。 -
执行
Dev Containers: Rebuild and Reopen in Container。
