欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

树莓派3b + Ubuntu mate 18.04 + ROS Melodic + 另一台主机ROS通信【下】

程序员文章站 2022-07-07 13:05:59
时间:20200924文章目录一、参考资料二、前言三、树莓派 ROS 与其他机器 ROS 通信流程四、后记一、参考资料ROS Wiki 多机通信二、前言在上篇文章中,树莓派3b+ 和 ubuntu mate 18.04 以及 ros melodic 都已配置完毕,如果这一步没有完成,请参考上篇内容。上篇我这里使用的主机是台式机单ubunntu 18.04系统,ROS版本melodic。树莓派是3b+,ubuntu mate 18.04 + ros melodic本文主要目的是为了弄明....
  • 时间:20200924

一、参考资料

  1. ROS Wiki 多机通信

二、前言

  • 在上篇文章中,树莓派3b+ 和 ubuntu mate 18.04 以及 ros melodic 都已配置完毕,如果这一步没有完成,请参考上篇内容。上篇
  • 我这里使用的主机是台式机单ubunntu 18.04系统,ROS版本melodic。树莓派是3b+,ubuntu mate 18.04 + ros melodic
  • 本文主要目的是为了弄明白,主机ROS和树莓派ROS之间互相通信的工作流程。

三、树莓派 ROS 与其他机器 ROS 通信流程

  1. 双方安装 Chrony 和 ssh

    sudo apt-get install chrony
    sudo apt-get install openssh-server
    ps -e|grep ssh
    

    最后的命令输出中出现 sshd 说明 ssh 已启动,若未启动,运行下面命令。

    sudo/etc/init.d/ssh restart
    
  2. 主机和树莓派中,修改host文件,添加虚拟机和树莓派的 IP 地址和域名。地址和域名之间一定要用 Tab 键,ip可用ifconfig查看。

    sudo gedit /etc/hosts #主机中
    #添加下面的
    xx.xx.xx.xx  主机名
    xx.xx.xx.xx  树莓派名
    sudo pluma /etc/hosts #树莓派中
    #添加下面的
    xx.xx.xx.xx  主机名
    xx.xx.xx.xx  树莓派名
    
  3. 检测网络是否畅通,两边都能Ping通,并且有数据传输就没问题。

    # ----- 主机中 -----#
    ssh 主机名
    ping 树莓派名
    # ---- 树莓派中 ----#
    ssh 树莓派名
    ping 主机名
    
  4. 分别在你的主机和树莓派上运行一下roscore,着重记录下面的内容

    # ---- 主机 ----#
    process[master]: started with pid [29110]
    ROS_MASTER_URI=http://主机名:11311/
    # ---- 树梅派 ----#
    process[master]: started with pid [2995]
    ROS_MASTER_URI=http://树梅派名:11311/
    
  5. 设置ROS主节点master的位置,到这里,网络畅通,需要设置ros master运行在哪一台机器上,我们先尝试让主节点在树梅派上,然后主机上运行其他节点看看效果。在台式机中的添加环境变量,bash和zsh修改对应的文件,我这里是zsh,修改后保存。

    sudo gedit ~/.zshrc
    export ROS_HOST_NAME=树梅派名
    export ROS_MASTER_URI=http://树梅派名:11311/
    

    在树梅派上打开roscore,回到台式机新开命令行,查看话题列表,看到已经能够接收

    rostopic list
    #输出
    /rosout
    /rosout_agg
    

    尝试在树梅派上运行海龟仿真节点,然后在主机运行键盘控制节点,成功在主机控制了树梅派上的海龟运动,这里用树梅派做主节点的流程就走通了。

  6. 利用主机做主节点,步骤类似,只不过这次需要修改的是树梅派的环境变量。

四、后记

  1. 在更换网络环境测试时,树梅派出现了诡异的不能连接网络的情况,具体现象是能够搜索到网络的SSID,点击后一直在连接,wifi图标闪烁,但就是连不上网,用这个方法解决了,链接,步骤简要记录如下

    cd /etc/netplan
    sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml.bak
    sudo pluma 01-network-manager-all.yaml
    #----------------------#修改文件
        # Let NetworkManager manage all devices on this system
        network:
          version: 2
          renderer: NetworkManager
          # below are WiFi info
          wifis:
            wlan0:
              optional: true
              access-points:
                "MyWiFi":
                  password: "my_password"
              dhcp4: true
    sudo netplan --debug try
    sudo netplan --debug generate
    sudo netplan --debug apply
    sudo shutdown -r now
    sudo iw dev wlan0 scan | grep SSID #扫描SSID
    

本文地址:https://blog.csdn.net/sinat_25923849/article/details/108772139