wsl2-ubuntu20測試T-rtk gps模塊

主要是驗證下功能,熟悉下topic。
wsl2和真正的Ubuntu目前使用的主要區(qū)別感覺是端口要映射;

硬件端口映射

可以參考我映射D435i的筆記:在WSL2子系統(tǒng)中跑D345i獲取數(shù)據(jù)

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

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

或從GitHub下載安裝:https://github.com/dorssel/usbipd-win/releases
檢查設(shè)備列表,我這兒已經(jīng)連上了

usbipd list

返回

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    260d:1095  USB 輸入設(shè)備                                                  Not shared
1-6    1a2c:2c27  USB 輸入設(shè)備                                                  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列出設(shè)備:

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

然后執(zhí)行自動安裝依賴和編譯腳本

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

實際上我看也主要是給python安裝了pathlibpyserial,熟悉虛擬環(huán)境可以自己折騰,然后是設(shè)置usb規(guī)則,規(guī)則文件handsfree_rtk

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

其中安裝和啟動規(guī)則文件的語句

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

通過里面提供的usb規(guī)則和C++demo,可以自己寫自己的ros包,繞開官方的python實現(xiàn)。

然后是官方的執(zhí)行

roslaunch handsfree_rtk handsfree_rtk.launch

不過我在室內(nèi)測試,打印出的都是無效信息:

---
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定位數(shù)據(jù)(包含定位狀態(tài)、經(jīng)緯高)
/handsfree/rtk/heading std_msgs/Float64 解析后的地面航向數(shù)據(jù)(COG,表示設(shè)備運動方向,相對于正北順時針旋轉(zhuǎn)的角度,0°=正北,90°=正東,180°=正南,270°=正西),單位 °
/handsfree/rtk/speed std_msgs/Float64 解析后的地速數(shù)據(jù),單位 m/s
/handsfree/rtk/raw std_msgs/String.msg 原始NMEA協(xié)議數(shù)據(jù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容