多无人机通信(多机通信)+配置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.rhkb.cn/news/434164.html

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

相关文章

C++黑暗迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; struct near {int i;int ia;int ix;int iy;int iwalk; }; v…

单片机长短按简单实现

单片机长短按简单实现 目录 单片机长短按简单实现1 原理2 示例代码2.1 按键实现 3 测试log4 其他实现方式 1 原理 按键检测和处理的步骤如下&#xff1a; 1&#xff1a;定时扫描按键&#xff08;使用定时器定时扫描&#xff0c;也可以用软件延时或者系统心跳之类的方式&#…

信息安全工程师(21)安全协议

前言 安全协议是建立在密码体制基础上的一种交互通信协议&#xff0c;它运用密码算法和协议逻辑来实现认证、密钥分配、数据机密性、完整性和抗否认性等安全目标。 一、定义与目的 安全协议旨在确保网络环境中信息交换的安全性&#xff0c;通过密码技术和协议逻辑来保护数据的机…

AIGC入门:Comfyui整合包,解压即用!

整合包获取方式放在文末了 今天给大家分享的Comfyui的整合包&#xff0c;无需复杂的操作&#xff0c;解压即可使用。 整合包已经打包好了&#xff0c;获取方式放在文末&#xff0c;需要的朋友可以自行领取哦。 什么是Comfyui ComfyUI采用节点式的操作方式&#xff0c;这种方…

240922-局域网内通过SSH与SFTP访问RHEL服务器

要通过SFTP&#xff08;安全文件传输协议&#xff09;在局域网内访问一台RHEL服务器&#xff0c;您需要确保以下步骤都已经正确完成&#xff1a; A. 在RHEL服务器上配置SFTP服务 RHEL默认通过sshd服务提供SFTP功能&#xff0c;SFTP使用SSH协议进行文件传输&#xff0c;因此需要…

DarkLabel2.4版本导入MOT17数据集

目录 背景导入效果MOT17数据集说明DarkLabel导入视频导入gt文件 背景 做目标追踪&#xff0c;目前找了一圈开源工具&#xff0c;发现DarkLabel还是很好用的&#xff0c;提供自动目标跟踪&#xff0c;标注很方便。 由于目标追踪我用的是bytetrack&#xff0c;官网是用mot17数据…

Qt开发技巧(十)新版随机数,模拟鼠标移动,QTextEdit卡死问题,函数返回值,参数结构化,选项卡控件,窗体属性

继续讲一些Qt开发中的技巧操作&#xff1a; 1.新版随机数 Qt中有自己的随机数取值方法&#xff0c;Qt5.10以前使用qsrand方法&#xff0c; Qt5.10以后提供了新的类 QRandomGenerator QRandomGenerator64 管理随机数&#xff0c;使用更方便&#xff0c;尤其是取某个区间的随机数…

AtCoder Regular Contest 156 C. Tree and LCS(思维题 构造 数学归纳法)

题目 构造一个排列p&#xff0c; 使得对于任意树上路径&#xff0c; 求该路径上的点(x1,...,xk)和对应排列上的点(Px1,...,Pxk)的最长公共子序列都得到一个值&#xff0c; 称为相似值 现在想令任意树上路径的相似值的最大可能长度最小&#xff0c; 最小化前提下&#xff0…

Unity 网格的细节级别 (LOD) 学习

Unity LOD学习 文档 网格的细节级别 (LOD) https://docs.unity.cn/cn/2020.3/Manual/LevelOfDetail.html在项目中使用 自动设置导入 文档&#xff1a; https://docs.unity.cn/cn/2020.3/Manual/importing-lod-meshes.html可以在外部 3D 应用程序中创建具有不同细节级别的网…

【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区版

文章目录 一、Holt-Winters算法原理(一) 加法模型(二) 乘法模型(三) 阻尼趋势 二、Holt Winters算法优缺点优点缺点 三、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入和统计分析(二) 数据预处理(三) 模型训练和模型评估(四) 模型可视化 四、总结 一、Holt-Winters…

