多无人机通信(多机通信)+配置ssh服务

目录

多机通信

设备

主从机通信设置

配置从机

配置主机

测试

正式启用

MAVROS通信


多机通信

多机通信是实现机器人编队的基础,通过网络搭建通信链路。我们这里用中心节点网络通信,所有数据需有经过中心节点,所以,中心节点需要有很高的带宽。

设备

ubuntu系统电脑(主机)

同版本ubuntu机载电脑或电脑(从机)

px4固件飞控

路由器局域网

从机上配有mavros等环境

主从机通信设置

  • 主机从机都需要下载ssh服务,ubuntu会自动安装openssh-client,但是并没有安装openssh-server。
sudo apt install openssh-server
  • 查看版本号,并检验是否安装成功。
ssh -V

配置从机

  • 从机安装ifconfig,查看ip地址(注:主机从机需要在同一WiFi下)
sudo apt install net-tools
  • 输入ifconfig(windows为ipconfig),记住ip地址

然后回到主机 ping一下看看

ping 192.168.***.***

配置主机

  • 然后主机改一下配置文件
sudo gedit /etc/hosts

在上面添加ip和主机名 ,可以添加多个从机,前提是同一局域网。

到这里就配置完成了,

测试

在主机打开终端

ssh user@hostname #ssh 用户名@服务器地址

这里的服务器地址也就是hostname可以使ip,也可以是用户名,比如我的从机为uas

ssh uas@uas

也可以实现远程连接

第一次连接时会提示

The authenticity of host ' (192.168.)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

 这是说这个ip的指纹是陌生的,要求你是否继续连接,输入yes

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub 

这个指令是查看公钥的指纹。(可以略过)

之后就可以远程控制了,该终端就成为了从机的目录,相当于在从机上打开终端进行操作。但是无法启用图像化文件,不能gedit修改文件,不能打开rviz等等,只能进行终端操作。

正式启用

由于不能进行图形化操作,所以在网上查阅资料,发现可以添加参数来解决这个问题。

ssh -X name@hostname

-X参数可以提供图形化操作。

MAVROS通信

由于默认px4.launch文件的话题名都一样,所以想要进行多机通信要修改话题名,增加组名即可,也就是前缀。

在launch中修改,可以把<group ns ="">放在多个位置,这里提供一种。

<launch><!-- vim: set ft=xml noet : --><!-- example launch script for PX4 based FCU's --><arg name="fcu_url" default="/dev/ttyACM0:57600" /><arg name="gcs_url" default="" /><arg name="tgt_system" default="1" /><arg name="tgt_component" default="1" /><arg name="log_output" default="screen" /><arg name="fcu_protocol" default="v2.0" /><arg name="respawn_mavros" default="false" /><group ns="uav_1"><include file="$(find mavros)/launch/node.launch"><arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml" /><arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" /><arg name="fcu_url" value="$(arg fcu_url)" /><arg name="gcs_url" value="$(arg gcs_url)" /><arg name="tgt_system" value="$(arg tgt_system)" /><arg name="tgt_component" value="$(arg tgt_component)" /><arg name="log_output" value="$(arg log_output)" /><arg name="fcu_protocol" value="$(arg fcu_protocol)" /><arg name="respawn_mavros" default="$(arg respawn_mavros)" /></include></group>
</launch>

然后分别启动两个launch就会有/uav_1/mavros和/uav_2/mavros了。

然后在代码中增加订阅的话题前缀即可完成多无人机通信。

前提是要在从机上搭建好环境和硬件连接。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Codeforces Round 974 (Div. 3)D题解析

前三道太水了&#xff0c;第三道一眼二分&#xff0c;就是需要注意要超过一半人就行&#xff0c;我因为检查了好久 D. Robert Hood and Mrs Hood 抱歉&#xff0c;我是蒟蒻&#xff0c;我看到区间问题就想到了线段树&#xff0c;我们只需要用线段树去维护每个点药经历多少任务…

6.linux文件存储

目录 一&#xff0e;文件系流 1. 简介 2. 示例 二&#xff0e;文件链接 1.符号链接 2.硬链接 三&#xff0e;RAID 1.简介和类型 2.不同场景RAID的使用 3.RAID示例 一&#xff0e;文件系流 问题1:文件是如何准确放到磁盘的某个位置的? 问题2:文件是如何在磁盘(渺茫的…

re题(40)BUUCTF-[ACTF新生赛2020]Oruga

BUUCTF在线评测 (buuoj.cn) 查壳&#xff0c;64位elf文件&#xff0c;ida打开&#xff0c;定位入口函数 进入main里面&#xff0c;再看看sub_78A 猜测是个迷宫&#xff0c;看看byte_201020里是不是地图 _BOOL8 __fastcall sub_78A(__int64 a1) {int v2; // [rspCh] [rbp-Ch]in…

【有啥问啥】深度剖析:大模型AI时代下的推理路径创新应用方法论

深度剖析&#xff1a;大模型AI时代下的推理路径创新应用方法论 随着大规模预训练模型&#xff08;Large Pretrained Models, LPMs&#xff09;和生成式人工智能的迅速发展&#xff0c;AI 在多领域的推理能力大幅提升&#xff0c;尤其是在自然语言处理、计算机视觉和自动决策领…

开启争对目标检测的100类数据集-信息收集

DataBall 助力快速掌握数据集的信息和使用方式。 请关注我们的专栏&#xff1a;DataBall数据集合 &#xff08;计算机视觉&#xff09;_DataBall的博客-CSDN博客 感谢大家&#xff01; 争对数据的种类希望获得大家建议进行收集构建&#xff0c;符合市场大众的需求&#xff0c;欢…

