【CMU-自主导航与规划】M-TARE planner 配置与运行

M-TARE docker
M-TARE 源码

一、依赖

Docker, Docker Compose, NVIDIA Container Toolkit, Nvidia GPU Driver(需要至少2个,带Nvidia GPU)

1.1 Docker

docker -v               #查询版本

1.2 Docker Compose

docker compose version

1.3 GPU

docker run --gpus all --rm nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

如果有报错:

docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

参考:docker gpu报错Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

安装nvidia-container-runtime,并进行docker的重启:

sudo systemctl restart docker

1.4 其他依赖

sudo apt install tmux tmuxp net-tools

二、安装

拉取指定版本镜像:

docker pull caochao/mtare-open-source:latest

下载工程docker:(推荐将工程放置在主目录下)

 git clone https://github.com/caochao39/mtare_docker.git
  • 在单机上运行多个robot:
    • 网络设置:
      使用ifconfig查找网络名称,后续需要使用
      如果没有网络,使用ip link列出所有网络,并选择想要使用的,使用以下指令进行设置
sudo ip link set <interface-name> up
  • 在文件mtare_docker/docker-compose-network.yml中:
    driver: macvlan进行注释;
    driver: bridge取消注释。

  • 在多机上运行多个robot:
    建议手动为每台计算机分配一个静态ip
    使用以太网电缆将每台计算机连接到同一个本地网络,不要使用无线连接;
    确认每台之间可以互相ping;
    查找每台计算机的网络名称;
    在文件mtare_docker/docker-compose-network.yml中,将driver: macvlan取消注释,将driver: bridge进行注释。

三、启动

在终端通过xhost + 允许docker连接x server,显示GUI,通过 xhost - 取消

如果不成功,可以尝试安装:sudo apt-get install lightdm
并使用 sudo dpkg-reconfigure lightdm 切换显示

启动:

./run_mtare.sh tunnel 30 2 0 wlp0s20f3

指令含义:

Usage: run_mtare.sh <comms_range> <robot_num> <robot_id> <network_interface>
: The environment to explore, which should be one of the following: tunnel, garage, campus, indoor, forest
<comms_range>: Communication range in meters, two robots further than this range cannot communicate with each other
<robot_num>: Total number of robots
<robot_id>: Robot id, ranging from 0 to robot_num - 1
<network_interface>: Name of the network interface to use, e.g. eth0

单机启动效果
多机启动需要开多个终端同时启动,且注意id需要在0到num-1的范围内。

./run_mtare.sh tunnel 30 5 0 eno1
./run_mtare.sh tunnel 30 5 1 eno1
...
./run_mtare.sh tunnel 30 5 4 eno1

在这里插入图片描述

其中:

  • 圆圈颜色表示通信状态,大小表示通信范围
    • 红色表示范围远,无法通信
    • 黄色:当一个机器人确定与另一个机器人会面,传递或请求信息,有利于整体探索效率时,它将暂停当前的探索进度,并追赶其他机器人。指示通信范围的圆圈变为黄色。
      (Representation Granularity Enables Time-Efficient Autonomous Exploration in Large)
    • 绿色:当两个机器人在彼此的通信范围内时,它们可以相互交换有关勘探进展的信息。
  • 所有参与探索的机器人的位置都用小球体表示(红色)
  • rviz的显示设置同:https://github.com/caochao39/tare_planner

四、停止

使用脚本:mtare_docker/stop.sh
停止所有机器人:./stop.sh
停止某个:./stop.sh <robot_id>

五、内容包含

  • M-TARE源码:https://github.com/caochao39/mtare_planner
  • 虚拟环境:https://github.com/HongbiaoZ/autonomous_exploration_development_environment
  • ROS1 bridge:
    • 源码:https://github.com/ros2/ros1_bridge
    • 作者所用改进版:https://drive.google.com/file/d/1ZI4urXESzzBNyuV0ToSgndKDIShpYWko/view
  • ROS2 https://drive.google.com/file/d/1n3NG6eiZeafJGXRxOW_fkhylb-SsHSor/view

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/356317.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jrt运维命令改造

以前发布网站都是定死网站放置路径的&#xff0c;现在JRT想面向更广范围推广&#xff0c;所以就不能明确确定网站放置目录&#xff0c;为此需要改造一下jrt命令和sh来满足目录不确定情况和多个程序用不同管理命令的要求。 以前是写死的&#xff0c;现在改为调程序运行目录的sh…

Dubbo 3.x源码(16)—Dubbo服务发布导出源码(5)

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了Dubbo 3.x源码(15)—Dubbo服务发布导出源码(4)&#xff0c;也就是Dubbo远程服务导出export方法的上半部分&#xff0c;也就是doLocalExport源码&#xff0c;将会得到一个Exporter。 现在我们…

C++类和对象引入以及类的介绍使用

文章目录 一、面向过程和面向对象的初步认识二、类的引入2.2 类的引入 三、类的访问限定符及封装3.3 访问限定符3.4 【面试题】C中struct和class的区别3.5 类的两种定义方式 四、封装【面试题】面向对象的三大特性 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储…

(Sping Xml方式整合第三方框架)学习Spring的第十天

Spring整合mybatis 1 . 导入Mybatis整合Spring的相关坐标 <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.13.RELEASE</version></dependency><dependency><…

基于springboot网上图书商城源码和论文

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括网上图书商城的网络应用&#xff0c;在外国网上图书商城已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。网上图书商城具有网上图书信息管理功能的选择…

