1.简单介绍
以下对WHEELTEC N100惯导模块在ROS环境下如何使用进行简单记录。以下WHEELTEC N100N(相比于N100可接入GNSS)惯导模块的ROS驱动功能包来源于设备商家,购买后记得找商家索要驱动功能包。本文ROS系统位于树莓派(系统为Ubuntu16),上位机为虚拟机(系统为Ubuntu18)。
系统:Ubuntu20.04
ROS系统:noetic版本
2. 惯导模块测试
将惯导模块接入Ubuntu系统后打开终端,输入ls -l /dev/tty*指令查看串口号,此时会发现无法分辨那个串口对应着惯导模块。
需要先在Windows中使用资料包中的CP21xx Customization Utility软件修改串口名称为 “ttyUSB0”(可自行取名),修改完之后点击Program Device按钮,可能要稍微等待一小会即可修改完成。此时再将惯导模块连接至Ubuntu。
接下来安装所需驱动:打开终端,键入安装命令:
sudo apt install ros-noetic-serial
其中的noetic需要跟ROS版本号对应(可通过roscore指令查看)。
3.配置ROS驱动功能包
创建并编译工作空间:在主目录下新建一个src文件夹,将提供的资料中的
ROS_SDK->fdilink_ahrs_ROS1.zip->fdilink_ahrs
fdilink_ahrs文件复制到src文件夹下
键入代码:
cd src
catkin_init_workspace
cd ..
catkin_make
接下来需要对ROS功能包中文件的串口进行修改:
fdilink_ahrs->src-> ahrs_driver.cpp
fdilink_ahrs->launch-> ahrs_data.launch
如图位置所示,改为之前修改的串口名称。
接着键入代码:
source devel/setup.bash
注意:打开新的终端需要重新定义源,即再次执行:source devel/setup.bash
4.数据输出和初始化
键入代码启动发布者启动器:roslaunch fdilink_ahrs ahrs_data.launch
这时可能会出现以下报错:Unable to open port
原因是该串口号的权限不够,使用如下指令提高串口权限再次尝试就可以解决。
sudo chmod 777 /dev/ttyUSB0
成功后显示如下:
接下来可以查看一下话题列表并输出消息
打开一个终端,键入代码:rostopic list
再键入代码:rostopic echo /imu
再打开一个终端启动订阅者启动器,键入代码:roslaunch fdilink_ahrs tf.launch(这里需要先重新定义源:source devel/setup.bash,再执行代码)
运行成功后我们可以打开rviz可视化工具进行查看:
单独打开一个终端,键入:rviz即可。
点击左下角Add,加入TF
这时我们注意到左边栏有两处问题存在导致无法正常显示:
我们把左上角的Global Options下面的Fixed Frame左边的map改为world,就可以正常显示了。
最终的效果图:
若想看到map下的显示图,可将
fdilink_ahrs->launch->tf.launch
文件中的“world”改为“map”。
注:本记录参考和引用了该文章的内容和部分图片ROS开发之如何使用WHEELTEC N100惯导模块?_ros 惯导_cacrle的博客-CSDN博客