wsl2-ubuntu20测试T-rtk gps模块

主要是验证下功能,熟悉下topic。
wsl2和真正的Ubuntu目前使用的主要区别感觉是端口要映射;

硬件端口映射

可以参考我映射D435i的笔记:在WSL2子系统中跑D345i获取数据

在windows端安装usbipd工具,最好全程在管理员模式下的cmd窗口操作

winget install --interactive --exact dorssel.usbipd-win

或从GitHub下载安装:https://github.com/dorssel/usbipd-win/releases
检查设备列表,我这儿已经连上了

usbipd list

返回

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    260d:1095  USB 输入设备                                                  Not shared
1-6    1a2c:2c27  USB 输入设备                                                  Not shared
1-14   10c4:ea60  Silicon Labs CP210x USB to UART Bridge (COM3)                 Not shared

Persisted:
GUID                                  DEVICE
4f7a084d-18f9-4b21-8cac-5308202a37cf  Intel(R) RealSense(TM) Depth Camera 435i Depth
7c10fddd-41a9-4499-a563-9ae6f158e79b  Intel(R) RealSense(TM) Depth Camera 435i Depth, Intel(R) ...l

出了可以看到目标COM3,还可以看到之前映射的D435i;
端口是1-14

usbipd bind --busid 1-14
usbipd attach --wsl --busid 1-14

返回

usbipd: info: Using WSL distribution 'Ubuntu-20.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Loading vhci_hcd module.
usbipd: info: Detected networking mode 'mirrored'.
usbipd: info: Using IP address 127.0.0.1 to reach the host.

然后,是在wsl-Ubuntu20中操作了,先用lsusb列出设备:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -t检查具体的口和速度:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M

官方ros包

在官方文档T-RTK UM982_用户手册_V1.1
里面,下载handsfree_rtk压缩包,下下来后解压到要运行的ros1的工作空间下的src

cd & mkdir -p catkin_ws/src

然后执行自动安装依赖和编译脚本

cd ~/catkin_ws/src/handsfree_rtk/
bash auto_install.sh

实际上我看也主要是给python安装了pathlibpyserial,熟悉虚拟环境可以自己折腾,然后是设置usb规则,规则文件handsfree_rtk

KERNEL=="ttyUSB*", ATTRS{interface}=="HandsFree RTK USB to UART Bridge Controller", MODE:="0777", SYMLINK+="HFRobotRTK"

其中安装和启动规则文件的语句

sudo cp usb_rules/handsfree_rtk.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=usb

通过里面提供的usb规则和C++demo,可以自己写自己的ros包,绕开官方的python实现。

然后是官方的执行

roslaunch handsfree_rtk handsfree_rtk.launch

不过我在室内测试,打印出的都是无效信息:

---
data: "$GPZDA,022751.80,30,01,2026,,*69"
---
data: "$GPTHS,,V*0E"
---
data: "#UNIHEADINGA,90,GPS,FINE,2403,440889800,0,0,18,7;INSUFFICIENT_OBS,NONE,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,\"\
  \",0,0,0,0,0,00,0,0*68f67bfb"
---
data: "#AGRICA,90,GPS,FINE,2403,440889800,0,0,18,7;GNSS,232,26,1,30,2,27,51,0,0,0,0,0,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.00000000000,0.00000000000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.00000000000,0.00000000000,0.0000,0.00000000000,0.00000000000,0.0000,440889800,0.000,0.000000,0.000000,0.000000,0.000000,0,1,0,0*42f4f9f3"
---
data: "$GNRMC,022751.90,V,,,,,,,300126,0.0,E,N,V*7E"
---
data: "$GNGGA,022751.90,,,,,0,00,9999.0,,,,,,*42"
---
data: "$GPGSA,,1,,,,,,,,,,,,,,,,*73"
---
data: "$GPVTG,,,,,,,,,N*30"
---
data: "$GPGST,022751.90,,,,,,,*73"
---
data: "$GPZDA,022751.90,30,01,2026,,*68"
---
data: "$GPTHS,,V*0E"
---
data: "#UNIHEADINGA,90,GPS,FINE,2403,440889900,0,0,18,7;INSUFFICIENT_OBS,NONE,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,\"\
  \",0,0,0,0,0,00,0,0*b7f0f639"
---
data: "#AGRICA,90,GPS,FINE,2403,440889900,0,0,18,7;GNSS,232,26,1,30,2,27,51,0,0,0,0,0,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.00000000000,0.00000000000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.00000000000,0.00000000000,0.0000,0.00000000000,0.00000000000,0.0000,440889900,0.000,0.000000,0.000000,0.000000,0.000000,0,1,0,0*8907198b"
---
data: "$GNRMC,022752.00,V,,,,,,,300126,0.0,E,N,V*74"
---
data: "$GNGGA,022752.00,,,,,0,00,9999.0,,,,,,*48"
---
data: "$GPGSA,,1,,,,,,,,,,,,,,,,*73"
---
data: "$GPVTG,,,,,,,,,N*30"
---
data: "$GPGST,022752.00,,,,,,,*79"
---
data: "$GPZDA,022752.00,30,01,2026,,*62"
---
data: "$GPTHS,,V*0E"
---
data: "#UNIHEADINGA,90,GPS,FINE,2403,440890000,0,0,18,7;INSUFFICIENT_OBS,NONE,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,\"\
  \",0,0,0,0,0,00,0,0*22481ee2"
---
data: "#AGRICA,90,GPS,FINE,2403,440890000,0,0,18,8;GNSS,232,26,1,30,2,27,52,0,0,0,0,0,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.00000000000,0.00000000000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.00000000000,0.00000000000,0.0000,0.00000000000,0.00000000000,0.0000,440890000,0.000,0.000000,0.000000,0.000000,0.000000,0,1,0,0*be60c697"
---

还是得拿到外面去测下。

消息列表注释

消息列表

/handsfree/rtk/cog
/handsfree/rtk/gnss
/handsfree/rtk/heading
/handsfree/rtk/raw
/handsfree/rtk/speed
消息 格式 注释
/handsfree/rtk/cog std_msgs/Float64
/handsfree/rtk/gnss sensor_msgs/NavSatFix 解析后的GNSS定位数据(包含定位状态、经纬高)
/handsfree/rtk/heading std_msgs/Float64 解析后的地面航向数据(COG,表示设备运动方向,相对于正北顺时针旋转的角度,0°=正北,90°=正东,180°=正南,270°=正西),单位 °
/handsfree/rtk/speed std_msgs/Float64 解析后的地速数据,单位 m/s
/handsfree/rtk/raw std_msgs/String.msg 原始NMEA协议数据
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容