小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
[FishBot教程] 9.0.3. 主控板固件烧录与配置
-
9.0.3. 主控板固件烧录与配置
你好,我是小鱼,上一节我们安装好了配置助手,本节我们尝试使用配置助手进行固件的烧录。
注意:Linux系统ping通FishBot并不代表就能连接成功,是否连接成功可以参考FishBot屏幕上的显示信息。
本节以及后面的教程需要在Ubuntu22.04(虚拟机不稳定以及网络链接长,所以更推荐Ubuntu实体机)+ROS2Humble环境下完成,未准备好环境的请先按照此教程安装Ubuntu22.04+ROS2Humble。- ROS2开发环境搭建之安装虚拟机和Ubuntu (已安装实体机ubuntu的可跳过)
- 在Ubuntu中安装ROS2
一、接入设备
首先将主控板通过一根USBA转TypeC接口的数据线(由于市面上有些数据线只能供电无法传输数据,所以请确保您使用的数据线有数据传输能力)接入电脑,接着运行配置助手(如果是虚拟机需要将设备连接到虚拟机)。
接着你应该可以看到如下界面。
选择设备类型为FishBot二驱主控板(部分老版本配置助手可能会显示为FishBot运动控制板)
注意观察设备端口部分,Linux下显示是 /dev/ttyUSB* (表示数字),Windows下显示是 COM (*表示数字)。
如果没有设备端口号请确认设备是否正常接入系统,Linux 可以使用
ls /dev/ttyUSB*
命令查看当前系统中的串口设备。友情提示:Linux- Ubuntu22.04上会出现无法识别设备或权限问题,请参考解决:
二、烧录固件
要烧录固件,第一步就是获取固件,配置助手默认会从网络上加载最新的固件,其他版本的FishBot相关固件获取地址都在这里:https://fishros.org.cn/forum/topic/368
我们使用默认的的固件,点击一键下载即可完成固件的烧录,观察下方日志部分的提示,即可查看烧录进度。
如遇到烧录失败,请到第四节查看常见问题,如还无法解决请发帖提问。
三、配置网络
下载完成后设备将自动重启,此时观察机器人上的显示器,确认机器人当前的microros模式为
udp_client
,如果不是可以双击BOOT按键快速进行切换。确认机器人当前的microros模式为udp_client后,点击重新扫描配置,你将看到当前机器人所支持的所有配置。
3.1 配置WIFI
原理介绍:
最近有小伙伴不知道为什么要配置网络,配置网络在配什么,这里给大家做个介绍。配置网络就是告诉FishBot可以通过哪个链路和Linux电脑进行数据交换,FIshBot就可以把传感器数据发给Linux系统,同时接收来自Linux系统的控制命令,小鱼特意做了一张图,给大家解释。
为了保证通讯的通畅,请尽量保证Linux系统和FishBot在同一个子网下(这样延迟最低)接着我们开始配置网络,我们需要配置wifi_ssid和wifi_pswd ,即wifi的名字和密码。
首先配置wif_ssid,小鱼这里wifi名称为oneKM,所以填写oneKM(此处请填写你当前环境的wifi名称),接着点击一键配置即可,配置成功下方会有提示。
同样的方式,你需要配置wifi_pswd为你的wifi密码。
3.2 配置MicroROS服务
机器人要想将数据通过网络分享给我们的计算机,那么在计算机上就需要一个程序来接收数据,所以我们要指定MicroROS服务的IP地址。
第一步是获取当前主机的IP地址
打开一个新的终端,输入ip -4 a | grep inet看看电脑的ip地址,一般可以看到多个网卡的,此时可以忽略172(docker)和127(本地)开头的ip地址,剩下的一般就是我们要的ip地址,比如小鱼这里的就是192.168.1.101
接着我们继续使用配置助手配置udpserver_ip。
配置完成后我们打开终端,启动MicroROS服务。
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
如果还不行,可以使用一键安装协助解决:https://fishros.org.cn/forum/topic/2743/一键安装上新-专治docker网络问题
接着点击设备选择栏重启设备按钮,或者手动点击RST重启。
正常你将看到终端不断有数据提示,表示正常通信上了
agent终端不要关闭,接着再次打开新的终端,输入
ros2 topic list
,fishbot相关话题就出来了四、常见问题
五、总结
本节主要介绍了如何使用配置助手完成FishBot底盘的配置,下一节我们将使用ros2相关的话题和工具,尝试使用机器人提供的各种接口。
-
-
-
@小鱼 在 [FishBot教程] 3. 主控板固件烧录与配置 中说:
虽然wifi连接成功了,但我们的计算机不一定在网络链路上就和fishbot能够打通,最简单的测试方式就是手动ping 一下fishbot的ip地址。
小鱼好,改为桥接之后,fishbot连接电脑开启的wifi后ping不通了,如何解决,已关闭物理机防火墙(之前用nat连接时虽然后续无法使用,但可以ping通)
-
@andrew_liumuran 检查小车和电脑所在的子网地址,很有可能两者并不在同一子网下
-
@小鱼
主机 :192.168.101.76 虚拟机:192.168.101.77 172.17.0.1
能相互通信小车和雷达直接连接的电脑热点,让设置让他们在同一个子网呢
-
@andrew_liumuran 我在自己电脑上尝试测试下,看看怎么才能虚拟机共享到windows的wifiIP
-
小鱼哥,Docker已经安装了,配置过了就是运行microROS时报引用格式不对
-
@1356882975 我也遇到这个问题,不过后面解决了,你要通过前面的那个工具安装一下ROS2的环境.
应该是这个原因:$ROS_DISTRO是一个环境变量,但是我们新装的系统里没有,所以得设置,装一下ROS2就自动帮我们设置了。 -
@845105035 谢谢你的指点,刚刚试了下您说的方法,重新安装了ROS,环境配置过了依然和上图中一样的,
-
@1356882975 你安装的是ros哪个版本,记得重启终端和软件哈,
主要是$ROS_DISTRO这个环境变量的问题实在不行就手动设置下
export ROS_DISTRO=humble
之后再运行试试 -
@小鱼 安装的ROS2-humble,小鱼哥,我来试试,谢谢!
-
为什么突然间又不能用了
-
为什么没有ROS2-humble版本的选项 -
ROS2-humble版本并不是一个正式的发行版本,而是一个开发版本,用于支持开发人员进行ROS2的开发和测试。它不支持生产环境,所以没有ROS2-humble版本的选项。
以上为生成回答,仅供参考~
-
@小伊 所以我要选择哪个版本安装比较好
-
如果你是在个人电脑上使用,建议你安装Windows 10家庭版,这是最新的版本,功能最为完善,安装起来也比较方便。如果你是在公司用户,建议你安装Windows 10企业版,这个版本专为企业用户设计,可以更好的满足企业用户的需求。
以上为生成回答,仅供参考~
-
@小伊 我要安装哪个版本的ros2比较好
-
ROS2最新的版本是Foxy Fitzroy,如果你想要安装最新的版本,那就安装Foxy Fitzroy吧。但是,如果你想要一个更稳定的版本,那么安装Dashing Diademata会更好。
以上为生成回答,仅供参考~
-
@小鱼 请问这个问题解决了吗,我也遇到了同样的问题
-
您好,这个问题已经解决了,您可以参考下面的解决方案:
- 尝试更新您的浏览器,以确保它是最新的版本。
- 清除浏览器缓存,以确保它不会影响您的网页浏览体验。
- 尝试更换浏览器,以查看是否有更好的网页浏览体验。
- 尝试重新安装浏览器,以确保它的正常运行。
如果以上方法都不起作用,建议您可以尝试联系浏览器的客服,以获取更多帮助。
以上为生成回答,仅供参考~
-
@小鱼 在 [FishBot教程] 3. 主控板固件烧录与配置 中说:
@andrew_liumuran 我在自己电脑上尝试测试下,看看怎么才能虚拟机共享到windows的wifiIP
请问这个问题解决了吗 ,我也是同样的问题 ,ros2是foxy版本 ,Ubuntu20.04