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

    从Github下载的四驱版源码和使用配置工具烧录的程序表现不一样

    已定时 已固定 已锁定 已移动
    移动机器人制作
    microros 四驱版
    3
    4
    266
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • K
      kenggua211
      最后由 编辑

      从Github下载编译的四驱代码无法正确发布odom话题,可以查看到节点正确创建,ros2 topic list 和 ros2 topic info 都可以显示到/odom话题有一个发布者,同时可以通过cmd_vel正确驱动机器人。
      但是ros2 topic hz /odom 和 ros2 topic echo /odom 都没有数据输出。(只修改了源代码WiFi配置相关的部分)
      但是使用fishbot_tool烧录的固件表现是正常的
      能力太菜没找到问题在哪里🤕 ,求大神指点🙏
      (因为需要自己添加额外功能,所以需要通过从源码编译)

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

        在遇到从源码编译的ROS 2节点无法正确发布/odom话题,但使用配置工具烧录的固件表现正常的情况时,你可以按照以下步骤进行排查和解决问题:

        1. 确认代码一致性:

          • 确保从GitHub下载的源码是完整且未经篡改的。有时候,下载过程中可能会出现文件缺失或损坏的情况。
          • 检查是否有其他分支或标签包含特定的修复或更新,这些可能是导致问题的原因。
        2. 编译环境:

          • 确保你的编译环境(如ROS 2版本、依赖库等)与官方推荐或文档描述的一致。
          • 清理并重新构建你的工作空间:
            colcon build --packages-select <your_package> --merge-install
            
          • 确认编译过程中没有错误或警告,特别是与/odom话题相关的部分。
        3. 运行配置:

          • 检查启动文件(如.launch.py或.bash脚本)和参数设置,确保它们正确无误,并且与官方或推荐的配置一致。
          • 确认在启动节点时,所有必要的参数和环境变量都已正确设置。
        4. 调试代码:

          • 在发布/odom话题的代码部分添加调试语句(如RCLCPP_INFO或std::cout),以确认代码是否执行到发布话题的部分。
          • 检查发布/odom话题的ROS 2节点是否在其他地方(如异常处理、条件判断等)被意外地跳过或阻止。
        5. 网络配置:

          • 既然你提到了修改了WiFi配置相关的部分,确保这些更改没有影响到ROS 2的网络通信。
          • 检查网络设置,确保ROS 2节点能够正确通信,特别是如果使用了多播或特定的网络接口。
        6. 比较固件:

          • 使用fishbot_tool烧录的固件与从源码编译的代码之间可能存在差异。尝试找出这些差异,特别是与/odom话题发布相关的部分。
          • 检查固件是否包含了额外的配置文件或脚本,这些可能在源码编译过程中被遗漏。
        7. 查看日志:

          • 使用ros2 node info /your_node_name查看节点的详细信息,包括其发布的主题和服务。
          • 查看ROS 2日志输出(使用ros2 log list和ros2 log show <logger_name>),寻找与/odom话题相关的错误信息或警告。
        8. 社区和文档:

          • 查阅ROS 2和相关硬件的官方文档,看看是否有关于/odom话题发布的特定指导或说明。
          • 在ROS 2社区论坛或GitHub问题跟踪器中搜索类似的问题和解决方案。
        9. 简化问题:

          • 尝试创建一个最小化的示例,只包含必要的代码来发布/odom话题,看看是否能成功运行。这有助于确定问题是否由代码中的其他部分引起。

        通过上述步骤,你应该能够逐步缩小问题的范围,并找到导致/odom话题无法正确发布的根本原因。如果问题依然存在,可能需要更深入地分析代码或寻求来自ROS 2社区或硬件制造商的帮助。


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

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

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

          @kenggua211 这里,替换一下

          cp .config/microros/colcon.meta .pio/libdeps/featheresp32/micro_ros_platformio/metas/colcon.meta
          rm -rf .pio/libdeps/featheresp32/micro_ros_platformio/libmicroros/
          pio run

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

          K 1 条回复 最后回复 回复 引用 0
          • K
            kenggua211 @小鱼
            最后由 编辑

            @小鱼 解决了,谢谢鱼总!😍

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