雷神thunerbook16打算安装双系统,由于之前一直是在ubuntu18.04下使用的ros melodic,所以自然也继续使用 ubuntu18.04,安装好后,没有网卡和蓝牙,说是不支持。
只好在csdn.net上查找方法,弄了半天没有弄好,就安装了Ubuntu20.04,也没有网卡,但找到了方法解决,就是升级内核,再从intel网站上
Ubuntu20.04 intel ax201双系统没有wifi蓝牙,驱动激活教程
但在ROS melodic 里可以运行的代码,在ubuntu 20里各种报错,还是换回ubuntu18.04.
再找网卡安装方法
参考:Ubuntu18.04 安装AX210驱动
下面是实际步骤,大部分是直接抄的
首先:
sudo apt install flex bison
然后,这里的地址换了,原文章里的github 地址,下载不动,太慢:
git clone https://gitee.com/weng-junyi/backport-iwlwifi.git
cd iwlwifi-stack-dev
# 下载的代码已经编译好的,直接安装就可以
sudo make install
最后一步,从intel官网下载所需固件,:intel官网
在windows11里看到网卡类型为: Intel® Wi-Fi 6 AX201 160MHz,所以要下载:iwlwifi-Qu-48.13675109.0.tgz
下载完解压出来,将ucode文件复制在/lib/firmware下
sudo cp iwlwifi-* /lib/firmware/
注:没有网络可以使用手机usb共享网络或者插网线
北斗
参考:要点初见:通过ROS包nmea_navsat_driver读取GPS、北斗定位信息(C/C++)
安装配置
查看北斗连接的商品,打开 /dev/目录,ls 查看设备列表
xhb@book:/dev$ ls
autofs loop17 ppp tty27 tty60 ttyS7
block loop18 psaux tty28 tty61 ttyS8
btrfs-control loop19 ptmx tty29 tty62 ttyS9
bus loop2 pts tty3 tty63 udmabuf
char loop20 random tty30 tty7 uhid
console loop3 rfkill tty31 tty8 uinput
core loop4 rtc tty32 tty9 urandom
cpu loop5 rtc0 tty33 ttyprintk usb
cpu_dma_latency loop6 shm tty34 ttyS0 userio
cuse loop7 snapshot tty35 ttyS1 vcs
disk loop8 snd tty36 ttyS10 vcs1
ecryptfs loop9 stderr tty37 ttyS11 vcs2
fb0 loop-control stdin tty38 ttyS12 vcs3
fd mapper stdout tty39 ttyS13 vcs4
full mcelog tpm0 tty4 ttyS14 vcs5
fuse mem tpmrm0 tty40 ttyS15 vcs6
hidraw0 mqueue tty tty41 ttyS16 vcsa
hidraw1 net tty0 tty42 ttyS17 vcsa1
hidraw2 null tty1 tty43 ttyS18 vcsa2
hidraw3 nvme0 tty10 tty44 ttyS19 vcsa3
hpet nvme0n1 tty11 tty45 ttyS2 vcsa4
hugepages nvme0n1p1 tty12 tty46 ttyS20 vcsa5
hwrng nvme0n1p2 tty13 tty47 ttyS21 vcsa6
initctl nvme0n1p3 tty14 tty48 ttyS22 vcsu
input nvme0n1p4 tty15 tty49 ttyS23 vcsu1
kmsg nvme1 tty16 tty5 ttyS24 vcsu2
kvm nvme1n1 tty17 tty50 ttyS25 vcsu3
log nvme1n1p1 tty18 tty51 ttyS26 vcsu4
loop0 nvme1n1p2 tty19 tty52 ttyS27 vcsu5
loop1 nvme1n1p3 tty2 tty53 ttyS28 vcsu6
loop10 nvme1n1p4 tty20 tty54 ttyS29 vfio
loop11 nvme1n1p5 tty21 tty55 ttyS3 vga_arbiter
loop12 nvme1n1p6 tty22 tty56 ttyS30 vhci
loop13 nvme1n1p7 tty23 tty57 ttyS31 vhost-net
loop14 nvme1n1p8 tty24 tty58 ttyS4 vhost-vsock
loop15 nvram tty25 tty59 ttyS5 zero
loop16 port tty26 tty6 ttyS6 zfs
把北斗连接到电脑,再查看
xhb@book:/dev$ ls
autofs hugepages loop3 nvme1n1 snapshot tty20 tty4 tty59 ttyS19 ttyUSB0 vcsu
block hwrng loop4 nvme1n1p1 snd tty21 tty40 tty6 ttyS2 udmabuf vcsu1
btrfs-control initctl loop5 nvme1n1p2 stderr tty22 tty41 tty60 ttyS20 uhid vcsu2
bus input loop6 nvme1n1p3 stdin tty23 tty42 tty61 ttyS21 uinput vcsu3
char kmsg loop7 nvme1n1p4 stdout tty24 tty43 tty62 ttyS22 urandom vcsu4
console kvm loop8 nvme1n1p5 tpm0 tty25 tty44 tty63 ttyS23 usb vcsu5
core log loop9 nvme1n1p6 tpmrm0 tty26 tty45 tty7 ttyS24 userio vcsu6
cpu loop0 loop-control nvme1n1p7 tty tty27 tty46 tty8 ttyS25 vcs vfio
cpu_dma_latency loop1 mapper nvme1n1p8 tty0 tty28 tty47 tty9 ttyS26 vcs1 vga_arbiter
cuse loop10 mcelog nvram tty1 tty29 tty48 ttyprintk ttyS27 vcs2 vhci
disk loop11 mem port tty10 tty3 tty49 ttyS0 ttyS28 vcs3 vhost-net
ecryptfs loop12 mqueue ppp tty11 tty30 tty5 ttyS1 ttyS29 vcs4 vhost-vsock
fb0 loop13 net psaux tty12 tty31 tty50 ttyS10 ttyS3 vcs5 zero
fd loop14 null ptmx tty13 tty32 tty51 ttyS11 ttyS30 vcs6 zfs
full loop15 nvme0 pts tty14 tty33 tty52 ttyS12 ttyS31 vcsa
fuse loop16 nvme0n1 random tty15 tty34 tty53 ttyS13 ttyS4 vcsa1
hidraw0 loop17 nvme0n1p1 rfkill tty16 tty35 tty54 ttyS14 ttyS5 vcsa2
hidraw1 loop18 nvme0n1p2 rtc tty17 tty36 tty55 ttyS15 ttyS6 vcsa3
hidraw2 loop19 nvme0n1p3 rtc0 tty18 tty37 tty56 ttyS16 ttyS7 vcsa4
hidraw3 loop2 nvme0n1p4 serial tty19 tty38 tty57 ttyS17 ttyS8 vcsa5
hpet loop20 nvme1 shm tty2 tty39 tty58 ttyS18 ttyS9 vcsa6
可以看到,增加了 ttyUSB0
# 安装
sudo apt-get install ros-melodic-nmea-navsat-driver libgps-dev
# 运行
rosrun nmea_navsat_driver nmea_topic_serial_reader _port:=/dev/ttyUSB0 _baud:=9600
运行时可能会报错:
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
能用户添加USB接口权限方法:
方法1是直接修改权限
sudo chmod 777 /dev/ttyUSB0
创建文件
sudo gedit /etc/udev/rules.d/70-ttyusb.rules
在文件内增加一行,修改串口的访问权限:
KERNEL=="ttyUSB[0-9]*", MODE="0666",GROUP="plugdev"
修改70-ttyusb.rules文件的权限:
sudo chmod -R 777 70-ttyusb.rules
将登陆的账户添加到plugdev组
sudo usermod -a -G plugdev yjw
产看用户所在组
yjw@ubuntu:~$ sudo usermod -a -G plugdev yjw
yjw@ubuntu:~$ groups yjw
yjw : yjw adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare
重新加载 udev 规则
sudo udevadm control --reload