SLAM从入门到精通(ROS网络通信)

news2025/2/26 23:22:45

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        之前我们学习ros的时候,大部分都是基于仿真来做的。但是最终,我们还是要把ros部署到小车上的。这就带来一个问题,首先小车肯定是要上ros的,毕竟小车要行走在各个地方。然而,我们在本地也是需要对小车进行控制的。这种控制,有可能是调试,有可能是监控,也有可能是发送任务。不管怎么说,本地pc也是需要对小车进行通信的。另外,对于真正的使用者来说,他可能手里也有一个发送任务的android pad,也是要发送任务给小车的。所以,这里就引申出一个需求,ros网络应该怎么搭建。

1、网络构建

        要保证所有的设备都能正常通信,那么构建一个合理的wifi网络是必不可少的。router可以选用工业级的路由器,2.4g或者5g都可以。pad和pc都是成熟的电子产品,一般就是android系统和windows系统。robot的话,则需要一个配置一个无线模块,配置好分配的ip。这样一个简单的网络就算构建好了。

2、ip配置

        一般来说,所有的设备配置在同一个网段即可。比如,router配置成192.168.0.1或者192.168.0.254,pad配置成192.168.0.101,robot配置成192.168.0.102,pc配置成192.168.0.103即可。

3、master的选择

        目前为止还有一个事情没有决定,那就是robot和pc谁是master的问题。网上大部分的案例,都把robot设置成master,pc和pad当成slave。这是可以的。不过因为pc还会涉及到交通管制、任务分配、客户的业务系统对接等工作,这时候把ros一部分master做的活,例如move_base中的全局搜路和局部搜路放到pc来做,这也是较为常见的情形。

4、ros ip设置

        前面讨论了各个模块ip的设置,那么怎么把他们和ros绑定在一起呢。其实也不复杂。最主要的工作就是设置ROS_MASTER_URI和ROS_HOSTNAME。pad可以这样设置,

export ROS_MASTER_URI=http://192.168.0.102:11311
export ROS_HOSTNAME=192.168.0.101

        robot这样设置,

export ROS_MASTER_URI=http://192.168.0.102:11311
export ROS_HOSTNAME=192.168.0.102

        最后pc这样设置,

export ROS_MASTER_URI=http://192.168.0.102:11311
export ROS_HOSTNAME=192.168.0.103

        通过观察,我们发现不同设备中,ROS_MASTER_URI都是一样的,端口11311也是固定的。但是ROS_HOSTNAME都是每个设备自己的ip,所以从这也看得出robot是ros的核心,其他设备本质上都是slave设备。

5、启动顺序

        既然robot是核心,那么启动设备的时候,必须等robot成功启动之后,其他的pad、pc才能顺利启动。也就是说,robot上面的roscore先启动,其他设备才连的上去。

6、测试方法

        手上有robot的同学可以直接在arm开发板设置好ros之后,连同pc一起测试。暂时还没有机器人的同学,可以通过多虚拟机+网络桥接的办法看看可不可以实现多设备之间的ros组网。如果可以在一台设备上roscore启动成功,另外一台设备上rosrun启动成功,那代表我们的配置是没有问题的。这也间接说明了ROS_MASTER_URI和ROS_HOSTNAME是设置成功的。

7、额外pad的开发

        目前pad的系统以andoird为主,ros提供了一个rosjava包,勉强支持ros开发。如果用着不顺手,可以通过xmlrpc + rosrun client的办法来解决,这也算一个折中的思路吧。

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

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

相关文章

qgis c++ api 整体框架详解

文章目录 整体架构QGis库官方文档编译生成的库 core地图和图层矢量图层(Vector layers)图层要素符号图层要素要素渲染(feature renderer)符号(symbol) 坐标映射数据源(data provider) Raster layers图层符号数据源坐标映射 core库其他有用类 guiQgsMapCanvasQgsMapToolQgsLayer…

VIT(Vision Transformer)学习(三)-纯VIT之swin transformer模型理解

语义分割网络纯 TRF 结构:VIT主干作为编码器,设计一个基于 TRF 架构的解码器。 今天学习swin transformer 源码地址: https://github.com/microsoft/Swin-Transform 哔哩哔哩讲解:12.1 Swin-Transformer网络结构详解_哔哩哔哩_bilibili 博…

支付宝开放平台第三方代小程序开发,消息服务推送通知总结

大家好,我是小悟 关于支付宝开放平台第三方代小程序开发的消息服务推送通知,是开放平台代小程序实现业务的重要功能。 消息服务推送通知,支持商家两种通讯协议来接收消息,分别为websocket 长连接和http。 关于websocket方式&am…

CentOS 7 编译安装Boost

1、前提条件 linux平台/CentOS 7 下要编译安装Boost除gcc和gcc-c之外,还需要两个开发库:bzip2-devel 和python-devel ,因此在安装前应该先保证这两个库已经安装。 安装指令: yum install bzip2 bzip2-devel bzip2-libs python-devel Cent…

学习开发一个RISC-V上的操作系统(汪辰老师) — 01-helloRVOS程序讲解

前言 (1)此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。 (2)该课程相关代码gitee链接; (3)PLCT实验室实习生长期招聘:招聘信息链接 (4) start.S &a…

