【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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RT-DETR改进涨点】ResNet18、34、50、101等多个版本移植到ultralytics仓库(RT-DETR官方一比一移植)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文是本专栏的第一篇改进,我将RT-DETR官方版本中的ResNet18、ResNet34、ResNet50、ResNet101移植到ultralytics仓库,网上很多改进机制是将基础版本的也就是2015年发布的ResNet移植到ultralytics仓库中,但是其实…

数学建模学习笔记||灰色关联分析

灰色系统 信息绝对透明的是白色系统&#xff0c;信息绝对秘密的是黑色系统&#xff0c;灰色系统介于两者之间 关联分析 即系统的分析因素 包含多种因素的系统中&#xff0c;哪些因素是主要的&#xff0c;哪些因素是次要的&#xff0c;哪些因素影响大&#xff0c;哪些因素影响小…

docker+jekins+maven+ssh 持续集成交付部署 jar包

一. docker环境搭建&#xff0c;此处略过。 二. docker部署jekins 2.1 拉取镜像&#xff0c;挂载工作目录,xxxx为宿主机指定工作目录 docker pull jenkins/jenkins docker run -d -p 8080:8080 -p 50000:50000 --name jenkins --privilegedtrue -v xxxxxxxxxx:/var/jenkins…

Onvif协议5: 预置位的操作

目录 1. 介绍 2. GetPreset 3. SetPreset 4.预置位的索引 5. GotoPreset 1. 介绍 球机的云台预置位控制主要包含的内容有&#xff1a;预置位的设置、预置位的调用、预置位的删除以及预置位的名称修改等 云台预置位的设置&#xff1a;调用Onvif协议中云台预置位设置接口&a…

推荐一款Linux、数据库、Redis、MongoDB统一管理平台!

官方演示 状态查看 ssh 终端 文件操作 数据库操作 sql 编辑器 在线增删改查数据 Redis 操作 Mongo 操作 系统管理 账号管理 角色管理 资源管理 一.安装 1.下载安装包 cd /opt wget https://gitee.com/dromara/mayfly-go/releases/download/v1.7.1/mayfly-go-linux-amd64.zi…

[GN] 设计模式——面向对象设计原则概述

文章目录 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 面向对象设计原则概述 单一职责原则 一个类只负责一个功能领域中的相应职责 类…

【C++杂货铺】详解类和对象 [中]

博主&#xff1a;代码菌-CSDN博客 专栏&#xff1a;C杂货铺_代码菌的博客-CSDN博客 目录 &#x1f308;前言&#x1f308; &#x1f4c1; 类的6个默认成员函数 &#x1f4c1; 构造函数 &#x1f4c2; 概念 &#x1f4c2; 特性&#xff08;灰常重要&#xff09; &#x1f4c…

粒子群算法求解港口泊位调度问题(MATLAB代码)

粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种基于群体智能的优化算法&#xff0c;它通过模拟鸟群或鱼群的行为来寻找最优解。在泊位调度问题中&#xff0c;目标是最小化所有船只在港时间的总和&#xff0c;而PSO算法可以帮助我们找到一…

The following untracked working tree files would be overwritten by merge问题的解决

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 在更新git仓库时出现了一个The following untracked working tree files would be overwritten by merge的错误&#xff0c;具体如下图&#xff1a; 分析…

【智能家居入门之微信小程序控制下位机】(STM32、ONENET云平台、微信小程序、HTTP协议)

实现微信小程序控制单片机外设动作 一、使用ONENET可视化组件控制单片机外设动作二、使用微信小程序控制单片机外设动作三、总结 本篇博客话接上文&#xff1a; https://blog.csdn.net/m0_71523511/article/details/135892908 上一篇博客实现了微信小程序接收单片机上传的数据…

day31 贪心算法 分发饼干 摆动序列 最大子序和

题目1&#xff1a;455 分发饼干 题目链接&#xff1a; 455 分发饼干 题意 给孩子分发饼干&#xff0c;每个孩子最多只能有1块饼干 每个孩子i都有一个胃口值g[i] &#xff0c;每块饼干j的尺寸是s[j] 如果s[j]>g[i]可以将这个饼干分配给孩子i 孩子就会得到满足&#xff…

【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(Dispatcher和EventListener)(下)

基于Netty的分布式通信框架实现 前提介绍本节重点Dispatcher&#xff08;分派调度器&#xff09;EventListenerChannelEventListenerChannel通道事件定义ChannelActionEvent Heartbeat、超时及重连机制 前提介绍 经过阅读《【分布式技术专题】「探索高性能远程通信」基于Netty…