本来自己想玩一个ros小车进行slam建图和导航,结果发现由于地形原因,导致建图不稳定。这是因为在某些情况下,机器人可能出现轮子在动,本体却不动的打滑现象,所以使用imu进行融合就有一定的必要,融合包可以见这个博客链接:
那么再购买一款支持ros的imu就可以了。但是,支持ros的imu一般性价比不高,所以我等穷学生就不能采用这种方案。所以,本人就采用了新的方案,购买一款高性价比的imu,然后经过自己的改造就能够融合到ros操作系统里面。
由于代码本身比较多,所以,不在这里详细说明我的实践方法,只说我的包怎么使用。首先,你需要一款wt931以及配套的usb小板。然后下载下面链接的源码。
wt931-ROS源码包
https://github.com/Xueming10wu/ROS-WT931 使用方法
1、更新ch340驱动
解压包 >> wt931 >> ch340更新驱动 >>解压>>转到解压出的文件夹中>> 在此目录下打开命令行执行make命令编译。 详情见
后面把生成的驱动文件放入到内核中
2、加载设备规则 打开命令行,复制设备规则 1丨 ~$ cd wt9331 2丨 ~$ sudo cp wt931.rules /etc/udev/rules.d/ 开机自动加载设备规则 打开命令行 1丨 ~$ sudo usermod -aG dialout 用户名 2丨 ~$ sudo service udev reload 3丨 ~$ sudo service udev restart 关机重启 1丨 ~$ sudo reboot 开机后,插上wt931到usb接口上。检查一下设备规则是否被加载成功。 1丨 ~$ ls /dev/wt931 如果正常将会显示 1丨 /dev/wt931 否则再检查一遍操作,或换一条usb数据线。 3、把wt931放到你的工作空间中之后 1丨 转到目录下 2丨 ~$ roscd wt931/scripts //或cd wt931/scripts 3丨 ~$ sudo chmod 777 main.py 4、检查运行情况 1丨 运行文件 2丨 ~$ roslaunch wt931 wt931.launch 再开一个命令行终端 1丨 查看话题数据 2丨 ~$ rostopic echo /imu 5、Rviz下的演示 1丨 ~$ rviz 这里由于imu数据更新比较快,因此把左边的imu话题中的HistoryLength调成500,能够比较好的同时观察到500帧数据。 6、其他 这一切都是在windows下进行官方的miniIMU.exe配置之后进行的工作。为了速率,我设置 921600 为波特率,并且只选择读取 加速度、角速度、角度、欧拉角进行配置。 建议先在官方提供的miniIMU上面把设备校准到比较好的效果之后,在来实践前面5布操作。 如果,出现串口打开失败,请检查一下设备的波特率或者换一根usb线,调整过之后,一般就能够解决大部分问题。
|