基于docker一键安装ros环境(gazebo&rviz)

简介: 基于docker一键安装ros环境(gazebo&rviz)

docker作为一种开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。之前网上存在一些使用docker去安装ros的相关教程。但是目前网上的教程都无法装载GAZEBO RVIZ等常用的一些软件。


在做纯编译开发时,我们不需要对CPP/Python代码进行编译,这时候能够一键安装环境的Docker就显得十分有必要,这样的方式不会考虑环境配置的差异,而且能够快速的搭建好环境。


20210525091500624.png


创建python文件来运行程序


build


import argparse
import docker_utils as ut
import os
def main():
    # Parse arguments
    parser = argparse.ArgumentParser()
    parser.add_argument('-g', '--gazebo', dest="gazebo_version", default="9")
    parser.add_argument('-r1', '--ros1', dest="ros1_version", default="melodic")
    parser.add_argument('-r2', '--ros2', dest="ros2_version", default="")
    args = parser.parse_args()
    gz_version_tag = '9'
    # If ROS 2 is not defined, ROS 1 is compiled
    if args.ros2_version == "":
        # Compile ROS 1
        ros_version_name = 'ros1'
        ros_version_tag  = args.ros1_version
        gz_version_tag = args.gazebo_version
    else:
        # Compile ROS 2
        ros_version_name = 'ros2'
        ros_version_tag  = args.ros2_version
        if not (args.gazebo_version == "9"):
            print("Gazebo 9 is only supported. Using this version by default.")
    # Select image to compile
    image_name = '{}'.format(ros_version_name)
    # Build selected image
    command = 'cd {} && ROS_VERSION={} GZ_VERSION={} make {}'.format(
            ut.get_repo_root(), ros_version_tag, gz_version_tag, image_name)
    ut.run_command(command)
if __name__ == '__main__':
    main()


该文件是我们启动安装的入口,在输入./build后则执行到安装ros的指令中。

ros1/Dockfile

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
4天前
|
Docker 容器
paddleocr 在docker环境下部署_docker部署paddleocr,90%的人看完都说好
paddleocr 在docker环境下部署_docker部署paddleocr,90%的人看完都说好
|
4天前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
19 1
|
1天前
|
Linux Docker 容器
最全树莓派4B安装docker-compose(64位Linux)(1),2024年最新一文说清
最全树莓派4B安装docker-compose(64位Linux)(1),2024年最新一文说清
|
2天前
|
JSON 测试技术 定位技术
【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具
【5月更文挑战第16天】在Docker环境下部署Simple mind map思维导图工具
19 1
【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具
|
4天前
|
运维 Linux Docker
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
|
4天前
|
运维 Linux Docker
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
|
4天前
|
Docker 容器
docker部署omni_usdt 0.8.0版本私有链集群环境
docker部署omni_usdt 0.8.0版本私有链集群环境
|
4天前
|
jenkins 持续交付 数据安全/隐私保护
Docker 安装 Jenkins
Jenkins 是一个独立的开源自动化服务器,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
26 1
|
4天前
|
Linux Docker 容器
安装新版本Docker报错container-selinux >= 2:2.74 - 蓝易云
以上步骤应该能够帮助你解决遇到的问题。如果问题仍然存在,你可能需要寻求专业的技术支持。
21 0
|
4天前
|
Ubuntu Linux Docker
window10下安装ubuntu系统以及docker使用
window10下安装ubuntu系统以及docker使用