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

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

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

      @DedSecer 删掉其中一个定义即可,其实syscalls.c就看工程编译的时候是否报错,报错就把syscalls.c文件内容加上即可,这个是st官方模板的,现新版本的cubeide里面是会自动生成该文件的。

      1 条回复 最后回复 回复 引用 0
      • D
        DedSecer
        最后由 编辑

        @2475887309 感谢大佬,现在成功烧录进去了,上位机的程序也可以读到stm32发来的ros话题了。
        还有个问题想问一下就是为什么要先在上位机上打开agent再接上开发版。如果想要在任何时候打开agent都能读到话题应该怎么做?

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

          @DedSecer 这个就可能是agent这边或者固件那边的逻辑问题了,最近我也在解决这个问题,我参考了arduino 版本的microros 中有个demo是关于agent重连的,不过没实现我理想的功能😑 (我也没试过Arduino版本的重连demo是什么样的情况,因为每次重连,microros的api并没有正常返回我想要的数据),链接我这边给你,你也可以参考一下

          https://github.com/micro-ROS/micro_ros_arduino/tree/kilted/examples/micro-ros_reconnection_example

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

            @DedSecer 现在根据那个demo修改的代码我这边会出现的情况是,只要是上位机那边退出程序再打开程序,microros给的api ping的返回值结果还是未连接,不知道是不是我这边代码逻辑还是有问题啥的…你如果感兴趣也可以看一下,讨论一下😊

            D 1 条回复 最后回复 回复 引用 0
            • D
              DedSecer @2475887309
              最后由 编辑

              @2475887309 好,我这边研究一下

              1 条回复 最后回复 回复 引用 0
              • 2
                白衣思博
                最后由 编辑

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

                    ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/custom_memory_manager.c
                    ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_allocators.c
                    ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_time.c
                    ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_transports/dma_transport.c
                

                这四个文件没有怎么办😖

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

                  @2039235330 这几个文件在extera source里面

                  2 2 条回复 最后回复 回复 引用 0
                  • 2
                    白衣思博 @2475887309
                    最后由 编辑

                    @2475887309 好的好的,我找找,我可以在windows系统上的stm32开发环境中使用嘛,和jetson中的ros2连接😂

                    24758873092 1 条回复 最后回复 回复 引用 0
                    • 2
                      白衣思博 @2475887309
                      最后由 编辑

                      @2475887309 可是我没有找到extera source这个文件😧 佬,这是为什么

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

                        @2039235330 可以编译即可,这个系统不影响,只不过win可能麻烦一点(得有ros2环境,或者方便点就直接在Jetson上面去给stm32编译也行,通用的)

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

                          @2039235330 下面链接里面有https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/tree/kilted/extra_sources

                          1 条回复 最后回复 回复 引用 0
                          • 宇
                            宇文修
                            最后由 编辑

                            作者你好,我的ROS版本为Dashing,因为系统为ubuntu18.04,microROS最高支持到dashing。在按照你的教程执行到

                            ros2 run micro_ros_setup create_firmware_ws.sh generate_lib generic
                            

                            一步中,输出提示

                            Non valid RTOS/Platform: generate_lib/generic
                            Available platforms:
                            . freertos
                            +-- crazyflie21
                            +-- olimex-stm32-e407
                            . host
                            +-- generic
                            . nuttx
                            +-- olimex-stm32-e407
                            . raspbian
                            +-- generic
                            . zephyr
                            +-- discovery_l475_iot1
                            +-- olimex-stm32-e407
                            

                            看样子可能是因为dashing版本的microROS还不支持通用Lib编译。一开始我用的jazzy版本就没这个问题。请问怎么解决呢?单片机为STM32F407VGT6

                            24758873092 1 条回复 最后回复 回复 引用 0
                            • G
                              gwlove @2475887309
                              最后由 编辑

                              ros2 run micro_ros_setup build_firmware.sh $(pwd)/firmware/mcu_ws/toolchain.cmake $(pwd)/firmware/mcu_ws/colcon.meta
                              dalao, wozhegemeicidouyunxingbuguo,xianshifail

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

                                @宇文修 先确定dashing版本有没有支持microros agent功能包,如果支持你可以用其他的ros版本生成lib(不过这个我没试过),如果dashing版本不支持microros agent的话,就算生成了库文件也不一定能使用了

                                1 条回复 最后回复 回复 引用 0
                                • 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 下午我给你一个固件烧录试试看

                                          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

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