【C++篇】引领C++模板初体验:泛型编程的力量与妙用

文章目录 C模板编程前言第一章: 初始模板与函数模版1.1 什么是泛型编程&#xff1f;1.1.1 为什么要有泛型编程&#xff1f;1.1.1 泛型编程的优势 1.2 函数模板的基础1.2.1 什么是函数模板&#xff1f;1.2.2 函数模板的定义格式1.2.3 示例&#xff1a;通用的交换函数输出示例&am…

【解密 Kotlin 扩展函数】自定义函数(十二)

导读大纲 1.1 在 Kotlin 中创建集合1.2 自定义 joinToString 函数来实现字符串打印 1.1 在 Kotlin 中创建集合 学习如何创建集合 使用setOf函数创建集合, 使用mapOf创建映射, 使用listOf创建列表<1> to 并不是一个特殊的结构体, 而是一个普通函数 infix修饰符表示这是一…

Spring Cloud Gateway 之动态uri 自定义过滤器

背景&#xff1a;第三方公司 请求本公司入参和出参一样的同一个接口&#xff0c;根据业务类型不一样需要不同业务微服务处理 &#xff0c;和第三方公司协商在请求头中加入业务类型方便我公司在网关成分发请求。 1&#xff1a;在spring cloud gateway yml 中加入路由 重点是 -…

人工智能领域-----机器学习和深度学习的区别

机器学习和深度学习都是人工智能领域中的重要概念&#xff0c;它们之间存在以下一些区别&#xff1a; 一、定义与概念 机器学习&#xff1a; 是一种让计算机自动学习和改进的方法&#xff0c;通过从数据中学习模式和规律&#xff0c;从而能够对新的数据进行预测或决策。涵盖了…

【C++笔试强训】如何成为算法糕手Day1

学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 笔试强训第一天 目录 循环渐进Forward-CSDN博客 第一题&#xff1a;两个数组的交集 暴力循环法&#xff1a; 哈希法 &#xff1a; 数组下标法&#xff1a; 第二题&#x…

MySQL:事务的ACID特性隔离级别脏读/不可重复读/幻读/Next-Key锁——场景复现

目录 1、什么是事务 2、 事务的ACID特性 2.1 事务的隔离性 3、为什么要使用事务&#xff1f; 4、查看支持事务的存储引擎 5、使用事务 5.1 控制事务 5.1.1 开启事务 5.1.2 关闭事务 5.2 开始一个事务&#xff0c;执行修改后回滚 5.3 开始一个事务&#xff0c;执行修…

句子成分——每日一划(十)

目录 一、原句 二、主要句子成分 三、 分词短语部分 四、定语从句部分 五、结构总结 六、句子改良 一、原句 Z-Library has always been a part of my study, providing many books that would otherwise require a lot of time or money to find. 来源&#xff1a;写作…

【网络安全】身份认证+wan优化+终端控制

用户身份认证 在允许用户访问你的网络时对其进行验证是至关重要的。不幸的是很多情况下&#xff0c;简单的用户名与密码验证并不可靠。公司通常需要更强大的针对访问信息价值较高系统(例如网络管理员系统与财务系统)的用户群体的验证。 双因子身份验证是根据“你知道的”和“你…

查询一条 SQL 语句的流程

查询一条sql语句的流程 连接器:建立连接&#xff0c;管理连接、校验用户身份查询缓存:查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行&#xff08;MSQL8.0 已删除&#xff09;解析 SQL&#xff1a;通过解析器对 SQL 查询语句进行词法分析、语法分析&#xf…

用uniapp 及socket.io做一个简单聊天 升级 9

比这之前优化了以下功能 上线通知 群聊里适时显示在线人数 约请好友 通过好友通过socket 相应端自动变化 PC端可以拉取摄象头拍照 PC端可以录音发送 拉起摄象头发送录象 <template><view class""><scroll-view scroll-y"true" class&…

Java启动Tomcat: Can‘t load IA 32-bit .dll on a AMD 64-bit platform报错问题解决

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

树莓派pico上手

0 介绍 不同于作为单板计算机的树莓派5&#xff0c;树莓派 pico 是一款低成本、高性能的微控制器板&#xff0c;具有灵活的数字接口。主要功能包括&#xff1a; 英国树莓派公司设计的 RP2040 微控制器芯片双核 Arm Cortex M0 处理器&#xff0c;弹性的时钟频率高达 133 MHz26…

Tomcat 靶场攻略

CVE-2017-12615 步骤一&#xff1a;环境搭建 cd vulhub/tomcat/CVE-2017-12615 docker-compose up -d docker ps 步骤二&#xff1a;漏洞复现 http://192.168.10.190:8080/ 步骤二&#xff1a;首页进行抓包 Tomcat允许适⽤put⽅法上传任意⽂件类型&#xff0c;但不允许js…

小程序-基础知识1

Mustache语法 小程序和vue一样提供了插值语法 但是小程序不能调用方法{{xxxx()}} hidden属性 hidden是所有组件都默认拥有的属性&#xff0c; hidden与wx:if的区别&#xff1a; wx:if是控制组件是否渲染,hidden控制显示或隐藏是通过添加hidden属性。 wx:for 除了可以遍历…

HCIA--实验十九:配置接口DCHP

一、实验内容 1.需求/要求&#xff1a; 通过一台5700交换机和一台PC&#xff0c;通过在交换机的接口上配置接口DHCP来实现PC自动获取ip地址。 二、实验过程 1.拓扑图&#xff1a; 2.步骤&#xff1a; 1.给vlan10配置ip地址&#xff0c;进入vlan10开启接口的DHCP&#xff1…