代码编织梦想

1. 简介

ROS是一个分布式控制环境,这就需要不同计算机上的不同节点进行通信,通过网络设置,可实现不同计算机上的不同节点进行通信

2. 实现

  1. 保证计算机处于同一网络中,最好设置固定IP地址
  2. 修改 /etc/hosts 文件,让主机,从机完成IP地址和计算机名的互相映射
  • 主机端:
    从机的IP    从机计算机名
    172.17.0.2 d102-W65KJ1-KK2
    
  • 从机端:
    主机的IP    主机的计算机名
    172.17.0.1 d102-W65KJ1-KK1
    
  • 注:
    • IP地址查看:ifconfig
    • 计算机名称查看:hostname
  1. 配置主机IP
    在.bashrc中追加
    export ROS_MASTER_URI=http://172.17.0.1(主机IP):11311
    export ROS_HOSTNAME=172.17.0.1(主机IP)
    
    记得添加完source一下
  2. 配置从机IP
    在.bashrc中追加
    export ROS_MASTER_URI=http://172.17.0.1(主机IP):11311
    export ROS_HOSTNAME=172.17.0.2(从机IP)
    
    记得添加完source一下

3. 测试

3.1 ping的方法:

  • ping IP地址
  • ping 电脑名称

3.2 节点测试

  1. 主机启动roscore
  2. 主机启动订阅节点
  3. 从机启动发布节点
  4. 主机,从机节点对调,反向测试
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43280851/article/details/125688310

【ROS学习】ROS分布式通信-爱代码爱编程

我们都知道,把ROS系统运行在嵌入式平台上(比如树莓派)是可以运行的,但是性能远远没有强大的主机好,因此,如何将运算量大的内容在主机上计算,而嵌入式平台只需进行简单的运行通信呢?这就是本篇文章所要介绍的ROS分布式通信! 目录 一、IP地址相同  二、修改hosts配置文件 1、修改树莓派的hosts文件 2、修改从机的hosts文件  3、p

linuxc/c++ 实现http request_junesfour的博客-爱代码爱编程

LinuxC/C++ 实现HTTP Request 文章目录 LinuxC/C++ 实现HTTP Requesthttp请求报文select I/O复用具体实现 http请求报文 想实现http request就得先了解http请求报文的格式. http 请求报文由请求行、请求头、空行和请求体组成. 请求报文 请求方法:通常有GET和P

入门力扣自学笔记85 c++ (题目编号648)_dk_sorhic的博客-爱代码爱编程

648. 单词替换 题目: 在英语中,我们有一个叫做 词根(root) 的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。 现在,给定一个由许多词根组成的词典 dictionary 和一个用空格分隔单词形成

c++:继承和派生_吃橘子aaaaa的博客-爱代码爱编程

1.面向对象的三大特征**: 封装,继承和派生,多态性封装: 封装是面向对象程序设计最基本的特性,把数据(属性)和函数(方法,操作)合成一个整体,这在计算机世界中是用类与对象实现的。继承和派生:(继承和派生一体两面) 继承机制:是类型层次结构设计中实现代码的复用重要手段。 派生:保持原有类特性的基础上进行扩展,增加新属性和新方法,从而产生新的类型。 在面

【c++】类型转换_xiaomage1213888的博客-爱代码爱编程

文章目录 C语言中的类型转换隐式类型转换显示类型转换(强制类型转换)C++强制类型转化static_castreinterpret_castconst_castdynamic_castexplicit C语言中的类型转换 C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型

visual studio中c++部分的官方文档链接【微软(microsoft)所有产品的官方文档链接】_昊虹图像算法的博客-爱代码爱编程

目前(2022年07月),微软官方网站上关于Visual Studio的文档,最老的版本也是VS2015了,如下图所示:微软所有产品的文档目录: 中文版:https://docs.microsoft.com/zh-CN/documentation/ 英文版:https://docs.microsoft.com/en-us/documentation/ V

c语言_指针完结_linux 攻城狮的博客-爱代码爱编程

//中小型公司面试指针考题(定义变量) 1:一个整型数 int p; 2:一个指向整型数的指针 int *p; 3:一个指向指针的指针,他指向的指针指向一个整型数 int **p; 4:一个有10个整型数的数组 int p[10]; 5:一个有10个指针的数组,每个指针指向一个整型数 int *p[10]; 6:一个指向有10个整型数的数组

c++后台面试题汇总-爱代码爱编程

