autoware.universe源码略读3.20--perception:radar_tracks_msgs_converter
- Overview
- radar_tracks_msgs_converter_node
Overview
这里看起来是非常简单的一个模块,作用就是把radar_msgs/msg/RadarTracks类型的消息数据转换到autoware_auto_perception_msgs/msg/TrackedObject, 这里对应的应该是radar的跟踪信息
radar_tracks_msgs_converter_node
来简单看下这个节点类吧,这里就不分开写了,在构造函数里还是设置了一个参数回调以及加载参数,这里涉及到的参数有
update_rate_hz
(double): The update rate [hz].- Default parameter is 20.0
new_frame_id
(string): The header frame of output topic.- Default parameter is “base_link”
use_twist_compensation
(bool): If the parameter is true, then the twist of output objects’ topic is compensated by ego vehicle motion.- Default parameter is “false”
这里的操作是通过一个timer_
实现的,对应到文件里就是onTimer
函数,然后在这里又是直接调用convertRadarTrackToTrackedObjects()
的
const auto & header = radar_data_->header;
transform_ = transform_listener_->getTransform(node_param_.new_frame_id, header.frame_id, header.stamp, rclcpp::Duration::from_seconds(0.01));
TrackedObjects tracked_objects = convertRadarTrackToTrackedObjects();
然后这里的转换,核心其实又是坐标转换,所以感觉也没什么好写的,包括坐标、速度以及对应的协方差等等。当然这里也进行了标签的转换,对应关系如下
RadarTrack | Autoware | |
---|---|---|
UNKNOWN | 32000 | 0 |
CAR | 32001 | 1 |
TRUCK | 32002 | 2 |
BUS | 32003 | 3 |
TRAILER | 32004 | 4 |
MOTORCYCLE | 32005 | 5 |
BICYCLE | 32006 | 6 |
PEDESTRIAN | 32007 | 7 |
所以这确实是一个没什么好说的类,应该也是最近看的最轻松的一个了。。