1.根据使用的slam算法,loam_interface需要修改launch, 具体如何修改其官方给出了文档,
If running on a real robot, launch state estimation module and the system side by side. Use the
command below to launch the system.
roslaunch vehicle_simulator system_real_robot.launch
If playing bagfiles, make sure to set 'use_sim_time = true'. In a terminal,
roscore
In another terminal,
rosparam set use_sim_time true
After launching the state estimation module and the system, play bagfiles with '--clock' flag
(change 'filename' in the command line),
rosbag play --clock filename.bag
Adjust 'obstacleHeightThre' in 'src/local_planner/launch/local_planner.launch' to account for
terrain cloud thickness.
LOAM
Notes: Use 'loam_interface' package as is to bridge over the state estimation output.
Code: https://github.com/cuitaixiang/LOAM_NOTED
Reference: J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time. Robotics:
Science and Systems Conference (RSS). Berkeley, CA, July 2014.
A-LOAM (lidar only without IMU)
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'stateEstimationTopic =
/aft_mapped_to_init_high_frec', 'flipStateEstimation = false', and 'flipRegisteredScan = false'.
Code: https://github.com/HKUST-Aerial-Robotics/A-LOAM
Reference: N/A
LeGO-LOAM
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'registeredScanTopic =
/registered_cloud'.
Code: https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
Reference: T. Shan and B. Englot. LeGO-LOAM: Lightweight and Ground-Optimized Lidar
Odometry and Mapping on Variable Terrain. IEEE/RSJ Intl. Conf. on Intelligent Robots and
Systems (IROS). Madrid, Spain, Oct. 2018.LIO-SAM
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'stateEstimationTopic =
/lio_sam/mapping/odometry', 'registeredScanTopic = /lio_sam/mapping/cloud_registered',
'flipStateEstimation = false', and 'flipRegisteredScan = false'.
Code: https://github.com/TixiaoShan/LIO-SAM
Reference: T. Shan, B. Englot, D. Meyers, W. Wang, C. Ratti, and D. Rus. LIO-SAM: Tightly-
coupled Lidar Inertial Odometry via Smoothing and Mapping. IEEE/RSJ Intl. Conf. on Intelligent
Robots and Systems (IROS). Las Vegas, Nevada, Oct. 2020.
LIO-mapping
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'stateEstimationTopic =
/lio_map_builder/aft_mapped_to_init', 'registeredScanTopic =
/lio_map_builder/cloud_registered', 'flipStateEstimation = false', and 'flipRegisteredScan =
false'.
Code: https://github.com/hyye/lio-mapping
Reference: H. Ye, Y. Chen, and M. Liu. Tightly Coupled 3D Lidar Inertial Odometry and
Mapping. IEEE Intl. Conf. on Robotics and Automation (ICRA). Montreal, Canada, May 2019.
FAST-LIO2
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'stateEstimationTopic =
/Odometry', 'registeredScanTopic = /cloud_registered', 'flipStateEstimation = false', and
'flipRegisteredScan = false'.
Code: https://github.com/hku-mars/FAST_LIO
Reference: W. Xu, Y. Cai, D. He, J. Lin, and F. Zhang. FAST-LIO2: Fast Direct LiDAR-Inertial
Odometry. IEEE Transactions on Robotics. vol. 38, no. 4, pp. 2053–2073, 2022.
Faster-LIO
Notes: In 'src/loam_interface/launch/loam_interface.launch', set 'stateEstimationTopic =
/Odometry', 'registeredScanTopic = /cloud_registered', 'flipStateEstimation = false', and
'flipRegisteredScan = false'.
Code: https://github.com/gaoxiang12/faster-lio
Reference: C. Bai, T. Xiao, Y. Chen, H. Wang, F. Zhang, and X. Gao. Faster-LIO: Lightweight
Tightly Coupled Lidar-Inertial Odometry Using Parallel Sparse Incremental Voxels. IEEE Robotics
and Automation Letters. vol. 7, no. 2, pp. 4861–4868, 2022.
2.local_planner
local_planner.launch中
这个是黄色的局部曲线,根据机器人的外接圆进行修改,如机器人为一个长方体,长L,宽w,则path_generator.m中的 Radius >= sqrt(pow(L/2,2) + pow(W/2,2)),可以稍微大一点.
宽度可以稍微大个0.1,这个会计算一个半径,因为差速底盘尤其四轮差速有一个中情况就是转向时,障碍物在其侧面,如果点云被包含在这个半径内且在侧面,会对路径作出调整
在室内结构化平坦场地时不使用地形分析的点云使用slam配准后的scan_registered也可以,不过最好使用地形分析的
对应差速度底盘设置为true,,因为其旋转时四差底盘可能碰撞
局部路径的探测范围,就是那个黄色线的范围
点云相对高度大于这个值才认为是障碍物点云点,但是高度是一个相对高度,所以根据实际情况设置
这个在考虑地形分析点云或者点云点高度大于障碍物阈值时,对路径进行惩罚,当点云点高度大于地面高度时这个路径才会被惩罚,根据实际工况进行调试
/*********************************************************************************************/
local_planner.launch中对path_follow.cpp的配置,这其中有几个比较重要的参数
首先需要设定的是需要的线速度和最大线速度,这个在最开始设置.然后根据这个设置
yawRateGain" type="double" value="1" />默认是7.5,
这个用来增加角速度的,根据线速度调试确定,否则摆动很大前进时
,这个同上面类似,是减角速度的,需跟线速度协调
最大角速度,默认90度,这个也是根线速度协调
最大加速度,也是与线速度协调,因为会用这个对线速度进行加速和减速
重要参数,当目标点与机器人之间的角度差阈值大于这个,则减速.