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

    STM32系列MICROROS环境配置(更新 使用cmake管理)

    已定时 已固定 已锁定 已移动
    MicroROS
    micro-ros microros
    8
    35
    30.6k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 24758873092
      Mona Darling @gwlove
      最后由 编辑

      @gwlove 截图啥的,或者来个日志啊

      1 条回复 最后回复 回复 引用 0
      • 24758873092 2475887309 在 中 引用了 这个主题
      • 3
        3598783181
        最后由 编辑

        @2475887309 大佬
        我烧录成功了,但是重新上电过后还是不行(用的stm32f407g-disc1)
        32ce0015-1820-4428-a79c-dabfa3ace79c-image.png
        b1cd1753-b612-49e6-98f7-2c38442bcdde-image.png

        24758873092 1 条回复 最后回复 回复 引用 0
        • 24758873092
          Mona Darling @3598783181
          最后由 编辑

          @3598783181 先启动agent,再链接stm32上电

          3 1 条回复 最后回复 回复 引用 0
          • 3
            3598783181 @2475887309
            最后由 编辑

            @2475887309 我试过了,也连接不上。真的要崩溃了

            24758873092 2 条回复 最后回复 回复 引用 0
            • 24758873092
              Mona Darling @3598783181
              最后由 编辑

              @3598783181 下午我给你一个固件烧录试试看

              3 1 条回复 最后回复 回复 引用 0
              • 24758873092
                Mona Darling @3598783181
                最后由 2475887309 编辑

                @3598783181 我刚刚按照流程重新生成了一个固件,emmm,我这边也是跟你一样的的情况,我也对比了我现在的工程流程,也没有多少差异,暂时没有找到问题所在,不过我现在工程是能够跑的,流程一样,是STM32断电,先启动linux的agent再给STM32上电连接串口(本工程用的是UART3作为上位机通信的接口),我把链接给你先试试能不能通信,如果能通信,那大概率是代码流程哪边有点问题,这个我后续再找一下原因(这个工程是半成品,有许多bug,只是验证通信功能的)

                通过网盘分享的文件:MicroROSF4_Cmake.rar
                链接: https://pan.baidu.com/s/15w_W3KOaqZTPafxBQEGAjQ?pwd=9pjv 提取码: 9pjv
                

                运行结果看下图
                f879660a-1bd4-4908-a189-3727844a17b3-992ea77f713dd7beee34a63c1db135a.png
                右侧会多出两个话题,rqt能看到节点图(如果你有imu的话)
                28b6da9d-73de-456c-b41b-b1e1554773f9-image.png

                3 1 条回复 最后回复 回复 引用 0
                • 24758873092 2475887309 在 中 引用了 这个主题
                • 3
                  3598783181 @2475887309
                  最后由 编辑

                  @2475887309 感谢!!!

                  1 条回复 最后回复 回复 引用 0
                  • 3
                    3598783181 @2475887309
                    最后由 编辑

                    @2475887309 在 STM32系列MICROROS环境配置(更新 使用cmake管理)

                    @2475887309 大佬,我用的是官网的做法去创建静态库的,然后我创建自定义消息接口的时候能成功导入头文件但是出现了一个问题

                    /home/xjl/STM32CubeIDE/workspace_1.19.0/microros1/Debug/../Core/Src/freertos.c:200:(.text.StartDefaultTask+0xa6): undefined reference to `rosidl_typesupport_c__get_message_type_support_handle__xjl__msg__WriteCommand'
                    
                    1 条回复 最后回复 回复 引用 0
                    • D
                      DedSecer
                      最后由 编辑

                      我看了这个重新连接的demo,试试在我自己的stm32上跑了一下,也是没有重连的效果。

                      我看了他大概的实现就是通过一个状态机,检测到ros agent连上的时候重新初始化节点和话题这些,检测到ros agent离线之后释放节点。

                      我通过debug发现程序总是在初始化节点那一步失败。

                      24758873092 1 条回复 最后回复 回复 引用 0
                      • 24758873092
                        Mona Darling @DedSecer
                        最后由 编辑

                        @DedSecer 是的,实现方式就是状态机,不过我感觉里面函数有些是有问题的,比如在连接前的pingpong函数,在第一次连接后断开,后序再检测的时候,不管怎么样,都是检测未链接(我已经重新拔插接口了,现阶段还没排查出是不是有其他原因导致的函数检测结果异常

                        1 条回复 最后回复 回复 引用 0
                        • Q
                          qianying79
                          最后由 编辑

                          请问楼主在生成generate_lib generic静态库时有没有遇到类似这样的报错呢?
                          我的系统是ubuntu22.04,交叉编译工具链arm-none-eabi-gcc 14.3.1版本,.cmake和.meta文件照抄你帖子里面的,只改成了m7架构

                          /projects/arm_ctrl/platforms/Micro-ROS/firmware/mcu_ws/uros/rcutils/src/time_unix.c:76:3: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
                          76 | clock_gettime(CLOCK_REALTIME, &timespec_now);
                          | ^~~~~~~~~~~~~
                          gmake[2]: *** [CMakeFiles/rcutils.dir/build.make:421: CMakeFiles/rcutils.dir/src/time_unix.c.obj] Error 1

                          Failed <<< rcutils [3.66s, exited with code 2]
                          Aborted <<< microcdr [3.63s]
                          Aborted <<< ros2trace [1.86s]
                          Aborted <<< rosidl_parser [0.33s]
                          Aborted <<< tracetools_test [0.38s]
                          Aborted <<< libyaml_vendor [7.35s]

                          Summary: 9 packages finished [8.96s]
                          1 package failed: rcutils
                          5 packages aborted: libyaml_vendor microcdr ros2trace rosidl_parser tracetools_test
                          2 packages had stderr output: libyaml_vendor rcutils
                          52 packages not processed
                          [ros2run]: Process exited with failure 2

                          1 条回复 最后回复 回复 引用 0
                          • 2
                            202305060223
                            最后由 编辑

                            60ed7878-c01a-4a6c-9a00-861e3fd02081-image.png
                            佬,为什么出现的是一直重连,我按照你工程对着改的,要崩溃了

                            2 1 条回复 最后回复 回复 引用 0
                            • 2
                              202305060223 @202305060223
                              最后由 编辑

                              @202305060223 我用的是串口传输数据

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