您正在阅读的是旧版本但仍受支持的 ROS 2 文档。 Jazzy.
使用 VSCode 和 Docker 设置 ROS 2 [社区贡献]
安装 VS Code 和 Docker
使用 Visual Studio 代码和 Docker 容器,你就可以运行自己喜欢的 ROS 2 发行版,而无需更改操作系统或使用虚拟机。通过本教程,你可以建立一个 docker 容器,用于未来的 ROS 2 项目。
安装 Docker
要安装 docker 并设置正确的用户权限,请使用以下命令。
sudo apt install docker.io git python3-pip
pip3 install vcstool
echo export PATH=$HOME/.local/bin:$PATH >> ~/.bashrc
source ~/.bashrc
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
现在,您可以运行以下命令检查安装是否成功:
docker run hello-world
如果无法运行 hello-world,可能需要先启动 Docker 守护进程:
sudo systemctl start docker
安装 VS 代码
要安装 VS Code,请使用以下命令:
sudo apt update
sudo apt install software-properties-common apt-transport-https wget -y
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main";
sudo apt install code
您可以通过键入 代码
在终端中。
安装远程开发扩展
在 VS Code 的扩展中搜索(CTRL+SHIFT+X)"远程开发 "扩展并安装。
在 Docker 和 VS 代码中配置工作区
添加您的 ROS 2 工作区
添加工作区,以便在容器中构建和打开它们,例如
cd ~/
mkdir ws
cd ws
mkdir src
现在创建一个 .devcontainer
文件夹,并添加一个 devcontainer.json
和 Dockerfile
到这 .devcontainer
文件夹。工作区结构应如下所示:
ws ├── .devcontainer │ ├── devcontainer.json │ └── Dockerfile ├── src ├── package1 └── package2
与 文件->打开 文件夹...
或 Ctrl+K Ctrl+O
打开 ws
文件夹。
编辑 devcontainer.json
适合您的环境
为了让 Dev Container 正常运行,我们必须使用正确的用户构建它。因此,在 .devcontainer/devcontainer.json
:
{
"名称";: ROS 2 开发容器";,
"特权";: 真,
"remoteUser";: "YOUR_USERNAME";,
"构建";: {
"dockerfile";: "Dockerfile";,
"args";: {
"用户名";: "YOUR_USERNAME";
}
},
"workspaceFolder";: "/home/ws";,
"workspaceMount";: "source=${localWorkspaceFolder},target=/home/ws/src,type=bind";,
"自定义";: {
"vscode";: {
"扩展名";:[
"ms-vscode.cpptools";,
"ms-vscode.cpptools-themes";,
"twxs.cmake";,
"donjayamanne.python-extension-pack";,
"eamodio.gitlens";,
"ms-iot.vscode-ros";
]
}
},
"containerEnv";: {
"显示";: "unix:0";,
"ROS_LOCALHOST_ONLY";: 1";,
"ROS_DOMAIN_ID";: "42";
},
"runArgs";: [
"--net=host";,
"-e";, "DISPLAY=${env:DISPLAY}";
],
"坐骑";: [
"source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=绑定,一致性=缓存";,
"source=/dev/dri,target=/dev/dri,type=bind,consistent=cached";
],
"postCreateCommand";: "sudo rosdep update && sudo rosdep install --from-paths src --ignore-src -y && sudo chown -R $(whoami) /home/ws/";
}
使用 Ctrl+F
打开搜索和替换菜单。搜索 您的用户名
并用您的 利纳克斯 用户名
.如果您不知道自己的用户名,可以通过运行 回响 用户名
在终端中。
编辑 Dockerfile
打开 Dockerfile 并添加以下内容:
从 ros:ROS_DISTRO ARG 用户名=用户名 ARG 用户名=1000
ARG USER_GID=$USER_UID
# 创建用户
运行 分组添加 --gid $USER_GID 用户名 \
&&; useradd --用户名 $USER_UID --gid $USER_GID -m 用户名 \
#
# [可选] 添加 sudo 支持。如果不需要在连接后安装软件,请省略。
&&; apt-get 更新 \
&&; apt-get 安装 -y 苏都 \
&&; 回响 用户名 所有=\(根基\) NOPASSWD:ALL >; /etc/sudoers.d/用户名 \
&&; chmod 0440 /etc/sudoers.d/用户名
运行 apt-get 更新 &&; apt-get 升级 -y运行 apt-get 安装 -y python3-pip ENV 外壳 /bin/bash
# ********************************************************
# 你想做的任何其他事情,比如清理,都在这里进行 #
# ********************************************************
# [可选] 设置默认用户。如果要将默认用户保留为 root,请省略。
用户 用户名
CMD ["/bin/bash";]
更换 罗斯_迪斯特罗
您希望使用的 ROS 2 发行版作为基础图像,例如 滚动
.
打开并构建开发容器
使用 查看->命令 调色板...
或 Ctrl+Shift+P
打开命令调板。搜索命令 开发 集装箱: 重新开放 于 集装箱
并执行它。这将为你构建开发用的 docker 容器。这需要一些时间,你可以坐下来或去喝杯咖啡。
测试容器
要测试一切工作是否正常,请在容器中打开终端,使用 查看->终端
或 Ctrl+Shift+`
和 新 终端
在 VS 代码中。在终端中执行以下操作:
sudo apt install ros-$ROS_DISTRO-rviz2 -y
source /opt/ros/$ROS_DISTRO/setup.bash
rviz2
备注
RVIZ 的显示可能有问题。如果没有弹出窗口,请检查 回响 $DISPLAY
- 如果输出为 1,则可以使用 回响 出口 DISPLAY=unix:1"; >>; /etc/bash.bashrc
然后再次测试。您也可以更改 devcontainer.json 中的 DISPLAY 值并重建它。