LCM多机通讯要点

本地LCM多节点通信

保证以下两点,就可以通信

  • 多节点的udp地址相同,比如程序中lcm::LCM lcm("udpm://239.255.76.67:7667?ttl=1");
  • 话题名称相同

同一局域网下多机通信

参考LCM通信库的安装及使用
其中重要的为每台机器A,B,C,…都使能UDP多播

  • Step1 查看网卡名称
    $ ifconfig #查看用于通讯的网卡设备名字
    
    我的电脑是这样,用的是有线网络,那就是eno2
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:d8:61:a4:9e:85 brd ff:ff:ff:ff:ff:ff
        inet 10.1.1.140/24 brd 10.1.1.255 scope global noprefixroute eno2
           valid_lft forever preferred_lft forever
        inet6 fd00:3c6a:4854:3f3::1000/128 scope global dynamic noprefixroute 
           valid_lft 76819sec preferred_lft 76819sec
        inet6 fd00:3c6a:4854:3f3:e87b:4245:de46:e7e6/64 scope global temporary dynamic 
           valid_lft 85971sec preferred_lft 13971sec
        inet6 fd00:3c6a:4854:3f3:6e3e:2e18:d8d2:a888/64 scope global dynamic mngtmpaddr noprefixroute 
           valid_lft 85971sec preferred_lft 13971sec
        inet6 fe80::6c21:fd94:436e:bc7a/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    
  • Step2 运行下面两条命令来显式使能 UDP 多播和添加路由表
    sudo ifconfig eno2 multicast
    sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eno2
    
  • Step3 为其他需要通讯的电脑也执行Step1~2,然后多机就可以通讯了!

重要

  1. 每次重启后体添加的路由会失效,建议写一个bash脚本,每次都运行一下Step2的route设置
  2. 使用ntp对多台主机进行时间,可以增加lcm时间戳同步性。 参考主从机时间同步

其他细节

在进行多设备通讯时,需要将ttl设置为大于0的值,LCM默认ttl=0,默认只在本地回环进行通讯。同时,需要target IP 设定为支持组播(Multicast)的IP 分段:(224.0.0.0-239.255.255.255)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值