You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ROS2 Humble在WSL(Ubuntu22.04)连接Tello无人机失败求助

解决WSL2 Ubuntu 22.04中DJItelloPy无法接收Tello状态包的问题

以下是针对问题的实用排查和解决步骤:

  • 切换WSL网络模式为Mirrored(Windows 11推荐)
    默认NAT模式下WSL与Windows的网络隔离可能导致Tello状态包无法回传。编辑Windows用户目录下的.wslconfig文件(无则新建),添加:

    [wsl2]
    networkingMode=mirrored
    

    执行wsl --shutdown重启WSL后再启动Ubuntu。

  • 验证端口转发有效性

    1. 在Windows命令行执行netsh interface portproxy show all,确认8889、8890、11111端口已正确映射至WSL的IP地址。
    2. 在WSL中用nc测试与Tello的连通性:nc -zv 192.168.10.1 8889(Tello默认IP为192.168.10.1),显示succeeded则连通正常。
  • 指定WSL本地IP初始化DJItelloPy
    在WSL中执行ip addr获取网卡IP(如eth0的inet字段),修改代码绑定该IP:

    from djitellopy import Tello
    
    tello = Tello(local_ip='你的WSL网卡IP')
    tello.connect()
    

    避免默认绑定0.0.0.0引发的路由问题。

  • 关闭Ubuntu本地防火墙
    WSL中的ufw防火墙可能拦截状态包,执行sudo ufw disable关闭后重新测试代码。

  • 监听状态包端口确认数据到达情况
    在WSL中执行sudo tcpdump -i any port 8890,再运行DJItelloPy代码尝试连接。若tcpdump能抓取到来自192.168.10.1的数据包,说明网络正常,问题出在DJItelloPy监听逻辑;若无数据包,继续排查网络转发或模式设置。

  • 尝试ROS2官方Tello驱动包
    基于ROS2 Humble环境,可使用成熟的tello_driver包:

    1. 创建工作空间并克隆源码:
      mkdir -p ~/tello_ws/src && cd ~/tello_ws/src
      git clone https://github.com/clydemcqueen/tello.git
      cd .. && colcon build --symlink-install
      source install/setup.bash
      
    2. 运行节点:ros2 run tello_driver tello_node
    3. 查看状态话题:ros2 topic echo /tello/state,若能收到数据,说明ROS2环境连接正常,可基于此开发项目。

内容的提问来源于stack exchange,提问作者Ingrid maëva Chekam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:05:03