鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ubuntu23.10一键安装humble和microros agent,无法与fishbot开发板通信

    已定时 已固定 已锁定 已移动
    MicroROS
    ros2 fishbot 主控板 microrosagent
    2
    3
    899
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 15649041041
      月下古人本不聪明
      最后由 编辑

      背景:
      购买fishbot后,想利用树莓派5作为上位机与fishbot开发板进行串口或wifi等通信,方便后续开发。
      环境:树莓派5 ubuntu23.10 一键安装docker+Ros 2 humble,docker中安装microros agent。
      问题描述:当前Ros2能成功启动小乌龟,但是无法利用Microros agent与fishbot开发板通信。
      尝试的方法有
      1.《动手学ROS2》4.2的命令 sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev /dev/ttyUSB0 -v6
      失败,我理解是该容器与ROS2的容器非一个容器无法通讯
      2.于是在ROS2的容器中安装microros agent源码,启动源码加串口通讯,但是一直报错Serial not found
      5eaa430f-360d-40f6-943a-3e77a0ee28b7-image.png 代码使用的是控制LED的代码

      3.2步骤中将串口改为wifi通讯依旧连接不上,其中代码在虚拟机ros2可以成功通信,所以理解还是树莓派的docker中无法与外网通信导致
      f96a87dd-d78d-4b2b-8685-3ea22d0aaae6-image.png
      代码为

      #include <Arduino.h>
      #include <micro_ros_platformio.h>
      #include <WiFi.h>
      #include <rcl/rcl.h>
      #include <rclc/rclc.h>
      #include <rclc/executor.h>
      
      rclc_executor_t executor;
      rclc_support_t support;
      rcl_allocator_t allocator;
      rcl_node_t node;
      
      void setup()
      {
        Serial.begin(115200);
        // 设置通过WIFI进行MicroROS通信
        IPAddress agent_ip;
        agent_ip.fromString("192.168.1.9");
        // 设置wifi名称,密码,电脑IP,端口号
        set_microros_wifi_transports("CMCC-ft3c", "exh6j9ud", agent_ip, 8888);
        // 延时时一段时间,等待设置完成
        delay(2000);
        // 初始化内存分配器
        allocator = rcl_get_default_allocator();
        // 创建初始化选项
        rclc_support_init(&support, 0, NULL, &allocator);
        // 创建节点 microros_wifi
        rclc_node_init_default(&node, "microros_wifi", "", &support);
        // 创建执行器
        rclc_executor_init(&executor, &support.context, 1, &allocator);
      }
      
      void loop()
      {
        delay(100);
        // 循环处理数据
        rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100));
      }
      

      万分感谢

      1 条回复 最后回复 回复 引用 0
      • 15649041041
        月下古人本不聪明
        最后由 编辑

        还请各位大佬帮忙解决一下,docker容器创建时将网络设置从bridge改成Host也有尝试,但是未能成功。该问题困扰了快半个月了,很希望能将树莓派5与fishbot开发板进行通讯,谢谢

        小鱼小 1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @1564904104
          最后由 编辑

          @1564904104 不知道ubuntu24.04 树莓派能不能用,如果可以,建议更换长期支持版本。

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          1 条回复 最后回复 回复 引用 0
          • 第一个帖子
            最后一个帖子
          皖ICP备16016415号-7
          Powered by NodeBB | 鱼香ROS