前言
接上一篇教程,当用户可以成功运用RSview显示点云后,开始考虑更多的需求。比如1台雷达向一个设备发送数据,1台雷达向多个设备发送数据。这就涉及到了如何设置雷达的单播、组播、广播。在本文中,不打算详细解释单播、组播、广播的含义,因为这些属于网络的基础知识。本文将详细讲述如何设置雷达单播、组播、广播功能。
1 单播
所谓“单播”,就是雷达与目标设备之间点对点的传输数据。单播就好比雷达在给目标设备写信。信封上有雷达自己的IP地址,同时也有目标设备的地址。并且这封信只能被指定的目标设备接收,不能被其他设备接收。这里面就涉及到了雷达的两个基本概念:源IP地址和目标IP地址。这两个地址均在雷达端设置。
当我们拿到Robosense M1,默认情况下雷达就是设置的单播。打开Wireshark可以看到报文如下:
此时从报文中可以明确的获得雷达的源地址和目的地址。source 表示源地址,destination表示目的地址。
那么假设电脑的IP地址设置的与目的IP地址不一致会怎样? 我们现在把电脑的IP设成192.168.1.103看看会发生什么现象?
结果,电脑依然可以正常接收到雷达的报文!这是怎么回事呢?因为在之前正确连接的基础上,雷达已经与电脑网卡的MAC地址绑定,因此即使现在更改了电脑的IP地址,wireshark依然可以接收到正确的报文。
我们此时将雷达断电重启看看会发生什么?
当雷达断电重启,它会去寻找配置成目的IP地址的设备,但是如果此时找不到这个地址,它就会发出求救信号(即ARP报文)在整个网络中广播。含义就是谁的IP是192.168.1.102呀,快来告诉我192.168.1.200。 当用户拿到一台雷达,不知道其目的地址时,就可以依据开机时雷达发送的ARP报文来找到目的地址。此时将电脑IP地址改成192.168.1.102,就可以正常接受到雷达的UDP报文了。
单播可以用在单台雷达与电脑直连的场景,也可以用于多台雷达向一个目标设备发送报文,此时只需要将雷达的源IP地址设置成同一网段不同的IP地址,而目标IP地址都设置成一个即可。
2 组播
有些用户可能有1台雷达给多台设备发送数据的需求。这里可以利用雷达的组播和广播功能。但是由于广播功能可能造成额外的带宽浪费。因此组播有了它的用武之地。组播的含义就是:凡是加入到组内的设备就可以收到雷达的数据。
将M1设置成组播功能非常简单。只需要保持雷达源地址不变,将目的IP地址设置成组播地址即可。组播地址从这个范围内选取即可:224.0.0.0-239.255.255.255。
我通过小工具将雷达的目的IP地址改成了 224.1.2.3,如下图所示:
那么如何验证电脑接受到了雷达的数据呢?我们采用RSview播放是否有点云显示即可。
我先按照单播的模式,直接设置RSview,看能否接收到点云?
点击OK后,无点云输出。
那么现在我采用组播设置,看能否输出点云。组播设置除了需要将雷达的目标IP地址设成组播地址外,还需要在电脑端进行设置,即将电脑的IP地址加入到该组群中:
在Group IP中,填入雷达的组播地址:224.1.2.3
在Host IP中,填入电脑的IP地址: 192.168.1.102
成功输出点云!由此可以判断组播生效了。
这时我有个疑问,目前我的电脑IP是192.168.1.102。 与雷达源IP地址192.168.1.200 是同一个网段的,如果我使用跨网段的IP地址,加入到组播中,是否依然可行呢?
当把电脑IP改成192.168.2.102, 子网掩码是255.255.255.0 ,发现按照同样设置无法出点云。
当把电脑IP改成192.168.2.102, 子网掩码改成255.255.0.0 , 按照同样设置可以出点云。但是其实这样的IP配置,就是在同一个网段。
如果需要1台雷达给多台电脑发送数据,只需要把雷达和电脑接在交换机上。然后多台电脑设置不同的IP地址,并且加入到组播地址中。这样就可以实现1台电脑给多台电脑发送数据。这种数据的转发发生在交换机内,不发生在雷达中。
3 广播
广播设置方法也是保持雷达源地址不变,将目的IP地址改成广播地址。比如将雷达的目的IP地址改成192.168.1.255 。这样雷达就会超网络中的192.168.1.X网段发送广播报文。只要是处于192.168.1.X网段中的设备均能收到该报文。
现在设置雷达目的IP地址为192.168.1.255.
电脑IP地址设置成 192.168.1.110 , RSview可以正常输出点云。
至此关于Robosense M1的 单播,组播,和广播设置就讲解完毕了。如果您有什么疑问或者看法,可以在文章下面留言。