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

    fishbot机器人ROS2编队开发问题

    已定时 已固定 已锁定 已移动
    FishBot二驱机器人
    fishbot机器人编队 esp32 ros2 humble
    3
    7
    362
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 2
      萌新
      最后由 编辑

      小鱼,我最近在做机器人编队,要用摇杆控制fishbot小车前进方向,但是小车之间收发信号好像一直没调通,这个该怎么做呀(具体的话就是我在主车发布里程计和imu的数据,让跟随的小车通过tf坐标变换实现跟随,但是只在模拟的时候成功了,放到实际的小车上调不通,也没有imu的话题),在esp32里可以结合之前案例里的例子吗,我想结合但该怎么实现呀😢 😳 😆

      185f77ff-5c86-462d-9004-16290d087b00-image.png
      具体程序的话跟随的前半部分是这样的

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        针对您描述的fishbot机器人ROS2编队开发问题,我们可以从几个方面来分析和解决:

        1. 确保ROS2网络通信

        首先,确保ROS2网络在您的实际硬件上能够正常工作。这包括:

        • ROS2节点发现:确保所有机器人(主车和跟随车)都能相互发现节点。可以使用ros2 node list来查看当前所有活动的节点。
        • 话题订阅与发布:确认主车是否成功发布了里程计(/odom)和IMU(如/imu)数据,以及跟随车是否成功订阅了这些话题。可以使用ros2 topic list查看所有话题,使用ros2 topic echo /topic_name来查看特定话题的数据。

        2. 检查IMU数据

        如果IMU话题在实际硬件上不存在,可能的原因有:

        • 硬件连接问题:确保IMU传感器已正确连接到ESP32或其他处理单元,并且该单元已正确配置以输出IMU数据。
        • 驱动程序和固件:检查ESP32上是否有支持IMU的驱动程序和固件。可能需要更新或重新配置这些组件。
        • ROS2节点配置:确保ROS2节点正确配置了IMU数据的读取和发布。

        3. 结合ESP32与ROS2

        在ESP32上结合ROS2通常涉及使用如micro_ros_arduino之类的库,但这通常用于较小的微控制器,ESP32由于其较高的处理能力,更常直接运行ROS2的某些组件或作为中间层。

        • 使用ROS2组件:如果可能,直接在ESP32上运行ROS2组件(例如使用官方支持的ROS2 for ESP32或类似的解决方案)。
        • 中间件:如果直接在ESP32上运行ROS2不可行,可以使用MQTT、WebSocket或其他轻量级协议作为中间层来传输数据。ESP32可以作为客户端,发送IMU和里程计数据到ROS2网络中的一个节点,该节点再将这些数据发布为ROS2话题。

        4. 调试和日志

        • 增加日志:在ROS2节点和ESP32代码中增加详细的日志记录,以便在出现问题时能够追踪。
        • 硬件连接测试:使用简单的测试程序来验证ESP32与IMU传感器之间的连接和通信是否正常。

        5. 示例代码

        对于ESP32与ROS2的结合,如果直接支持有限,可以考虑以下基本步骤:

        • ESP32端:读取IMU和里程计数据,通过MQTT或WebSocket发送到ROS2网络中的一个中间节点。
        • ROS2中间节点:订阅来自ESP32的数据,并将其转换为ROS2话题。
        • 跟随车ROS2节点:订阅这些话题,进行坐标变换和路径规划。

        6. 硬件和网络问题

        • 网络配置:确保所有机器人都连接到同一个网络,并且没有网络隔离或防火墙阻止ROS2通信。
        • 电源和稳定性:检查所有硬件的电源供应和稳定性,确保没有电源问题导致的数据传输中断。

        通过上述步骤,您应该能够逐步诊断并解决问题,使fishbot小车的编队功能在实际硬件上正常运行。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

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

          @2431039560 先选择一个通信方式,然后调通通信,获取到 imu odom 和 cmd_vel 话题

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

          2 1 条回复 最后回复 回复 引用 0
          • 2
            萌新 @小鱼
            最后由 编辑

            @小鱼 小鱼,这个项目可以用多协议控制器的板子吗,还是用二驱走UDP4也可以

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

              @2431039560 多协议板子设计用在大机器人上的,你搞小车走UDP4就可以了

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

              2 1 条回复 最后回复 回复 引用 0
              • 2
                萌新 @小鱼
                最后由 编辑

                @小鱼 emmm,我已经下单了,那用在大机器人上有哪些可以做开发的呢哈哈哈,有没有例程练练手的,等明年毕业了毕业设计走起
                就是小车编队现在是卡在香橙派上订阅者的节点总是不编译不成功,不是tf2、tf2_ros有问题就是buffer有问题,这些解决了又是图上的这个问题,,,mistake0.png
                电脑的话已经写好publisher和编队节点,能够发布/leader/imu、/leader/odom、/cmd_vel的命令了,/cmd_vel我是写了一个模拟摇杆的程序接到/cmd_vel上的,但是因为香橙派的订阅者还不能编译成功所以就没往下进行了

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

                  @2431039560 我估计是版本问题

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

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