LIO-SAM的参数定义在
其中部分参数如下:
yaml文件数据格式
前面对应的是参数的名称后面是参数的值
# Topics
pointCloudTopic: "/velodyne_points" # Point cloud data
imuTopic: "/airsim_node/drone_1/imu/Imu" # IMU data
# imuTopic: "imu_correct"
odomTopic: "odometry/imu" # IMU pre-preintegration odometry, same frequency as IMU
gpsTopic: "odometry/gpsz" # GPS odometry topic from navsat, see module_navsat.launch file
yaml文件加载
要使用这些参数必须通过launch文件加载
<!-- Parameters -->
<rosparam file="$(find lio_sam)/config/params.yaml" command="load" />
同时在utility.h中也为这些参数提供了一些默认值
nh.param<std::string>("lio_sam/pointCloudTopic", pointCloudTopic, "points_raw");
nh.param<std::string>("lio_sam/imuTopic", imuTopic, "imu_correct");
nh.param<std::string>("lio_sam/odomTopic", odomTopic, "odometry/imu");
nh.param<std::string>("lio_sam/gpsTopic", gpsTopic, "odometry/gps");
其中第二个参数是参数的名称;第一个参数是从launch文件加载的参数文件(yaml)中有 pointCloudTopic定义的值则用launch中加载来的否则用默认值points_raw
yaml参数调用
subLaserCloud = nh.subscribe<sensor_msgs::PointCloud2>(pointCloudTopic, 5, &ImageProjection::cloudHandler, this, ros::TransportHints().tcpNoDelay());
第一个参数为话题名;已经在yaml文件中给他定义了值为/velodyne_points,第二个参数是队列长度,第三个参数为回调函数(一般为加载和处理雷达数据)