最近在ROS上测试 LMPS IMU 传感器,在此了一下配置过程。
自己的配置环境:Ubuntu16.04、ROS-kinetic、LMPS-URS2
一、硬件准备
需要的硬件设备:
LPMS-URS2(IMU传感器)、Micro-USB线(供电线+数据线)、(也可以用 RS232来做 数据线,只有launch文件里面的配置不同,其他都一样,下文会提到)
二、Ubuntu测试
1.安装依赖
sudo apt-get install libpugixml-dev libbluetooth-dev
2.下载并安装LpSensor库
(这个库必须装,不装这个库会报错 Lp_LIBRARY 未设置)
2.1 下载LpSensor库
- 下载方式1:
到下载页面1中最新版本的库(截止到2020.08.15),这里下载的是Deprecated Libraries
中的1.3.5
版本的LpSensor-1.3.5-Linux-x86-64.tar.gz
。
- 下载方式2:
或者找到下载页面2中最新版本的库(截止到2023.04.12),这里下载的是Deprecated Libraries
中的1.3.5
版本的LpSensor-1.3.5-Linux-x86-64.tar.gz
。
2.2 安装LpSensor库
下载并解压之后按以下步骤进行安装:
tar zxvf ~/Downloads/LpSensor-1.3.5-Linux-x86-64.tar.gz
sudo dpkg -i LpSensor-1.3.5-Linux-x86-64/liblpsensor-1.3.5-Linux.deb
2.创建一个workspace,并且下载ros库
mkdir -p ~/sensordriver_ws/src
cd ~/sensordriver_ws/src
git clone https://github.com/larics/timesync.git
git clone https://github.com/larics/lpms_imu.git
cd ~/sensordriver_ws
catkin_make
3.新建launch文件,准备测试
新建luanch文件,注意选择传感器类型,针对LPMS-URS2 ,如果是USB通信选择 DEVICE_LPMS_U2 ,如果是串口通信选择 DEVICE_LPMS_RS232。这里选择 USB通信,也就是选择 DEVICE_LPMS_U2 。
mkdir -p ~/sensordriver_ws/src/lmps_imu/launch
vim lpms_medk.launch
输入如下内容:
<launch>
<node pkg="lpms_imu" type="lpms_imu_node" name="lpms_medk" output="screen" >
<param name="sensor_model" value="DEVICE_LPMS_U2" /> <!-- DEVICE_LPMS_U2: USB传输数据 ; DEVICE_LPMS_RS232: RS232传输数据 -->
<param name="port" value="/dev/ttyUSB0" /> <!-- 设备对应的端口号 -->
<param name="frame_id" value="base_imu_link" />
<param name="rate" value="200" />
</node>
</launch>
4.开始测试
打开终端,启动 LPMS IMU传感器驱动:
cd ~/sensordriver_ws
source ~/sensordriver_ws/devel/setup.bash
roslaunch lpms_imu lpms_medk.launch
如果终端提示 权限不足:
/dev/ttyUSB0: Permission denied[LpmsSensor] Connection error 0: None [LpmsSensor] Connecting to /dev/ttyUSB0
那么就需要给串口 /dev/ttyUSB0 赋予执行权限,在终端执行 sudo chmod 777 /dev/ttyUSB0
然后再次执行 launch 文件。
另外打开一个终端,查看IMU数据变化曲线:
rosrun rqt_plot rqt_plot
然后在打开的页面添加对应的topic,转动IMU传感器,就可以看到曲线的变化了~~
三、可能遇到的问题
- Lp_LIBRARY 未设置
未安装LpSensor库,**这个库必须装,不装这个库会报错 Lp_LIBRARY 未设置 **
解决方法:
到下载页面中最新版本的库,目前为止最新版本是1.3.5。下载并解压。
下载并解压之后按以下步骤进行安装:
tar zxvf ~/Downloads/LpSensor-1.3.5-Linux-x86-64.tar.gz
sudo dpkg -i LpSensor-1.3.5-Linux-x86-64/liblpsensor-1.3.5-Linux.deb
- 运行
roslaunch lpms_imu lpms_medk.launch
终端提示 串口权限不足:
/dev/ttyUSB0: Permission denied[LpmsSensor] Connection error 0: None [LpmsSensor] Connecting to /dev/ttyUSB0
那么就需要给串口 /dev/ttyUSB0 赋予执行权限,在终端执行
sudo chmod 777 /dev/ttyUSB0
然后再次执行 launch 文件。
roslaunch lpms_imu lpms_medk.launch
参考链接
[1] 在Ubuntu Linux系统上启动ROS和LPMS传感器
http://www.alubi.cn/%e5%9c%a8ubuntu-linux%e7%b3%bb%e7%bb%9f%e4%b8%8a%e5%90%af%e5%8a%a8ros%e5%92%8clpms%e4%bc%a0%e6%84%9f%e5%99%a8/
[2] ROS与传感器教程-LPMS IMU传感器使用 https://www.ncnynl.com/archives/201911/3471.html