代码目录
common
amathutils_lib
- 卡尔曼滤波
- 巴特沃斯滤波
- 时延卡尔曼滤波
autoware_build_flags
cmake配置,设置编译器和c++版本以及一些标志位
autoware_health_checker
- 健康信息聚合
- 健康信息分析
- 健康信息检查
- 系统状态订阅
emergency_handler
紧急错误处理,包括:
- 节点错误
- 硬件错误
- 紧急处理错误
gnss
- 定位卫星设置
- 经纬度坐标转换为xyz坐标(GPS平面坐标)
lanelet2_extension
IO
- Autoware OSM解析
投影
- MGRS投影
交规元素
- Autoware交通信号灯
工具
- 消息转换:lanelet数据转成ros消息
- 查询:从地图查询各种信息,比如人行横道,交通信号灯,停止线
- 工具:lanelet有用的函数,比如和lanelet匹配路径点
可视化
把lanelet对象转换成可视化marker消息
libvectormap
定义了一些基础的矢量地图数据类型
libwaypoint_follower
途经点跟随,pure_pursuit纯追踪算法
map_file
- curl下载地图API封装
- lanelet地图读取和可视化
- 点云地图加载:根据不同的margin下载保存不同的点云地图并加载发布
- 点云地图滤波
- 矢量地图加载:和lanelet不一样,包含很多csv表格数据
object_map
激光雷达和高精地图(ADAS)提取的特征信息,发布grid_map和occupancy grid
- grid_map_filter:结合传感器、地图和感知数据以及其他占据网格。
- laserscan2costmap:雷达数据转costmap
- wayarea2grid:把ADAS里面的道路区域(可通行区域)投影到占据图中
- wayarea2grid_lanelet2:把lanelet2里面的可通行区域投影到占据图中
- potential_field:
op_planner
open planner,局部路径规划
op_ros_helpers
open planner和ROS的一些数据转换
op_simu
open planner仿真
op_utility
数据读写,常用的角度转换,时间比较,滤波和PID控制等
ros_observer
使用共享内存来进行进程监控
tvm_utility
TVM工具,用来构建TVM机器学习管道
vector_map
矢量地图的读写和存取
vector_map_server
矢量地图服务器和客户端,用service的形式发布不同的矢量地图图层
vehicle_sim_model
车辆仿真
core_perception
autoware_connector
can总线连接
ekf_localizer
扩展卡尔曼滤波定位
gnss_localizer
全球卫星定位
image_processor
图片处理,包括图片裁剪和图片去畸变和翻转
imm_ukf_pda_track
马尔科夫链进行模型 无迹卡尔曼滤波,经典数据关联方法(NNDA、PDA、JPDA)
lidar_apollo_cnn_seg_detect
百度Apollo目标细分CNN网络
lidar_euclidean_cluster_detect
点云欧几里得簇分割,参考《点云库PCL从入门到精通》
lidar_fake_perception
生成虚假目标
lidar_imm_ukf_pda_track
lidar_kf_contour_track
基于卡尔曼滤波的目标跟踪
lidar_localizer
激光雷达点云建图和定位,包括IPC和NDT方法配准
lidar_naive_l_shape_detect
雷达车辆目标检测(3D-LIDAR Multi Object Tracking for Autonomous Driving: Multi-target Detection and Tracking under Urban Road Uncertainties)
https://repository.tudelft.nl/islandora/object/uuid:f536b829-42ae-41d5-968d-13bbaa4ec736
lidar_point_pillars
3D目标检测,深度神经网络,点柱
https://openaccess.thecvf.com/content_CVPR_2019/papers/Lang_PointPillars_Fast_Encoders_for_Object_Detection_From_Point_Clouds_CVPR_2019_paper.pdf
lidar_shape_estimation
L-Shape车辆目标检测
Efficient L-shape fitting for vehicle detection using laser scanners
https://www.researchgate.net/publication/318810802_Efficient_L-shape_fitting_for_vehicle_detection_using_laser_scanners
naive_motion_predict
其他车辆运动预测
https://www.youtube.com/watch?v=T6ediU0CHP0
ndt_cpu
CPU版本的ndt配准
ndt_gpu
GPU版本的ndt配准
ndt_tku
ndt的tku方式优化
Trilinear interpolation
http://boochlin.com/?p=271
obj_db
netdb网络数据库封装
pcl_omp_registration
openMP配准
pixel_cloud_fusion
把点云转换到图像空间,增加RGB信息然后转换回去发布彩色点云
points_downsampler
点云下采样
points_preprocessor
点云预处理
- 点云变换
- 和地图比较滤波
- concatenate滤波
- Ray Ground滤波提取地面点云
- Ring Ground滤波
- Space滤波
pos_db
位置信息下载上传,通过netdb
range_vision_fusion
距离传感器和视觉融合,把距离传感器检测到的物体和视觉检测到的物体融合,当在2d目标检测中重合度超过50%会执行匹配,图像检测的2d目标会和3d目标关联
road_occupancy_processor
生成道路的占据图,使用过滤后的点云和ADAS地图,占据图为2d的8bit位图
roi_object_filter
从感兴趣区域移除掉检测的目标,比如只关心当前车道,就把其他位置的目标去掉
trafficlight_recognizer
信号灯识别
twist_generator
根据车辆状态信息和估计的twist,用递推最小二乘法估计线速度角速度修正系数
vel_pose_diff_checker
检查定位Pose帧和速度Twist帧的时效性,超过阈值打印警告
vision_beyond_track
基于视觉的目标跟踪
vision_darknet_detect
基于Darknet的Yolov3、Yolov2图像检测
vision_lane_detect
基于视觉的车道检测,使用OpenCV分割图像
vision_segment_enet_detect
基于视觉的ENet检测
vision_ssd_detect
基于视觉的SSD(Caffe)检测
core_planning
astar_search
基于costmap的A*搜索
costmap_generator
读取点云和DetectedObjectArray创建占据网格(OccupancyGrid)和网格图(GridMap)
decision_maker
管理车辆状态,给定路径点状态、行为和移动状态。每种状态都由状态机管理
车辆,任务,行为,运动
dp_planner
航迹动态规划,相关的内容包括:DP-Path、QP-Path、DP-Speed、QP-Speed
ff_waypoint_follower
跟线算法
freespace_planner
在有静态和动态目标的空间中规划路径点
Astar Navi:基于混合A*算法
lane_planner
- lane_rule_lanelet2:检测和路径点交互的交通信号灯,通过改变速度使得信号灯变红后在停车线前面停下来
- lane_select:车道选择
- lane_navi:车道导航
- lane_rule:车在停车线的加速,在十字路口的加速等规则
- lane_stop:停车
lattice_planner
LatticePlanner算法属于一种局部轨迹规划器,输出轨迹将直接输入到控制器,由控制器完成对局部轨迹的跟踪控制。因此,Lattice Planner输出的轨迹是一条光滑无碰撞满足车辆运动学约束和速度约束的平稳安全的局部轨迹。Lattice Planner的输入端主要由三部分组成,感知及障碍物信息、参考线信息及定位信息。
- lattice_trajectory_gen:航迹生成
- lattice_twist_convert:速度转换
- lattice_velocity_set
- path_select
ll2_global_planner
在Lanelet2中规划寻找路径
mpc_follower
一个基于模型预测控制(MPC)的路径点跟踪器,用于精确的路径跟踪。这可以作为路径点跟踪器,也可以作为其他路径点跟踪节点,如pure_pursuit。
op_global_planner
这个节点在地图上生成从起点到目标点的全局路径。该算法可以扩展到处理其他花费(costs),如动态地图中的右转和左转的繁忙车道。它支持自动矢量地图和特殊设计的.kml地图。
op_local_planner
以前被称为dp_planner,现在它是一个节点的集合,每个任务的局部规划被分开。论文:Open Source Integrated Planner for Autonomous Navigation in Highly Dynamic Environments
op_simulation_package
为帮助测试规划算法而开发的节点集合,它可以与任何规划器一起使用。 它由三个主要模块组成(感知模拟器、交通灯模拟器、车辆模拟器)。
op_utilities
- op_bag_player:基于OpenGL的rosbag文件播放器,它可以逐帧播放,但只支持3种类型的主题(激光雷达数据点云、当前姿势、图像)。
- op_pose2tf:这个节点接收ndt_pose,并将当前的pose TF发布到autoware系统,所以我们不需要再次运行ndt_matching。
- op_data_logger:数据记录
pure_pursuit
纯跟踪算法
state_machine_lib
状态机库
twist_filter
速度滤波,低通、车速平滑
twist_gate
way_planner
waypoint_maker
- waypoint_clicker
- waypoint_creator
- waypoint_extractor
- waypoint_loader
- waypoint_marker_publisher
- waypoint_replanner
- waypoint_saver
- waypoint_velocity_visualizer
waypoint_planner
航点规划器包提供了动态规划避让行为、航点速度等的本地规划器节点。
- astar_avoid
- velocity_set
- velocity_set_lanelet2