
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
维护者:
https://github.com/osrf/docker_images
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接无支持的标签
提交issue的位置:
https://github.com/osrf/docker_images/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
无支持的架构
发布的镜像工件详情:
https://github.com/docker-library/repo-info/blob/master/repos/gazebo (https://github.com/docker-library/repo-info/commits/master/repos/gazebo)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fgazebo
https://github.com/docker-library/official-images/blob/master/library/gazebo (https://github.com/docker-library/official-images/commits/master/library/gazebo)
本描述的来源:
https://github.com/docker-library/docs/tree/master/gazebo (https://github.com/docker-library/docs/commits/master/gazebo)
机器人仿真是每个机器人专家工具箱中的必备工具。设计良好的仿真器能够快速测试算法、设计机器人,并使用真实场景进行回归测试。Gazebo能够准确高效地仿真复杂室内外环境中的机器人群体。它提供强大的物理引擎、高质量图形和便捷的编程接口。最重要的是,Gazebo是免费的,拥有活跃的社区。
***.org/wiki/Gazebo_simulator
https://raw.githubusercontent.com/docker-library/docs/54c75ffef879ebb659bb82d5bc690bdb299c60c4/gazebo/logo.png]([***]
DockerfiledockerfileFROM gazebo:gzserver8 # 此处放置应用程序的特定设置 CMD [ "gzserver", "my-gazebo-app-args" ]
然后可以构建并运行Docker镜像:
console$ docker build -t my-gazebo-app . $ docker run -it -v="/tmp/.gazebo/:/root/.gazebo/" --name my-running-app my-gazebo-app
此Gazebo容器化镜像旨在提供一个简化且一致的平台,用于构建和部署基于云的机器人仿真。它基于https://hub.docker.com/_/ubuntu/%E5%92%8CGazebo%E7%9A%84%E5%AE%98%E6%96%B9Debian%E5%8C%85%E6%9E%84%E5%BB%BA%EF%BC%8C%E5%8C%85%E5%90%AB%E6%9C%80%E6%96%B0%E7%9A%84%E6%94%AF%E6%8C%81%E7%89%88%E6%9C%AC%EF%BC%8C%E4%BE%BF%E4%BA%8E%E5%BF%AB%E9%80%9F%E8%AE%BF%E9%97%AE%E5%92%8C%E4%B8%8B%E8%BD%BD%E3%80%82%E8%BF%99%E4%B8%BA%E7%A0%94%E7%A9%B6%E5%92%8C%E5%B7%A5%E4%B8%9A%E9%A2%86%E5%9F%9F%E7%9A%84%E6%9C%BA%E5%99%A8%E4%BA%BA%E4%B8%93%E5%AE%B6%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%80%E7%A7%8D%E7%AE%80%E5%8D%95%E7%9A%84%E6%96%B9%E5%BC%8F%E6%9D%A5%E5%BC%80%E5%8F%91%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E5%92%8C%E6%B5%8B%E8%AF%95%EF%BC%8C%E7%94%A8%E4%BA%8E%E8%87%AA%E4%B8%BB%E8%A1%8C%E5%8A%A8%E5%92%8C%E4%BB%BB%E5%8A%A1%E8%A7%84%E5%88%92%E8%AE%AD%E7%BB%83%E3%80%81%E6%8E%A7%E5%88%B6%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%92%8C%E7%A8%B3%E5%AE%9A%E5%8C%BA%E5%9F%9F%E3%80%81%E8%BF%90%E5%8A%A8%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%92%8C%E5%8E%9F%E5%9E%8B%E8%A1%A8%E5%BE%81%E3%80%81%E5%AE%9A%E4%BD%8D%E5%92%8C%E6%98%A0%E5%B0%84%E7%AE%97%E6%B3%95%E3%80%81%E7%BE%A4%E4%BD%93%E8%A1%8C%E4%B8%BA%E5%92%8C%E7%BD%91%E7%BB%9C%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%B8%80%E8%88%AC%E7%B3%BB%E7%BB%9F%E9%9B%86%E6%88%90%E5%92%8C%E9%AA%8C%E8%AF%81%E3%80%82
进行此类具有高有效性的复杂仿真仍然计算密集,通常超出普通本地工作站的能力。随着被基准测试算法的复杂性增加,我们很快会超出即使是最强大服务器的能力。因此,对于那些开始遇到集中式计算主机限制的人来说,更分布式的方法仍然具有吸引力。然而,在一组集群上构建和维护分布式测试平台的额外复杂性,长期以来需要比许多小型实验室和企业认为合适的更多时间和精力来实现。
随着软件容器的进步和标准化,机器人专家已经准备好获得一系列改进的开发工具,用于构建和交付软件。为了帮助缓解采用新实践的成长痛苦和技术挑战,我们专注于提供使用Gazebo与这些新技术的官方资源。
gzserver标签设计为具有小占用空间和简单配置,因此仅包含所需的Gazebo依赖项。暴露标准消息端口11345以允许客户端连接和消息API。
Gazebo使用~/.gazebo/目录存储日志、模型和场景信息。如果希望这些文件的生命周期超出生成它们的容器的生命周期,可以将~/.gazebo/文件夹挂载到主机上的外部卷,或者派生镜像可以指定由Docker引擎管理的卷。默认情况下,容器以root用户运行,因此/root/.gazebo/是这些文件的完整路径。
例如,如果希望使用本地主目录中已存在的.gazebo文件夹(用户名为ubuntu),只需使用额外的卷参数启动容器:
console$ docker run -v "/home/ubuntu/.gazebo/:/root/.gazebo/" gazebo
需要注意的是,gzserver会记录到名为/root/.gazebo/server-<port>/*.log的文件,其中<port>是服务器监听的端口(默认***)。如果使用相同的默认端口和相同的主机端目录运行和挂载多个容器,它们将冲突并尝试写入同一个文件。如果要在同一docker主机上运行多个gzserver,则需要对~/.gazebo/子文件夹进行更巧妙的卷挂载。
从Gazebo 5.0版本开始,无头实例的gzserver下的物理仿真工作正常。但是,某些应用可能需要图像渲染相机视图和其他传感器模态的光线追踪。对于Gazebo,这需要运行X服务器来渲染和捕获场景。此外,还需要图形硬件加速以获得合理的实时帧率。为此,需要将额外的图形设备挂载到容器中并链接到运行的X服务器。为了保持通用和简约的镜像,使其不与主机系统软件和硬件紧密耦合,此处不包含具有这些额外要求和说明的标签。但是,您可以使用此仓库构建和自定义自己的镜像以适应您的软件/硬件配置。OSRF的Docker Hub组织资料包含Gazebo仓库https://hub.docker.com/u/osrf/gazebo/%EF%BC%8C%E8%AF%A5%E4%BB%93%E5%BA%93%E5%9F%BA%E4%BA%8E%E6%AD%A4%E4%BB%93%E5%BA%93%EF%BC%8C%E4%BD%86%E5%8C%85%E5%90%AB%E8%BF%99%E4%BA%9B%E9%AB%98%E7%BA%A7%E7%94%A8%E4%BE%8B%E7%9A%84%E9%A2%9D%E5%A4%96%E6%A0%87%E7%AD%BE%E3%80%82
如果不仅希望运行Gazebo,还希望为其开发,即编译自定义插件或基于ROS的消息接口构建,则需要libgazebo标签中包含的开发包。如果只需要以无头服务器模式运行Gazebo,则gzserver标签的镜像大小更小。
在这个简短示例中,我们将启动一个运行gazebo服务器的新容器,使用本地gazebo客户端连接到它,然后生成一个双倒立摆并记录仿真以供以后回放。
首先启动一个带有挂载日志卷的gazebo服务器,并将容器命名为gazebo:
console$ docker run -d -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo gazebo
现在使用相同的入口点在容器中打开一个新的bash会话来配置环境。然后下载double_pendulum模型并将其加载到仿真中。
console$ docker exec -it gazebo bash $ apt-get update && apt-get install -y curl $ curl -o double_pendulum.sdf http://models.gazebosim.org/double_pendulum_with_base/model-1_4.sdf $ gz model --model-name double_pendulum --spawn-file double_pendulum.sdf
要开始记录运行中的仿真,只需使用
gz log即可。
console$ gz log --record 1
几秒钟后,通过禁用相同的标志停止记录。
console$ gz log --record 0
要查看记录的日志,我们可以导航到日志目录并使用
gz log打开并检查摆的运动和关节状态。这将允许您逐步查看摆连杆的位姿。
console$ cd ~/.gazebo/log/*/gzserver/ $ gz log --step --hz 10 --filter *.pose/*.pose --file state.log
如果本地安装了等效版本的Gazebo,可以通过将主URI的地址设置为容器的公共地址,使用本地gazebo客户端连接到容器内的gzserver。
console$ export GAZEBO_MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' gazebo) $ export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345 $ gzclient --verbose
在gzclient的渲染OpenGL视图中,您应该看到之前创建的双倒立摆仍在摆动。从这里,您可以使用图形界面控制或监控仿真状态,添加更多摆,重置世界,制作更多日志等。要退出仿真,请关闭gzclient窗口并停止容器。
console$ docker stop gazebo $ docker rm gazebo
即使旧的gazebo容器已被删除,我们仍然可以看到记录的日志保存在主机卷目录中。
console$ cd /tmp/.gazebo/log/ $ ls
同样,如果您的主机系统上安装了等效版本的Gazebo,可以使用记录的日志文件通过gazebo回放仿真。
console$ export GAZEBO_MASTER_IP=127.0.0.1 $ export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345 $ cd /tmp/.gazebo/log/*/gzserver/ $ gazebo --verbose --play state.log
Gazebosim.org:Gazebo主网站
Answers:查找答案和提问
Wiki:一般信息和教程
邮件列表:获取新闻和公告
仿真模型:机器人、物体和其他仿真模型
博客:保持最新状态
OSRF:开源机器人基金会
Gazebo采用Apache 2.0开源许可证。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/gazebo%E4%B8%AD%E3%80%82
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务