jetson nano配置底层ros驱动(3)


文章摘要:本文主要讲述Ros底层通讯,和一些设备配置

Ros底层

此处使用的是usb_cam功能包和esp32通讯,串口软件协议是基本的

USB-ID绑定

因为外设有usb摄像头,lidar,imu和里程计,以及uwb传感器所以在usb的ID绑定上要详细分清楚,这里是对USBID的操作指令有如下

1.1 查看usb设备

lsusb 

可以看出我使用的usb设备主要两种,一种是ch340转ttl ,一种是cp2102转ttl。
在这里插入图片描述
这里我映射了3个usb设备到我的jetson-nano的USB接口上,分别是底盘控制器 雷达接口 uwb数据接口。

 ls -l /dev |grep ttyUSB

在这里插入图片描述

1.2 编写自定义规则

这里开始编写自定义的usb设备规则,进入系统规则文件夹查看规则

cd /etc/udev/rules.d/
ls -l 

这里查看的是对应的我编写的3个规则
在这里插入图片描述

1.2.1编号查询

为了不编写出错,先把所有需要编写的usb设备拔掉,在插入一个usb。

 ls -l /dev |grep ttyUSB

获取得到红色的ttyUSB数字 ,我这是2
在这里插入图片描述
查看当前设备详细的usb参数

udevadm info -a -n /dev/ttyUSB*

这里的ttyUSB* 是上面获取的到的红色设备数字号,我这是ttyUSB2。当输入上面命令得到详细参数后,寻找到第四段参数如下图所示
在这里插入图片描述

1.2.2编写自定义规则

此处新建一个自定义名字的设备规则,如果是底盘控制器 我一般新建为hgrobot_controller。

sudo  nano  hgrobot_controller.rules

填写下面参数,其中KERNEL==“ttyUSB*”,MODE:=“0777”, GROUP:=“dialout”, 可以照着填写,最后一个参数一定要是👆那个文件名,其他四个参数是上面第四段得到的参数。

KERNEL=="ttyUSB*", KERNELS=="1-2.4.4.1", ATTRS{devpath}=="2.4.4.1",  ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523",  MODE:="0777", GROUP:="dialout", SYMLINK+="hgrobot_controller"

在这里插入图片描述
这个时候底盘控制器的USB接口规则文件就写完了,重启usb规则

sudo udevadm trigger
sudo udevadm control –reload-rules && sudo service udev restart && sudo udevadm trigger

查看规则是否生效

ls -l /dev |grep ttyUSB

如果映射成功,这个时候就可以直接在ros底盘控制文件里面打开调用这个接口进行底盘通讯
在这里插入图片描述

1.2.3 Ros调用

如果多个设备需要编写规则,直接重复上面的1.2.1-1.2.2 一个一个添加设备,对于Ros的接口直接调用,需要在自己编写的功能包中确定串口设备的名字,该名字也就是规则的名字

	timeout_uwb=5; //uwb 检测1ms 没有信息 就不发布 uwb
	timeout_esp=10; // esp 检测2 ms 没有信息就不发布esp 对应的话题
	ros::NodeHandle private_nh("~");
	private_nh.param<std::string>("usart_port_name",usart_port_name,"/dev/hgrobot_contorller"); //串口信息,自定义串口规则和 串口id
	private_nh.param<std::string>("odom_frame_id",odom_frame_id,"odom_combined"); //机器人里程计 坐标系
	private_nh.param<std::string>("robot_frame_id",robot_frame_id,"base_footprint"); //机器人中心坐标系
	private_nh.param<std::string>("usart_port_name_uwb",usart_port_name_uwb,"/dev/hgrobot_uwb"); // uwb串口名

这里我添加的是2个设备的名字 一个是底盘控制器,一个是uwb定位usb接口。当在ros节点添加上面参数后,就可以直接在外面的launch文件调用usart_port_name 和 usart_port_name_uwb2个参数了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值