Package apollo-data contains a tool named smart recorder, which is targeting to reduce the recording data size. Instead of recording all the topics all the time, it selectively records by the following way.
- All the small topics all the time. These include "/apollo/localization/pose", "/apollo/canbus/chassis" and so on, which are samll in size.
- Large topics only in specified scenarios. These include sensor data include all "PointCloud" and "Camera" topics, which are large in size. The specific scenarios are configurable, as well as the time range for recording when the specified scenario occurs.
modules/data/
├── BUILD
├── cyberfile.xml
├── proto
├── README.md
└── tools // smart recorder
- Build apollo in source env or install
apollo-scripts
andapollo-data
package in package management env - python3 /apollo/scripts/record_message.py --help
- Configure the new scenario in conf/smart_recorder_config.pb.txt, including time range, name, description and etc.
- Add new class inherit from base class "TriggerBase", and implement interface "Pull"
- Add the instance of the new class into triggers pool inside function "ProcessRecord::InitTriggers"