Ubuntu20.04使用Yesense(YIS300A)
本文使用了YIS300-DK-v2.0(IMU)传感器,在Ubuntu20.04下运行driver获取ROS话题。
下面主要记录使用过程:
1. 下载ROS驱动
驱动源码链接
源码主要需要ROS开发环境和serial包。在Ubuntu16.04下可以直接通过以下命令安装(按照源码的教程):
sudo apt-get install ros-kinetic-serial
但是由于在20.04下会提示无法定位,需要通过源码安装serial。
主要安装过程可以通过以下命令:
cd src ###我放在了驱动包的同一文件夹下;也可以放在其他文件夹下
git clone https://github.com/wjwwood/serial.git
mkdir build
cd build
sudo make
sudo make install
由于通过源码安装,所以要在Ysense_driver的驱动包的Cmakelist.txt中修改:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
dynamic_reconfigure
geometry_msgs
sensor_msgs
#serial(这里删掉)
std_msgs
std_srvs
tf
message_generation
)
#下面加入serial
find_package(serial REQUIRED)
##在include中加入
include_directories(
include
${catkin_INCLUDE_DIRS}
${serial_INCLUDE_DIRS}
./src
)
##加入lib
target_link_libraries(yesense_imu_node
${catkin_LIBRARIES}
${serial_LIBRARIES}
)
完成上述步骤后,就可以编译。
cd xxx_ws
catkin_make
2. 运行
我使用的YIS300A通过USB接口接到电脑,在使用之前需要“解锁权限”。运行命令如下:
##解锁端口
sudo chmod 777 /dev/ttyUSB0
##运行驱动
roslaunch yesense_imu yesense.launch
3. 话题名
/imu/data 类型:sensor_msgs::IMU;(9轴)
/imu/pose 类型:geometry_msgs/PoseStamped
4.重要补充!!!
第一步给的github链接代码是有问题的,如果你使用过的话会发现其IMU的xyz的为左手坐标系,原因是其适配的是YIS330型号,如果你使用的是此型号应该没有问题;如果是其他型号,需要在源码的analysis_data.c中更改数据的格式。建议直接找店家要一下用户手册和驱动源码。