如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
** 注意:**这是https://hub.docker.com/_/gazebo的`arm32v7`架构构建的“按架构”仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64”和官方镜像FAQ中的“https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what”。
-** 维护者:**https://github.com/osrf/docker_images
-** 获取帮助:**https://dockr.ly/comm-slack、Server Fault、https://unix.stackexchange.com/help/on-topic或https://stackoverflow.com/help/on-topic
Dockerfile链接警告:此镜像在arm32v7架构上不受支持-** 问题反馈地址:**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
dockerfileFROM docker.xuanyuan.run/arm32v7/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/和Gazebo官方Debian包构建,包含最新的支持版本,便于快速访问和下载。这为研究和工业领域的机器人专家提供了一种简单的方式,可在自主行动和任务规划训练、控制动力学和稳定区域、运动学建模和原型表征、定位和映射算法、群体行为和网络以及一般系统集成和验证方面开发持续集成和测试。
进行此类高有效性的复杂仿真仍然计算密集,通常超出普通本地工作站的能力。随着被基准测试算法的复杂性增加,我们很快会超出即使是最强大服务器的容量。这就是为什么对于开始遇到集中式计算主机限制的人来说,更分布式的方法仍然具有吸引力。然而,在一组集群上构建和维护分布式测试平台的额外复杂性,长期以来需要比许多小型实验室和企业认为合适的更多时间和精力来实施。
随着软件容器的进步和标准化,机器人专家已经准备好获得一系列改进的开发工具,用于构建和交付软件。为了帮助缓解采用新实践的成长痛苦和技术挑战,我们专注于提供将Gazebo与这些新技术结合使用的官方资源。
gzserver标签设计为占用空间小且配置简单,因此仅包含必要的Gazebo依赖项。暴露标准消息端口11345以允许客户端连接和消息API。
Gazebo使用~/.gazebo/目录存储日志、模型和场景信息。如果希望这些文件的生命周期超出生成它们的容器的生命周期,可以将~/.gazebo/文件夹挂载到主机上的外部卷,或者派生镜像可以指定由Docker引擎管理的卷。默认情况下,容器以root用户运行,因此/root/.gazebo/是这些文件的完整路径。
例如,如果希望使用本地主目录中已存在的.gazebo文件夹(用户名为ubuntu),只需使用额外的卷参数启动容器:
console$ docker run -v "/home/ubuntu/.gazebo/:/root/.gazebo/" arm32v7/gazebo
需要注意的是,gzserver将日志记录到名为/root/.gazebo/server-<port>/*.log的文件中,其中<port>是服务器监听的端口(默认***)。如果使用相同的默认端口和相同的主机端目录运行并挂载多个容器,它们将发生冲突并尝试写入同一个文件。如果要在同一docker主机上运行多个gzserver,则需要更巧妙地挂载~/.gazebo/子文件夹。
从Gazebo 5.0版本开始,无头实例gzserver下的物理仿真工作正常。然而,某些应用可能需要图像渲染相机视图和其他传感器模态的光线追踪。对于Gazebo,这需要运行X服务器来渲染和捕获场景。此外,还需要图形硬件加速以实现合理的实时帧率。为了保持通用和简约的镜像,使其不与主机系统软件和硬件紧密耦合,此处不包含这些额外要求和说明的标签。但是,您可以使用此仓库构建和自定义自己的镜像,以适应您的软件/硬件配置。OSRF的Docker Hub组织资料包含Gazebo仓库https://hub.docker.com/u/osrf/gazebo/,该仓库基于此仓库,但包含这些高级用例的额外标签。
如果不仅希望运行Gazebo,还希望为其开发,即编译自定义插件或基于ROS的消息接口构建,则需要libgazebo标签中包含的开发包。如果只需运行Gazebo作为无头服务器,则gzserver标签的镜像大小更小。
在这个简短示例中,我们将启动一个运行gazebo服务器的新容器,使用本地gazebo客户端连接到它,然后生成一个双倒立摆并记录仿真以供以后回放。
首先启动一个带有挂载日志卷的gazebo服务器,并将容器命名为gazebo:
console$ docker run -d -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo arm32v7/gazebo
现在使用相同的入口点在容器中打开新的bash会话以配置环境。然后下载double_pendulum模型并将其加载到仿真中。
console$ docker exec -it arm32v7/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
要开始记录运行中的仿真,只需使用http://www.gazebosim.org/tutorials?tut=log_filtering&cat=tools_utilities即可。
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的地址设置为容器的公共地址,使用gzclient GUI连接到容器内的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
http://www.gazebosim.org/:Gazebo官方网站
http://answers.gazebosim.org/:查找答案和提问
https://bitbucket.org/osrf/gazebo/wiki:一般信息和教程
https://groups.google.com/a/osrfoundation.org/d/forum/gazebo:加入获取新闻和公告
https://bitbucket.org/osrf/gazebo_models/src:机器人、对象和其他仿真模型
http://wiki.gazebosim.org/blog.html:保持更新
OSRF:开源机器人基金会
Gazebo采用http://opensource.org/licenses/Apache-2.0开源许可证。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的Bash等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/gazebo中。
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务