小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
跟着教程尝试连接wifi,启动agent后发现未连上
-
跟着《动手学ros2》教程学到wifi这一节时
(https://fishros.com/d2lros2/#/humble/chapt14/advance/3.无线通讯-了解传输原理 )跟着步骤新建工程,
在.init设置board_microros_transport = wifi,
添加了micro_ros_platformio依赖,
复制粘贴教程中的代码并修改了ip地址、wifi名称、wifi密码,
编译时有两处黄色warning,src/main.cpp: In function 'void setup()': src/main.cpp:20:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] set_microros_wifi_transports("2201", "13958855067", agent_ip, 8888); ^ src/main.cpp:20:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
/home/hengte/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c: In function 'uartSetPins': /home/hengte/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:153:9: warning: 'return' with no value, in function returning non-void return; ^~~~~~ /home/hengte/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:149:6: note: declared here bool uartSetPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t rtsPin)
啥也没动再次编译就没有黄色警告了,
下载代码后在终端启动agentdocker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
返回两行
[1712477096.644131] info | UDPv4AgentLinux.cpp | init | running... | port: 8888 [1712477096.644536] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
在另一终端启动ros2 node list,发现没有形成“/microros_wifi”节点,情况如图:
按板子上的RST键后重试agent和ros2 node list,没有发生变化。
请问大家是哪一步出错了补充信息:
虚拟机是Ubuntu22.04,安装的ros2 Humble,连接的主控板为推荐的学习板esp32
wifi名称和密码用其他设备测试过并没有输错 -
@hunterlin1102 感觉是ip问题,首先看虚拟机的ip和fishbot的ip是否在同一个子网下,比如你可以用手机连接这个wifi,查看手机的ip地址,确认地址是否争取而,第二可以参考fishbot的源码,里面有获取fishbot的ip的方法,尝试打印出来看看。
-
@小鱼 已解决!确实是ip不在同一子网下的问题,感谢指点!
-
@hunterlin1102 客气了,很高兴可以帮到你,你的提问很详细,符合我们社区的提问规范:https://fishros.org.cn/forum/topic/151/提问前必看-不符合要求的问题拒绝回答 希望你遇到会的问题时,也不吝赐教,再次感谢你的提问。
-
@hunterlin1102 你好,我遇到的情况跟你一样,请问你是怎么让虚拟机和fishbot处在同一个子网的呢?
-
@流浪呆猫 昨天研究了一下解决了,结果很简单,虚拟机网络选择桥接模式再配置为无线网卡(主机是有线的就配置为有线),最后打开设置新建一个网络配置,什么都不用填直接点确定,新的网络就跟主机在一个网段了
-
-
@流浪呆猫 你好我的也是,看了你的评论,不是很懂,能说的详细点吗
-
@流浪呆猫 我的ip应该没有写错吧,但是还是一样的问题
-
@小鱼 麻烦大佬指点指点
-
@2312224620qq-com 你这WIFI用户名密码感觉都不对
-
@小鱼 那大佬怎么改,我看fishros不是只要更改ip吗,然后就更改了ip,其他没有处理
-
@小鱼 是这里看wifi名称吗,但是不知道怎么设置wifi
-
@2312224620qq-com 你找客服要下网络结构介绍,然后看看视频,这里填的是wifi用户名和密码,我在视频里填写的是我这里的WIFI,肯定和你的不一样,建议先走一遍快速上手教程,了解下原理
-
@2312224620qq-com 就是输入你家的wifi名字和密码,电脑主机也要连接这个路由器,电脑ip是虚拟机的不是主机的,为了确保虚拟机也是同一个网段需要设置为桥接模式,这样就和主机一个网段了。最后你的虚拟机ip应该前三位都和主机一致,自然也和fishbot一致了