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

    rclc_support_init(&support, 0, NULL, &allocator)函数需要初始化很久

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    fishbot 主控板 misroros 启动
    3
    3
    319
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 3
      溪雨
      最后由 编辑

      1.rclc_support_init(&support, 0, NULL, &allocator)函数需要初始化很久如图1,大约10秒。可是我在ubuntu22.04,humble版本的ROS2环境中启动micro ROS agent后再复位单片机,rclc_support_init的初始化就很快。在以前都不是这样子的,以前的现象是无论有没有在ubuntu上开启micro ROS agent,单片机都是快速执行。无需在 rclc_support_init ()等待很久
      cd335d65-7ba4-48ff-a85a-256898d1a5a7-Image.png 0b04a6c1-68aa-4739-aa3e-e6e9a322bb74-Image.png

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

        rclc_support_init 是 micro-ROS 中的一个函数,用于初始化 micro-ROS 客户端库(RCLC)的支持层。当这个函数执行时间异常长时,可能是由多种原因造成的。以下是一些建议的排查步骤:

        1. 网络问题:

          • 如果没有启动 micro ROS agent,初始化可能需要等待网络超时。启动 agent 后,初始化可能能更快地找到代理并建立连接。
          • 检查单片机的网络连接,确保它没有被阻塞或延迟。
        2. 资源限制:

          • 检查单片机的 CPU 和内存使用情况,确保有足够的资源来快速执行初始化。
          • 如果初始化时正在执行其他高负载任务,可能会导致初始化延迟。
        3. 代理配置:

          • 如果在启动 agent 时使用了特定的配置或参数,可能会影响客户端的初始化时间。
          • 尝试使用默认配置启动 agent,看是否可以更快地初始化。
        4. 代码更改:

          • 如果你最近对 micro-ROS 客户端或相关代码进行了更改,这可能会导致初始化时间的变化。
          • 尝试回退到以前的代码版本,看看是否可以解决问题。
        5. 依赖库:

          • 确保所有依赖的库都是最新版本,并且与 micro-ROS 兼容。
          • 有时,依赖库的版本冲突或过时版本可能会导致性能问题。
        6. 日志和调试:

          • 在初始化过程中添加更多的日志输出,以查看在哪个阶段发生了延迟。
          • 使用调试工具(如 GDB)来跟踪代码执行并找出可能的瓶颈。
        7. 硬件问题:

          • 检查单片机的硬件连接和状态,确保没有问题。
          • 尝试在另一个单片机上运行相同的代码,看看是否仍然存在问题。
        8. ROS 2 配置:

          • 检查 ROS 2 的配置文件(如 settings.yaml),确保没有不正确的配置导致初始化延迟。
          • 尝试使用默认配置或不同的配置来查看是否影响初始化时间。
        9. 网络堆栈和中间件:

          • 如果你的单片机使用了特定的网络堆栈或中间件(如 DDS-XRCE 或其他微 ROS 传输),请确保它们是最新的并且配置正确。
        10. 环境变量和参数:

          • 检查是否设置了任何可能影响 micro-ROS 行为的环境变量或参数。
        11. ROS 2 版本:

          • 如果你最近升级了 ROS 2 的版本,新版本的某些更改可能会导致与旧代码的兼容性问题或性能下降。
        12. 清理和重建:

          • 有时,旧的构建文件或中间文件可能会导致问题。尝试清理构建环境并重新构建项目。

        最后,如果上述步骤都不能解决问题,你可能需要更深入地研究 micro-ROS 的内部实现或查看其文档和社区以获取更多帮助。


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

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

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

          @3258221348

          因为用串口协议,所以不要再用串口打印了,可能是冲突导致的


          https://fishros.org.cn/forum/topic/151/提问前必看-不符合要求的问题拒绝回答

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

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