SpringBoot项目入门: IDEA 创建SpringBoot项目

方式1:在线创建项目 https://start.spring.io/ 环境准备 (1)JDK 环境必须是 1.8 及以上,传送门:jdk1.8.191 下载(2)后面要使用到 Maven 管理工具 3.2.5 及以上版本(3)开发工具建议…

leetcode-279. 完全平方数

1. 题目链接 链接: 题目链接 2. 解答 #include <stdio.h> #include <stdlib.h> #include <stdbool.h>bool issquare(int n) {if (n 1 || n 4) return true;if (n 2 || n 3) return false;for (int i 3; i < n/2; i ) {if (n i*i) return true;}…

【HCIE】12.VXLAN

VXLAN&#xff0c;是一种IP VPN&#xff0c;每台设备几乎都支持IP&#xff0c;而MPLS会有很多设备不会支持&#xff0c;所以VXLAN是使用的较多。 采用MAC in UDP封装方式&#xff0c;MAC指的是原始数据的以太头部被封装到新的UDP头部里面。是基于三层的一个虚拟网络。 技术背…

13.SpringBoot项目之Service层

SpringBoot项目之Service层 JavaEE三层架构 为了项目维护方便&#xff0c;为了项目开发便利。三层架构功能控制器层&#xff1a;controller方便和前端数据进行交互业务层&#xff1a;service处理各种业务持久化层&#xff1a;mapper和数据库进行数据交互 抽取出service层 按…

华为汪涛:5.5G时代UBB目标网,跃升数字生产力

[阿联酋&#xff0c;迪拜&#xff0c;2023年10月12日] 在2023全球超宽带高峰论坛上&#xff0c;华为常务董事、ICT基础设施业务管理委员会主任汪涛发表了“5.5G时代UBB目标网&#xff0c;跃升数字生产力”的主题发言&#xff0c;分享了超宽带产业的最新思考与实践&#xff0c;探…

Ubuntu 23.10 Beta 镜像开放下载

导读Canonical放出了 Ubuntu 23.10 Beta 镜像&#xff0c;此外 Edubuntu、Kubuntu、Lubuntu、Ubuntu Budgie、Ubuntu Cinnamon、Ubuntu Kylin、Ubuntu MATE、Ubuntu Studio、Ubuntu Unity 和 Xubuntu 等风味版本也同步放出镜像。 近日消息&#xff0c;Canonical 放出了 Ubuntu …

【1++的Linux】之文件(二)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的Linux】 文章目录 一&#xff0c;文件描述符二&#xff0c;重定向三&#xff0c;理解Linux下一切皆文件 一&#xff0c;文件描述符 我们先来看一段代码&#xff1a; #include<unistd.h&g…

什么是CDN内容分发网络?如何做到加速的?

这里写目录标题 CDN如何做到加速的&#xff1f; CDN content delivery network内容分发网络是建立并覆盖在承载网上&#xff0c;由遍布全球的边缘节点服务器群组成的分布式网络。 CDN将源站资源缓存在遍布全球的边缘加速节点服务器上&#xff0c;当客户需要访问和获取资源的时…

如何使用Net2FTP搭建免费web文件管理器打造个人网盘

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

助力乡村教育 泰格智能AI英语开展捐赠实施线上培训

2023年10月11日晚8点至9点&#xff0c;泰格智能AI英语创始人李勤骞老师举行了一场为期一小时的线上培训&#xff0c;旨在详细解答泰格智能AI英语联合中国善网捐赠千词切APP训练账号的意义&#xff0c;探讨乡村教育、学习英语的现状和方法&#xff0c;以及项目的实施和落地要求。…

阿里健康携手15家药企发起“慢病减压计划”,为职场人的健康“减负”

近年来&#xff0c;慢性疾病患者的发病年龄正在逐年递减。一组来自阿里健康研究院内部分析数据印证了这一趋势。数据显示&#xff0c;当代80后职场人群中&#xff0c;三成用户购买过慢病药品。 30-39岁已经成为肝胆、心脑等相关疾病药品的购药主力人群 。35-39岁是高血压疾病药…

204、RabbitMQ 之 使用 topic 类型的 Exchange 实现通配符路由

目录 ★ 使用topic实现通配符路由代码演示topic通配符类型的Exchange代码演示:ConstantUtilConnectionUtilProducerConsumer01执行结果生产者消费者01消费者02 完整代码&#xff1a;ConstantUtilConnectionUtilProducerConsumer01Consumer02pom.xml ★ 使用topic实现通配符路由…

Linux系统移植框架简介

一、系统移植简介 系统移植就是给开发板安装一个linux系统。需要从官方下载u-boot源码&#xff0c;linux内核源码&#xff0c;根文件系统的源码&#xff0c;对源码进行配置和编译&#xff0c;生成对应的源码的镜像文件&#xff0c;将镜像文件部署到开发板中&#xff0c;使开发…

上海亚商投顾:沪指高开高走 锂电等新能源赛道大反攻

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日高开后强势震荡&#xff0c;创业板指盘中一度翻绿&#xff0c;随后探底回升再度走高。碳酸锂期货合约…