本来自己想玩一个ros小车进行slam建图和导航,结果发现由于地形原因,导致建图不稳定。这是因为在某些情况下,机器人可能出现轮子在动,本体却不动的打滑现象,所以使用imu进行融合就有一定的必要,融合包可以见这个博客链接: https://blog.csdn.net/shenghuaijing3314/article/details/78220151。
那么再购买一款支持ros的imu就可以了。但是,支持ros的imu一般性价比不高,所以我等穷学生就不能采用这种方案。所以,本人就采用了新的方案,购买一款高性价比的imu,然后经过自己的改造就能够融合到ros操作系统里面。
由于代码本身比较多,所以,不在这里详细说明我的实践方法,只说我的包怎么使用。首先,你需要一款wt931以及配套的usb小板。然后下载下面链接的源码。
wt931-ROS源码包
https://github.com/Xueming10wu/ROS-WT931
详情见
https://blog.csdn.net/JAZZSOLDIER/article/details/70170466
后面把生成的驱动文件放入到内核中
详情见
https://blog.csdn.net/jazzsoldier/article/details/70117912
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线,调整过之后,一般就能够解决大部分问题。
最后也是最重要的
wt931-ROS源码包
https://github.com/Xueming10wu/ROS-WT931
---------------------
版权声明:本文为CSDN博主「qq_39161894」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39161894/article/details/92839431