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

    拓展3:FishBot 树莓派配置建图导航

    已定时 已固定 已锁定 已移动
    FishBot二驱机器人
    fishbot 建图导航
    12
    49
    5.8k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬
      最后由 编辑

      之前在快速上手教程中,建图是通过Docker镜像提供的选项来完成的,镜像是封装了Cartographer 的纯雷达建图算法,而本教程提供在树莓派或者其他类似板子系统中结合FishBot底盘完成建图和导航的方法。

      在开始本步骤前请先完成拓展1和拓展2,完成雷达的驱动和底盘的驱动。

      一、第一步安装依赖,下载代码

      树莓派上安装Ubuntu22.04 系统,安装ROS 2-Humble,接着安装依赖

      sudo apt install ros-humble-nav2-bringup
      

      然后下载代码和编译

      git clone https://github.com/fishros/fishbot.git -b v1.0.0 --depth=1
      cd fishbot
      colcon build
      

      二、运行TF转换Launch-Bringup

      source install/setup.bash
      ros2 launch fishbot_bringup fishbot_bringup.launch.py
      

      三、运行建图

      ros2 launch slam_toolbox online_async_launch.py 
      

      此时就可以遥控机器人建图

      ros2 run teleop_twist_keyboard teleop_twist_keyboard
      

      建完图就可以保存,我们需要使用一个叫做nav2_map_server的工具。

      安装nav2_map_server

      sudo apt install ros-$ROS_DISTRO-nav2-map-server
      

      保存地图

      ros2 run nav2_map_server map_saver_cli --help
      

      可以看到有下面的用法

      Usage:
        map_saver_cli [arguments] [--ros-args ROS remapping args]
      
      Arguments:
        -h/--help
        -t <map_topic>
        -f <mapname>
        --occ <threshold_occupied>
        --free <threshold_free>
        --fmt <image_format>
        --mode trinary(default)/scale/raw
      
      NOTE: --ros-args should be passed at the end of command line
      

      我们的地图话题为map,文件名字我们用fishbot_map,所以有下面这个这样写的命令行。

      ros2 run nav2_map_server map_saver_cli -t map -f fishbot_map
      

      接着我们就可以得到下面的两个文件

      .
      ├── fishbot_map.pgm
      └── fishbot_map.yaml
      
      0 directories, 2 files
      

      这两个文件就是对当前地图保存下来的文件,其中.pgm是地图的数据文件,.yaml后缀的是地图的描述文件。

      四、导航测试

      接着我们就可以启动导航了

      source install/setup.bash
      ros2 launch fishbot_navigation2 navigation2.launch.py
      

      cd974c01-2a03-4ffd-b020-9b89c4d52e2c-image.png

      启动后如上图所示,地图被正常加载出来了

      接着我们需要告诉nav2当前机器人在地图的哪个位置,点击Rviz2工具栏——2D Pose Estimate,然后在地图上点个目标点并选择方向

      接着你将看到全局代价地图以及被地代价地图以及激光在地图上都标记出来了

      786b085e-ba40-4199-b503-d784fdd176b9-image.png

      此时你可以使用rviz2的工具栏中的Nav2 Goal发送一个目标点,然后观察机器人运动即可。

      57bf4b02-cc2f-4908-93c0-51c52d6403e1-image.png

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

      1 条回复 最后回复 回复 引用 0
      • 小鱼小 小鱼 在 中 引用了 这个主题
      • 1544536831
        Bear
        最后由 154453683 编辑

        小鱼,麻烦帮看看
        我ubuntu环境,第三步运行结果如图:
        69bbffde-da75-40dd-8b1d-bf0a8b5aa195-image.png
        这种是预期结果吗?
        因为没弹出rviz2,我单独再打开rviz2也看不到地图;
        话题 /scan /map /tf 都是有的
        如果这种状态尝试保存地图会出错
        861f4b47-3dea-4998-9a11-acaf78858145-image.png
        补充一点:雷达使用的是拓展1中的有线模式
        rviz2中,map插件状态提示: no map received

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

          @154453683 在 拓展3:FishBot 树莓派配置建图导航 中说:

          因为没弹出rviz2,我单独再打开rviz2也看不到地图;

          应该是Qos没有设置好,重新尝试下

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

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

            @小鱼 搞定了谢谢,我电脑重启重走了一遍流程就好了
            估计是哪里疏忽了
            中文互联网最牛逼的ros2教程

            1 条回复 最后回复 回复 引用 0
            • 19046881381
              1904688138
              最后由 编辑

              请教一下在ssh里想要打开rviz2在远程控制屏幕的命令应该怎么写,
              尝试用Xmanager打开配置助手但是在xhost命令在执行之后终端一点返回没有

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

                @1904688138 这个很麻烦,而且带宽堪忧,最好的办法是利用ros2的局域网自动发现,直接用本机的rviz2看远程数据

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

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

                  @小鱼 ros连接的那个机器显示有点不太一样,有没有什么好办法

                  1 条回复 最后回复 回复 引用 0
                  • S
                    slxzj1990
                    最后由 编辑

                    这个教程支持树莓派上的galactic版本么?

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

                      @slxzj1990 没有测试过,理论上问题不大

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

                      1 条回复 最后回复 回复 引用 0
                      • 5929761895
                        小布丁大魔王
                        最后由 编辑

                        鱼哥,建图如果要用IMU,这个IMU应该是需要标定的吧,标定的教程有么?@小鱼

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

                          @592976189 暂时没有哈

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

                          1 条回复 最后回复 回复 引用 0
                          • 5152617255
                            空无之时
                            最后由 编辑

                            鱼哥,第二步说这个包有问题7a7a89beac738564579cd6dabbbd5b5.jpg

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

                              @515261725 sudo apt install ros-$ROS_DISTRO-joint-state-publisher

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

                              5152617255 2 条回复 最后回复 回复 引用 0
                              • 5152617255
                                空无之时 @小鱼
                                最后由 编辑

                                此回复已被删除!
                                1 条回复 最后回复 回复 引用 0
                                • 5152617255
                                  空无之时 @小鱼
                                  最后由 编辑

                                  @小鱼 这个命令还是这个报错,这个问题是pip版本太高了,回退就行了

                                  1 条回复 最后回复 回复 引用 0
                                  • 25241673162
                                    今朝
                                    最后由 编辑

                                    鱼哥,我雷达和主控板都是通过串口与树莓派进行通信的,前几步都没问题,但是我运行ros2 launch slam_toolbox online_async_launch.py就一直出现这个问题,换成cartograph建图也是报错,能出现map,但是不是实时更新c9152abb-f68b-436e-a328-bd8e834b0f22-image.png

                                    25241673162 1 条回复 最后回复 回复 引用 0
                                    • 25241673162
                                      今朝 @2524167316
                                      最后由 编辑

                                      @2524167316 862eb1be-1efa-44b9-a6b1-8f723c04de59-image.png 出现的map是这样的,不能实时更新,不知道哪里出来问题

                                      25241673162 小鱼小 2 条回复 最后回复 回复 引用 0
                                      • 25241673162
                                        今朝 @2524167316
                                        最后由 编辑

                                        @2524167316 7aea7dda-b152-49e9-bf50-3d691a661efc-image.png 雷达能正常运行,但是死活就是不能建图

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

                                          @2524167316 这个看起来是正常的,不出图检查下各个话题是否正常。另外告知下固件版本类型。

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

                                          25241673162 1 条回复 最后回复 回复 引用 0
                                          • 25241673162
                                            今朝 @小鱼
                                            最后由 编辑

                                            @小鱼 [async_slam_toolbox_node-1] [INFO] [1714996759.771290017] [slam_toolbox]: Message Filter dropping message: frame 'laser_frame' at time 1714996759.626 for reason 'discarding message because the queue is full'
                                            我现在是用树莓派当上位机通过串口与主控板和雷达驱动板通信,树莓派用的是4b的,没有固件库,因为我没用wifi通信,一直报上面的错误

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