文章目录

  • 前言
  • 一、最终效果
  • 二、分布式通信原理
  • 三、实现
  • 1、首先将电脑和nano板连接到一个局域网下
  • 2、设置环境变量
  • 四、在电脑上装ROS
  • 总结



前言

前一阵一直学c++ ,今天终于算学了个大概,把之前一段搞的分布式通信记录下。
ROS的版本:Melodic
板子:Jeson Nano 4GB
镜像:ubuntu 18.04

首先要在电脑上装ros才可以实现分布式通信,主要是为了在电脑上运行rviz,nano装小车上跑rviz有点耗算力。还没在电脑上装ROS的直接跳到第四步。


提示:以下是本篇文章正文内容,下面案例可供参考

一、最终效果

jetson nano 下载todesk_环境变量

jetson nano 下载todesk_IP_02


jetson nano 下载todesk_环境变量_03

二、分布式通信原理

ROS是一种分布式软件框架,节点之间通过松耦合的方式进行组合,在很多应用场景下,节点可以运行在不同的计算机平台上,通过Toopic、Service进行通信。但是"一山不容二虎",ROS中只允许存在一个Master,在多机系统中,Master只能运行在一台机器上,其他机器需要通过ssh的方式和Master取得联系。所以在多机ROS系统中,需要进行一些配置。

三、实现

1、首先将电脑和nano板连接到一个局域网下

我之前将电脑和nano板连路由器,发现信号一直不太好,容易连不上,就将电脑开热点给nano连,连接稳定。打开终端,输入ipconfig

jetson nano 下载todesk_分布式_04


无线局域网适配器是我们电脑开的热点,模拟出的ip网关,这里是192.168.137.1

然后nano板连上后,在nano版上ctrl +Alt +T 打开终端,输入ifconfig,找到wlan0,inet ,为自己连接的ip地址。

jetson nano 下载todesk_IP_05


我这里地址为192.168.137.196。为了省去用键盘显示器控制nano的麻烦,我直接设置使它一开机就能连上电脑热点,以便VNC远程控制。

参考如下

Jetson nano 通过 vnc 实现远程桌面控制(已在nano实现) 能够实现两机ping通即可进行下一步。

jetson nano 下载todesk_环境变量_06

2、设置环境变量

设置主机从机,我们之后用nano板控制小车,所以将nano设为主机,电脑设为从机。
bash是你的终端程序。就是给你提供这个基本文本输入输出之类功能的程序。
我们需要在~/.bashrc 中修改环境变量。以后每打开一个终端,都会执行这里面的程序。不仅仅是环境变量。

gedit ~/.bashrc

我们在最后添加,记得一定要在最后添加,先添加在前面很可能执行时被后面语句覆盖。我这里直接将IP写死,因为之前设置连电脑热点时设的静态IP,这里写死没有问题。当然也可以不写死,让nano自己获取当前ip。

export ROS_IP = 192.168.137.196
export ROS_HOSTNAME=$ROS_IP

jetson nano 下载todesk_分布式_07


因为系统中只能存在一个Master,所以从机电脑需要知道Master的位置,ROS Master的位置可以使用环境变量ROS_MASTER_URI进行定义,在电脑上我们找到环境变量。

右击开始->找到系统->高级系统设置->环境变量

或者直接搜 编辑系统环境变量

jetson nano 下载todesk_bash_08


找到后在系统变量里添加ROS_IP,和ROS_MASTER_URI就行,这里两个用户变量,系统变量两个位置都行,只不过用户变量是对自己生效,系统变量是对所有用户生效。

http://your ip :11311ROS默认主机端口号为11311

jetson nano 下载todesk_IP_09


之后应用就完成了。

四、在电脑上装ROS

官方教程 照着装就行。事先需要在C盘预留10g装ros的空间,

有一点,安装vs2019,安装vs2022也可以,我装的是2022,然后在安装的时候,勾选上C++桌面开发。

jetson nano 下载todesk_环境变量_10


然后操作的时候,在开始的最近添加找到这个,x64 Native…

jetson nano 下载todesk_windows_11


然后按照教程一步一步复制粘贴它写的程序语句就行。一段中好几句语句的不能复制一段一下执行。

然后推荐安装微软的终端,Terminal

教程里也有,也很好看。打开多个终端的时候,只要按+键就行。

最后添加ROS选项卡的时候,我这里vs2022的位置和教程不一样,找到位置修改一下就行。

jetson nano 下载todesk_分布式_12


最后一点:因为我C盘怕装不下vs2022,它有20多个g,我参照了这位大佬的方法,VS2019/VS2022移动安装位置/C盘瘦身的一个好方法,亲测有效,以软连接的方式将vs2022装到了F盘。


总结

其他在另外板子上实现分布式通信也是同理,看的教程一般都是两个树莓派上分布式通信,在这里电脑上也可以实现。