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

    [FishBot教程]9.0.4.使用ROS2键盘控制FishBot

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

      9.0.4.使用ROS2键盘控制FishBot并查看ODOM

      你好,我是小鱼,上一节我们完成了对FishBot主控板的配置,并成功接入了ROS2,本节我们尝试使用RVIZ2查看可视化里程计。

      一、启动FishBot

      第一步还是启动FishBot的电源,接着打开终端,运行McroRos服务

      sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
      

      如因为网络问题无法启动可以尝试国内指令:

      docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host registry.cn-hangzhou.aliyuncs.com/fishros/micro-ros-agent:humble udp4 --port 8888 -v6
      

      等待FishBot自动接入,如果长时未接入,可以手动点击RST重启,如还未接入,请回到上一节配置助手处重新配置。

      接入标志为,看到如下信息

      74f46c25-5ad2-404f-a011-4a94aefac74d-image.png

      二、 测试键盘控制

      打开终端,输入

      ros2 run teleop_twist_keyboard teleop_twist_keyboard
      

      14c9f87f-9422-47ab-9783-282648a4b214-image.png

      接着按x按键调节下线速度,降低到0.1左右,防止一下子太快飞出去。

      接着尝试点击j按钮,机器人将逆时针转动,点击k或者空格,机器人将停在原地。

      根据键盘提示,你可以尝试前进后退,左转右转等命令。

      be76cc1c-b4b6-4aae-88da-d8d695c2da5f-image.png

      三、里程计信息

      我们的小车是带编码器的,可以实时输出里程计数据,使用指令

      ros2 topic echo /odom --field pose.pose
      

      就可以看到实时的机器人位置信息。

      924275bf-45e9-4b21-a4b9-62ac929b1ee8-image.png

      四、使用rviz2可视化里程计数据

      打开终端输入rviz2,即可打开rviz2界面,接着完成下面四步。

      1. 修改fixedframe为odom
      2. 点击ADD
      3. 切换到By Topic,选择odom
      4. 点击OK按钮

      9ae779e1-56c7-429d-a434-6b0d02e15907-image.png

      接着我们需要修改下odom的订阅模式,展开odom话题,将Reliable修改为Best Effort。修改成功后右边将出现里程计箭头。

      7d026e0f-2aee-41cd-94a4-38d9fcf9a228-image.png

      此时控制小车移动,你将在rviz2中实时看到小车的轨迹,这个就是里程计。

      ec2cf271-7057-4be7-97f9-a4b9d3e78e7b-image.png

      sudo apt install ros-humble-rviz-imu-plugin

      五、总结

      上面这个轨迹就是所谓的里程计,是通过小车的运动学模型和轮子编码器计算出来的,不过它并不是十分的准确,而且无法感知深度信息,所以我们还需要雷达来进行深度的扫描,以此完成避障操作。

      下一节我们开始对雷达进行配置,接着完成手持雷达建图。

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

      A 19238250151 S 4 小 5 条回复 最后回复 回复 引用 0
      • 小鱼小 小鱼 在 中 引用了 这个主题
      • A
        曼森的林佳树甜甜甜 @小鱼
        最后由 编辑

        @小鱼 在 [FishBot教程]4.使用ROS2键盘控制FishBot 中说:

        docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6

        小鱼您好,运行该命令后报错如下,请问如何解决呢,谢谢!

        xxx@ros2:~$ docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
        [1674615891.330974] error    | UDPv4AgentLinux.cpp | init                     | bind error             | port: 8888, errno: 98
        Error while starting IPvX agent!
        [1674615891.331054] info     | UDPv4AgentLinux.cpp | fini                     | server stopped         | port: 8888
        
        小鱼小 8 2 条回复 最后回复 回复 引用 -1
        • 小鱼小
          小鱼 技术大佬 @andrew_liumuran
          最后由 编辑

          @andrew_liumuran 在 [FishBot教程]4.使用ROS2键盘控制FishBot 中说:

          bind error

          docker ps -a

          看看是不是多次启动了,端口被占用的感觉,另外指令前加个sudo

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

          A 1 2 条回复 最后回复 回复 引用 1
          • A
            曼森的林佳树甜甜甜 @小鱼
            最后由 编辑

            @小鱼

            感觉确实是端口占用的问题

            开启虚直接拟机接入小车,运行该指令 @小鱼 在 [FishBot教程]4.使用ROS2键盘控制FishBot 中说:

            docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6

            显示如下,并不显示接入标志

            xxx@ros2:~$ docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
            [1674702302.740615] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 8888
            [1674702302.741072] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 6
            

            可以运行 @小鱼 在 [FishBot教程]4.使用ROS2键盘控制FishBot 中说:

            ros2 run teleop_twist_keyboard teleop_twist_keyboard

            但只有调节速度相关按键可用,按前进后退等按键均无反映

            但运行配置助手后,

            xxx@ros2:~$ docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
            
            [1674703676.992115] error    | UDPv4AgentLinux.cpp | init                     | bind error             | port: 8888, errno: 98
            Error while starting IPvX agent!
            [1674703676.992205] info     | UDPv4AgentLinux.cpp | fini                     | server stopped         | port: 8888
            
            xxx@ros2:~$ docker ps -a
            CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS          PORTS     NAMES
            c7525ee0f5da   microros/micro-ros-agent:humble         "/bin/sh /micro-ros_…"   35 seconds ago   Up 34 seconds             frosty_golick
            29eb8984dce8   fishros2/fishbot-tool:v1.0.0.20230105   "python3 main.py"        54 seconds ago   Up 53 seconds             interesting_rosalind
            

            关闭配置助手 仍然报相同错误

            andrew@ros2:~$ docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
            [1674703892.270307] error    | UDPv4AgentLinux.cpp | init                     | bind error             | port: 8888, errno: 98
            Error while starting IPvX agent!
            [1674703892.270378] info     | UDPv4AgentLinux.cpp | fini                     | server stopped         | port: 8888
            andrew@ros2:~$ docker ps -a
            CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS         PORTS     NAMES
            c7525ee0f5da   microros/micro-ros-agent:humble   "/bin/sh /micro-ros_…"   3 minutes ago   Up 3 minutes             frosty_golick
            

            请问以上问题如何解决呢,谢谢!

            小鱼小 10320637471 2 条回复 最后回复 回复 引用 0
            • 小鱼小
              小鱼 技术大佬 @andrew_liumuran
              最后由 编辑

              @andrew_liumuran 在 [FishBot教程]4.使用ROS2键盘控制FishBot 中说:

              c7525ee0f5da microros/micro-ros-agent:humble "/bin/sh /micro-ros_…" 35 seconds ago Up 34 seconds frosty_golick

              要把这个删掉 docker stop frosty_golick后再试试

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

              A 1 条回复 最后回复 回复 引用 0
              • A
                曼森的林佳树甜甜甜 @小鱼
                最后由 编辑

                @小鱼
                谢谢,删除后binderror解决了!
                但是运行这行代码后,仍只有调节速度按键可用,小车仍不能运动,如何解决呢,谢谢小鱼!

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

                  @andrew_liumuran 删掉后要确认小车是否已经接入了,正常接入可以看到提示信息

                  97c2b614-a8c2-4c41-b846-2da0b54780a2-image.png

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

                  A 1 条回复 最后回复 回复 引用 0
                  • A
                    曼森的林佳树甜甜甜 @小鱼
                    最后由 编辑

                    @小鱼
                    多次尝试后仍然无法正常接入小车,运行指令只显示前两行

                    xxx@ros2:~$ docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
                    [1674702302.740615] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 8888
                    [1674702302.741072] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 6
                    

                    重新用配置注说配置小车,重启虚拟机和小车后仍均无法接入,只有前两行。
                    请问可能是哪里出现了问题,如何解决,谢谢!

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

                      @andrew_liumuran 第三节有问题,没有配置成功

                      https://fishros.org.cn/forum/topic/936

                      • 确认小车有正常接入wifi,可以看屏幕上的WIFI状态
                      • 确认小车的IP地址是否可以ping通,可以看屏幕确认小车IP

                      另外注意:目前仅支持2.4Gwifi,确认下WIFI的主频,如何是二合一的,请分开。
                      如果是台式机请尽量使用网线连接路由器,如果是笔记本,最好直接笔记本开热点给小车直接接入。

                      如果是虚拟机,请确定虚拟机的IP地址是局域网IP,也就是说虚拟机网络处于桥接状态。

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

                      28575891192 25805701382 2 条回复 最后回复 回复 引用 1
                      • 17388366851
                        冯子蕊是个仙女儿
                        最后由 编辑

                        @小鱼 鱼哥我出现这个问题怎么解决呢QQ图片20230302104727.jpg

                        17388366851 小鱼小 3 条回复 最后回复 回复 引用 0
                        • 17388366851
                          冯子蕊是个仙女儿 @1738836685
                          最后由 编辑

                          @小鱼 而且鱼哥我也是只有键盘控制线速度 第一次尝试J键小车可以运行 但是 第二次在恩就不i行了

                          1 条回复 最后回复 回复 引用 0
                          • 17388366851
                            冯子蕊是个仙女儿 @1738836685
                            最后由 编辑

                            @1738836685 鱼哥我的键盘可以控制 但是小车位置信息还是不能显示 就是我图片放的那个样子

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

                              @1738836685 发帖前记得看一下

                              @小鱼 在 提问前必看!一定要看!必须看一下! 中说:

                              问题一定要描述清楚,终端打印一定复制粘贴,方便回答者检索和引用(你可以在linux系统上打开浏览器进社区)

                              解决方法,去掉--field即可

                              ros2 topic echo /odom 
                              

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

                              17405804851 1 条回复 最后回复 回复 引用 0
                              • 9212037249
                                天地独鸣
                                最后由 编辑

                                鱼哥我转向可以,但是只前进后退就不行,是不是轮胎没有安装好的原因?因为掉了一个鸡米螺丝。

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

                                  @921203724 前进后退会怎么样,不走吗

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

                                  9212037249 2 条回复 最后回复 回复 引用 0
                                  • 9212037249
                                    天地独鸣
                                    最后由 编辑

                                    @小鱼 没错,前进后退不走

                                    1 条回复 最后回复 回复 引用 0
                                    • 9212037249
                                      天地独鸣 @小鱼
                                      最后由 编辑

                                      此回复已被删除!
                                      1 条回复 最后回复 回复 引用 0
                                      • 9212037249
                                        天地独鸣 @小鱼
                                        最后由 编辑

                                        @小鱼 螺丝没拧紧,刚才解决了,但是后来左右转又没反应了,只能前进后退了

                                        小鱼小 29180954962 2 条回复 最后回复 回复 引用 0
                                        • 小鱼小
                                          小鱼 技术大佬 @921203724
                                          最后由 编辑

                                          @921203724 确认下是不是指令没发下去,看看板子上的电压是否正常为12V左右

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

                                          1 条回复 最后回复 回复 引用 0
                                          • 22515813332
                                            静水流深 细水流长
                                            最后由 编辑

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