https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam 我们来看看上面Isaac Sim环境下的Visual SLAM包。该软件包适用于 ROS2 环境。
编辑
/etc/docker/daemon.json
:
我编辑/etc/docker/daemon.json
如下:
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
我添加了第 7 行(以及第 6 行末尾的逗号),因为它未包含在原始配置中。
应用更改: 我使用以下命令应用了上述更改:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
从 Git 获取 Docker 脚本: 我执行了以下步骤来获取 Docker 脚本。在这里,我在主目录中创建了一个名为
docker
的目录:
$ cd ~
$ mkdir docker
$ cd docker
$ git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common
为 Docker 容器准备一个目录: 我为 Docker 容器创建了以下目录(这不是强制性的):
$ mkdir -p ~/workspaces/isaac_ros-dev
启动 Docker 容器: 为了启动 Docker 容器,我移至
~/docker/isaac_ros_common/
并输入以下命令:
$ scripts/run_dev.sh ~/workspaces/isaac_ros-dev/
我在尝试使用 Nvidia 运行时时遇到 Docker 运行时错误。尽管使用初始 Docker 命令成功输出并对 Docker 配置进行后续编辑,但仍会出现此问题。
运行以下Docker命令,执行成功:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
编辑
/etc/docker/daemon.json
如下:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
进行这些更改后,尝试使用以下命令执行脚本:
scripts/run_dev.sh ~/workspaces/isaac_ros-dev/
这会导致以下错误:
docker: Error response from daemon: unknown or invalid runtime name: nvidia.
Docker 容器应该能够正确识别 Nvidia 运行时,特别是因为初始命令运行没有问题。
尝试运行使用 Docker 和 Nvidia 运行时的脚本时,系统会抛出错误,指出“未知或无效的运行时名称:nvidia”。
daemon.json
文件中的语法和路径。任何人都可以提供见解或建议潜在的解决方案来解决此运行时错误吗?任何建议或指导将不胜感激。
sudo docker info | grep -i runtime
结果 运行时:runc io.containerd.runc.v2 nvidia 默认运行时:nvidia
我已成功安装 NVIDIA Container Toolkit。
但是,我有同样的错误。
https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/issues/101
编辑scripts/run_dev.sh文件
将 --runtime nvidia 替换为 --gpus all。