目录 C/C++语言相关static, const的作用?引用与指针的作用及区别?如何避免野指针?malloc, free和new, delete的区别?extern有什么作用?简述 strcpy, sprin

【c++11】lambda表达式_c++11为啥用lambda表达式-爱代码爱编程

目录 1. 为什么要有lambda表达式 2. lambda表达式 2.1 lambda表达式的基本写法 2.2 lambda表达式的语法      2.2.1. 捕捉列表 2.3 浅谈lambda表达式的原理: 1. 为什么要有lambda表达式 lambda表达式的由来:C++中的每一个语法的创建都一定是有有需求才提出并创建

epoll封装reactor原理剖析与代码实现_react epoll-爱代码爱编程

epoll封装reactor的原理与实现 前言reactor是什么?reactor模型三个重要组件与流程分析组件流程 将epoll封装成reactor事件驱动封装每一个连接sockfd变成ntyevent

为什么我们在写java 代码的时候一定要public static关键字的作用?_java方法为什么要携程public static-爱代码爱编程

为什么我们在写java 代码的时候一定要public static关键字的作用? 回答:有static修饰的成员属于类本身,没有static修饰的成员属于类的实例。 public class Main {     public static void main(String[] args) {         int a = 1;  

从0开始的c语言入门教程day2(完结,让你0基础两天学会c语言)_c语言可以两天学好吗-爱代码爱编程

一、循环结构 1、do while循环 do { //循环体 }while(表达式); //和while唯一的区别就是,先执行一次循环体,然后再判断表达式 //注意: 最后while 有一个分号 ; 2、f

c++多态_c 多态 为什么父类指针无法调用子类析构-爱代码爱编程

多态:是指有多种形态 多态有两大类: 1.静态多态:函数重载,运算符重载,复用函数名(编译阶段确定地址) 2.动态多态:子类和虚函数实现运行时的多态(运行阶段确定地址) 细分以下多态: 参数多态(函数模板和类模板)包含多态  (virtual)重载多态(重载多态是指函数名相同,但函数的参数个数或者类型不同的函数构成多态)强制

c++ 7:深拷贝和浅拷贝,,值类型,构造函数和拷贝构造函数,函数重载,移动构造函数和移动赋值函数_僵王值-爱代码爱编程

文章目录 1. 深拷贝和浅拷贝1.1 缺省拷贝构造函数1.2 空指针的空字符串1.3 怎么判断是否为内核资源?1.4 深拷贝构造函数1.5 为什么使用深拷贝构造函数? 2. 值类型2.1 值类型定义2.2

c和指针 第15章 输入/输出函数 15.9 未格式化的行i/o-爱代码爱编程

15.9 未格式化的行I/O     行I/O可以用两种方式执行---未格式化的和格式化的。这两种形式都用于操纵字符串。区别在于未格式化的I/O(unformatted line I/O)简单读取或写入字符串,而格式化的I/O则执行数组和其他变量在内部和外部表示形式之间的转换。本节将讨论未格式化的行I/O。     gets和puts函数家族用于操作字符串

c++:从零开始,万字模拟实现string(超详细)_c++ bit空间下 string-爱代码爱编程

前言:因为模拟实现string中途修修改改了很多代码,所以建议大家先复制总代码在自己的vs下,然后再来一步一步看 目录 第一步:将"hello world"赋值给自定义的string  第二步:打印出hello world在屏幕上 第三步:用下标可以修改字符串的任意字符 第四步:通过下标遍历string的每个字符 第五步:浅拷贝和深拷贝字符串

i 用c i 实现队列_如何用i对队列进行操作-爱代码爱编程

目录 一、队列的性质: 二、队列的结构: 三、代码实现 头文件: 功能函数: 一、队列的性质:        上次我们学习栈,了解到栈储存释放数据的方式是:先进后出        而队列与其相反,队列是:先进先出,后进后出。 二、队列的结构:        多个链表节点 + 头尾指针   (链表式队列)  

图解八道经典指针笔试题-爱代码爱编程

题目目录 第一题第二题第三题第四题第五题第六题第七题第八题 第一题 int main() { int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (in

判断文件是否为dicom文件_c++检查验证文件是dcm文件-爱代码爱编程

判断依据:根据DICOM前缀,长度为4个字节的字符串是否等于“DICM”来判断该文件是否属于DICOM文件 /判断目标文件是否为DICOM文件/ bool IsDicomFile(QString path) { //