新建VM虚拟机-安装centOS7-连接finalshell调试

原文 这里有问题 首先进入/etc/sysconfig/network-scripts/目录 cd /etc/sysconfig/network-scripts/ 然后编辑文件 ifcfg-ens33 vi ifcfg-ens33

探索数字经济:从基础到前沿的奇妙旅程

新一轮技术革命方兴未艾&#xff0c;特别是以人工智能、大数据、物联网等为代表的数字技术革命&#xff0c;催生了一系列新技术、新产业、新模式&#xff0c;深刻改变着世界经济面貌。数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。预估到20…

OpenCV 5 - 图像混合处理addWeighted()

图像混合 1 理论-线性混合操作 其中α的取值范围为0~1之间,表示图像的所占的权重 2 混合处理函数addWeighted() 3 代码示例 Mat src1, src2, dst;src1 = imread("./1.png");src2 = imread("./2.png");if (!src1.data && src2.empty()) //判断图片…

word文档怎么做成翻页电子书

随着科技的进步&#xff0c;电子书已成为越来越多人阅读的首选。翻页电子书以其独特的翻页效果和丰富的互动功能&#xff0c;更是受到了广大读者的喜爱。那么&#xff0c;如何将传统的Word文档制作成翻页电子书呢&#xff1f; 一、了解翻页电子书的特点 翻页电子书&#xff0c…

鸿蒙开发【分布式任务调度】解析

鸿蒙OS 分布式任务调度概述 在 HarmonyO S中&#xff0c;分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力&#xff0c;为应用定义统一的能力基线、接口形式、数据结构、服务描述语言&#xff0c;屏蔽硬件差异&#xff1b;支持远程启…

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0.

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0. &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;报错分析及解决方案&#x1f333;&#x1f333;参考文章&#x1f333;&#x1f333;结尾&#x1f333; &#x1f333;…

Codeforces Round 921 (Div. 2)补题

We Got Everything Covered!&#xff08;Problem - A - Codeforces&#xff09; 题目大意&#xff1a;要求找出一个长度最短的字符串&#xff0c;满足任意由前k个字母组成的长度为n的字符串都是它的子序列。输出字符串。 思路&#xff1a;这道题我本来想的很简单&#xff0c;…

仅使用 Python 创建的 Web 应用程序(前端版本)第10章_订单列表

本章我们将实现订单列表页面。 完成后的图像如下。 创建过程与之前相同,如下。 No分类内容1Model创建继承BaseDataModel的数据类Order、OrderDetail2Service创建一个 OrderAPIClient3Page定义PageId并创建继承自BasePage的页面类4Application将页面 ID 和页面类对添加到 Mult…

第五季特别篇:一夜杯、游戏之宴 2017.04.26

第五季特别篇&#xff1a;一夜杯、游戏之宴 2017.04.26 OVA 第1话&#xff1a;一夜酒杯 / 一夜杯OVA 第2话&#xff1a;游戏之宴 / 遊戯の宴 OVA 第1话&#xff1a;一夜酒杯 / 一夜杯 遭到独角妖袭击的妖怪夫妇日土和初菜被夏目所救&#xff0c;这对妖怪夫妇制作的酒杯&#xf…

【服务器APP】利用HBuilder X把网页打包成APP

目录 &#x1f33a;1. 概述 &#x1f33c;1.1 新建项目 &#x1f33c;1.2 基础配置 &#x1f33c;1.3 图标配置 &#x1f33c;1.4 启动界面配置 &#x1f33c;1.5 模块配置 &#x1f33c;1.6 打包成APP &#x1f33a;1. 概述 探讨如何将网页转化为APP&#xff0c;这似乎…

LeetCode 热题 100 | 矩阵

目录 1 73. 矩阵置零 2 54. 螺旋矩阵 3 48. 旋转图像 4 240. 搜索二维矩阵 II 菜鸟做题第二周&#xff0c;语言是 C 1 73. 矩阵置零 解题思路&#xff1a; 遍历矩阵&#xff0c;寻找等于 0 的元素&#xff0c;记录对应的行和列将被记录的行的元素全部置 0将被记录的…

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是&#xff0c;消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU&#xff0c;但不会查看其他字段。因此&#xff0c;必…

「效果图渲染」如何使用VRay渲染逼真的物理模型

使用V-Ray渲染出逼真的物理模型首先要注重材质和光照的真实性。精细调整材质属性&#xff0c;如反射、透明度和质感&#xff0c;确保它们与现实世界中物质的特性相一致。接下来&#xff0c;布置合适的光源&#xff0c;模拟自然光线的行为&#xff0c;创建真实的光影效果。通过这…

Redis -- 前置知识

目录 简要 分布式系统 负载均衡 引入缓存 数据库分表 微服务 小结 简要 redis是存储数据在内存中, 定义变量就是在内存中, 但是redis是在分布式系统中, 才能真正发挥威力, 如果只是单机程序, 那么直接通过变量来存储数据的方式将是最优的选择. …

(bean的创建图)学习Spring的第十天(很重要)

大致框架按如下 第一次细分 bean对象还未创建 操作第一个map 引入BeanFactoryPostProcessor , 即Bean工厂后处理器 , 为Spring很重要的扩展点 BeanFactoryPostProcessor内部的方法 可以对BeaDefinition进行修改 , 也可进行BeanDefinition的注册 ( 原有在xml文件配置的bean…