第9章9.0.3中,启动micro ros服务后无法监听到fishbot_motion_control节点消息
-
9.0.3章节,我在win11下使用wsl,也安装好docker了。
电脑usb连接了fishbot机器人,给主控板烧了v1.7.2alpha版本的固件,已经配置好wifi用户名、密码、sip(电脑windows系统中查询到的IP地址192.168.x.x)。使用下面的命令启动microROS服务的时候,微服务启动了,但小车没有信息传过来,8888端口也没有打印滚动消息,,,请问这个是怎么回事?是机器人上的sip地址设置不对,还是这个版本的固件中fishbot_motion_control节点没有启动,还是其他什么原因,请大佬能帮忙解答一下。
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
-
在解决您遇到的问题时,我们可以从以下几个方面进行排查和调试:
-
确认SIP地址配置正确:
- 您提到已经配置了SIP地址为您Windows系统的IP地址(192.168.x.x)。请确保这个IP地址是您的电脑在局域网内的实际IP地址,并且这个地址是可以被Fishbot机器人访问的。
- 检查防火墙设置,确保没有规则阻止Fishbot机器人与这个IP地址的通信。
-
检查固件版本和节点启动情况:
- 您提到使用的是v1.7.2alpha版本的固件。请确认这个版本是否支持
fishbot_motion_control
节点,并且该节点是否被正确配置和启动。您可以查看固件的文档或联系固件开发者获取这方面的信息。 - 如果可能,尝试使用其他版本的固件看是否能解决问题。
- 您提到使用的是v1.7.2alpha版本的固件。请确认这个版本是否支持
-
Micro-ROS Agent配置:
- 您使用的Micro-ROS Agent启动命令看起来是正确的,但是有几个地方可以进一步确认:
- 确保
$ROS_DISTRO
环境变量设置正确,它应该与您的ROS发行版相匹配(例如galactic
、foxy
等)。 - 检查Docker容器日志,看看是否有错误消息或警告。您可以通过
docker logs [container_id]
命令查看日志。
- 确保
- 确保UDP端口8888没有被其他应用占用。您可以使用
netstat -an | grep 8888
命令检查端口状态。
- 您使用的Micro-ROS Agent启动命令看起来是正确的,但是有几个地方可以进一步确认:
-
网络连接:
- 由于您使用的是WSL和Docker,确保WSL和Docker的网络配置允许与Fishbot机器人的通信。在WSL中,
--net=host
应该能让Docker容器直接使用宿主机的网络栈,这通常意味着它应该能直接访问局域网内的其他设备。 - 尝试ping Fishbot机器人的IP地址,看看是否能够从您的电脑(通过WSL和Docker)成功通信。
- 由于您使用的是WSL和Docker,确保WSL和Docker的网络配置允许与Fishbot机器人的通信。在WSL中,
-
日志和调试信息:
- 如果Micro-ROS Agent没有打印任何滚动消息,这可能意味着它没有接收到任何数据。尝试增加日志级别,看看是否有更详细的输出可以帮助诊断问题。
- 检查Fishbot机器人的日志或状态,看看是否有关于通信或节点状态的错误信息。
-
硬件连接:
- 确保USB连接稳定,并且Fishbot机器人已经正确识别并连接到电脑。
如果以上步骤都不能解决问题,您可能需要更深入地检查固件代码或联系Fishbot的技术支持获取帮助。希望这些建议能帮助您解决问题!
以上为生成回答,仅供参考~
-
-
有哪位大佬使用WSL的,遇到过这样的问题吗?
这两天一直折腾这个问题,我感觉应该是用了wsl的原因,但就是不知道怎么解决?
1,起docker微服务是在wsl->ubuntu22.04中起的,docker微服务监听的是ubuntu的某个ip地址的8888端口;
2,但机器人小车上的sip设置的是电脑windows系统的ip地址,和ubuntu系统的ip地址对应不上;说明:
1,我的电脑装虚拟机跑ubuntu很卡,就用了wsl,按照小鱼老师的教程视频1.2.3.1做的。
2,根据教程视频9.0.3的指导,小车的sip配置的是windows系统的IP地址(192.168.xx.xx)。
3,wsl下ubuntu系统的172.20.xx.xx 这种地址和小车的ip地址(也是192.168.xx.xx)不在同一网段,把小车上的sip设置成172这种ip地址也无法通讯。 -
@carsonyang 是wsl网络原因