【bug fixed】hexo d的时候Spawn failed

在执行hexo d部署的时候&#xff0c;遇到报错&#xff1a; % hexo d INFO Validating config INFO Deploying: git INFO Clearing .deploy_git folder... INFO Copying files from public folder... INFO Copying files from extend dirs... [main 8e89088] Site updated…

VS开发C++项目常用基础属性配置

这篇文件简单讨论一下visual studio中项目属性的常用基础配置。 1.输出目录&#xff1a;项目目标文件生成位置。 2.中间目录&#xff1a;项目生成的中间文件所在的位置。 3.目标文件名&#xff1a;项目生成目标文件名称。 4.附加包含目录&#xff1a;三方库等头文件所在的位…

【Python】探索 Graphene:Python 中的 GraphQL 框架

人们常说挣多挣少都要开心&#xff0c;这话我相信&#xff0c;但是请问挣少了怎么开心&#xff1f; 随着现代 Web 应用对数据交互需求的不断增长&#xff0c;GraphQL 作为一种数据查询和操作语言&#xff0c;越来越受到开发者的青睐。Graphene 是 Python 语言中实现 GraphQL 的…

工业缺陷检测——Windows 10本地部署AnomalyGPT工业缺陷检测大模型

0. 引言 在缺陷检测中&#xff0c;由于真实世界样本中的缺陷数据极为稀少&#xff0c;有时在几千甚至几万个样品中才会出现一个缺陷数据。因此&#xff0c;以往的模型只需在正常样本上进行训练&#xff0c;学习正常样品的数据分布。在测试时&#xff0c;需要手动指定阈值来区分…

vite 底层解析

vite 目前大多数框架的前端构建工具都已经被vite取代&#xff0c;相信你已经使用过vite了。可是在使用过程中&#xff0c;vite对我来说一直是模糊的&#xff0c;现在就来一探究竟&#xff0c;为啥它更好&#xff1f; 接下来我将为从以下几点出发&#xff0c;究其原理 一、原生…

Redis篇(应用案例 - 商户查询缓存)

目录 一、什么是缓存? 二、为什么要使用缓存 三、如何使用缓存 四、添加商户缓存 1. 缓存模型和思路 2. 代码如下 五、缓存更新策略 1. 内存淘汰 2. 超时剔除 3. 主动更新 六、数据库缓存不一致解决方案 1. 数据库缓存不一致解决方案 2. 数据库和缓存不一致采用什…

excel统计分析(4): 多元线性回归分析

用途&#xff1a;研究多个自变量&#xff08;也称为预测变量或解释变量&#xff09;与一个因变量&#xff08;也称为响应变量&#xff09;之间的线性关系。 多元线性回归分析模型&#xff1a;Yβ0β1X1β2X2…βkXkϵ Y 是因变量。1,X2,…,Xk 是自变量。β0 是截距项。β1,β2,…

Colorful/七彩虹将星X15 AT 23 英特尔13代处理器 Win11原厂OEM系统 带COLORFUL一键还原

安装完毕自带原厂驱动和预装软件以及一键恢复功能&#xff0c;自动重建COLORFUL RECOVERY功能&#xff0c;恢复到新机开箱状态。 【格式】&#xff1a;iso 【系统类型】&#xff1a;Windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 注意&#xff1a;安装系统会…

Vue中集中常见的布局方式

布局叠加 完整代码最外层的Container设置为relative&#xff0c;内部的几个box设置为absolute <template><div class"container"><div class"box box1">Box 1</div><div class"box box2">Box 2</div><d…

cobaltstrike之execute-assembly内存加载—后渗透利用

通过execute-assembly内存加载来执行文件&#xff0c;从而避免后渗透中被杀毒软件静态报毒&#xff0c;使更多的工具能够继续利用&#xff0c;常见的方式有权限维持&#xff0c;代理上线等操作 远程bin文件加载 首先尝试远程加载bin文件 使用项目https://github.com/shanekha…