在电脑上,我们最常用的接口之一,应该就是USB了,相比之前讲到的外设通信方法,USB更加复杂,速度也更快。
USB通信原理
USB不仅是我们生活中最常用的一种接口,也是一种串行总线的通讯方式。他类似于UART,有两根线用来传输数据。
而且USB还有专门的接口规范,比如我们常听说的USB Type A、Type C。例如这里列出来的USB口,打印机常用的B口,手机上用的C口,都是标准的USB接口。
USB的接口规范,使用广泛,很多成熟的外设都是采用的USB接口。
摄像头驱动
比如USB摄像头。
硬件接线
这里我们使用一个USB摄像头,通过一个相机驱动把它跑起来,并且可以看到图像数据。
方法有很多中,TogetherROS™·Bot兼容ROS2的所有功能,那我们就先试试ROS2中的标准方法,在旭日X3PI上直接安装一个usb_cam功能包。
ROS2相机驱动
安装与配置
首先安装ROS2的相机驱动包:
# 安装功能包
$ sudo apt install ros-foxy-usb-cam
安装好之后,为了让系统能够找到该功能包,需要进入tros的目录,建立对应的软连接。
# 建立软连接
$ cd /opt/tros
$ sudo python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros/
因为旭日X3Pi可以连接csi摄像头,设备名占用了video0-7,所以外接的USB摄像头会被自动分配到video8,我们需要在ROS2的功能包中修改一下设备号。
# 修改配置文件
$ cd /opt/tros/share/usb_cam/config
$ sudo vim params.yaml
然后给这个设备添加权限,最后再设置TogetherROS™·Bot的环境变量就可以使用啦。
# 添加可执行权限
$ sudo chmod 777 /dev/video8
# 添加环境变量
$ source /opt/tros/local_setup.bash
运行相机驱动
我们来试一试。
$ ros2 launch usb_cam demo_launch.py #启动相机,X3Pi
$ ros2 run rqt_image_view rqt_image_view #查看图像,PC
这里直接在X3Pi中启动usb_cam的launch文件,然后再启动一个能和他通信的Ubuntu桌面系统,打开rqt_image_view,选择对应的话题,就可以看到图像了。也就是说明我们成功的用TROS驱动了这个USB摄像头。
全部0条评论
快来发表一下你的评论吧 !