Удалите rosbag объект средства записи из памяти
delete(
удаляет bagWriter
)rosbagwriter
объект из памяти. Функция закрывает открытый rosbag файл прежде, чем удалить объект.
Если несколько ссылок на rosbagwriter
объект существует в рабочей области, удаляя rosbagwriter
объект делает недействительным остающуюся ссылку. Используйте clear
команда, чтобы удалить остающиеся ссылки на объект из рабочей области.
rosbagwriter
ОбъектПолучите всю информацию из rosbag файла журнала.
rosbag('info','path_record.bag')
Path: /tmp/BR2021bd_1751886_255755/mlx_to_docbook7/tp95a72b0e/ros-ex73035957/path_record.bag Version: 2.0 Duration: 10.5s Start: Jul 05 2021 08:09:52.86 (1625486992.86) End: Jul 05 2021 08:10:03.40 (1625487003.40) Size: 13.3 KB Messages: 102 Types: geometry_msgs/Point [4a842b65f413084dc2b10fb484ea7f17] Topics: /circle 51 msgs : geometry_msgs/Point /line 51 msgs : geometry_msgs/Point
Создайте rosbagreader
объект всех сообщений в rosbag файле журнала.
reader = rosbagreader('path_record.bag');
Выберите все сообщения, связанные с темой '/circle'
.
bagSelCircle = select(reader,'Topic','/circle');
Получите список меток времени от темы.
timeStamps = bagSelCircle.MessageList.Time;
Получите сообщения в выборе как массив ячеек.
messages = readMessages(bagSelCircle);
Создайте rosbagwriter
возразите, чтобы записать сообщения в новый rosbag файл.
circleWriter = rosbagwriter('circular_path_record.bag');
Запишите все сообщения, связанные с темой '/circle'
к новому rosbag файлу.
write(circleWriter,'/circle',timeStamps,messages);
Удалите rosbagwriter
объект из памяти и ясный связанный объект.
delete(circleWriter)
clear circleWriter
Получите всю информацию из нового rosbag файла журнала.
rosbag('info','circular_path_record.bag')
Path: /tmp/BR2021bd_1751886_255755/mlx_to_docbook7/tp95a72b0e/ros-ex73035957/circular_path_record.bag Version: 2.0 Duration: 10.4s Start: Jul 05 2021 08:09:52.86 (1625486992.86) End: Jul 05 2021 08:10:03.29 (1625487003.29) Size: 8.8 KB Messages: 51 Types: geometry_msgs/Point [4a842b65f413084dc2b10fb484ea7f17] Topics: /circle 51 msgs : geometry_msgs/Point
Загрузите новый rosbag файл журнала.
readerCircle = rosbagreader('circular_path_record.bag');
Создайте временные ряды для координат.
tsCircle = timeseries(readerCircle,'X','Y');
Постройте координаты.
plot(tsCircle.Data(:,1),tsCircle.Data(:,2))
axis equal
rosbagwriter
ОбъектСоздайте rosbagwriter
возразите и rosbag файл в текущей рабочей директории. Задайте формат сжатия фрагментов сообщения и размер каждого фрагмента сообщения.
bagwriter = rosbagwriter("bagfile.bag", ... "Compression","lz4",... "ChunkSize",1500)
bagwriter = rosbagwriter with properties: FilePath: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tpddfbd76c/ros-ex26181333/bagfile.bag' StartTime: 0 EndTime: 0 NumMessages: 0 Compression: 'lz4' ChunkSize: 1500 Bytes FileSize: 4117 Bytes
Запустите узел и подключение к ведущему устройству ROS.
rosinit
Launching ROS Core... Done in 0.65801 seconds. Initializing ROS master on http://192.168.0.10:60864. Initializing global node /matlab_global_node_84052 with NodeURI http://bat6312glnxa64:32879/
Запишите один журнал в rosbag файл.
timeStamp = rostime("now"); rosMessage = rosmessage("nav_msgs/Odometry"); write(bagwriter,"/odom",timeStamp,rosMessage); bagwriter
bagwriter = rosbagwriter with properties: FilePath: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tpddfbd76c/ros-ex26181333/bagfile.bag' StartTime: 1.6299e+09 EndTime: 1.6299e+09 NumMessages: 1 Compression: 'lz4' ChunkSize: 1500 Bytes FileSize: 4172 Bytes
Закройте сеть ROS.
rosshutdown
Shutting down global node /matlab_global_node_84052 with NodeURI http://bat6312glnxa64:32879/ Shutting down ROS master on http://192.168.0.10:60864.
Удалите rosbag объект средства записи из памяти и очистите связанный объект.
delete(bagwriter)
clear bagwriter
Создайте rosbagreader
возразите и загрузите все сообщения в rosbag файле журнала. Проверьте недавно записанный журнал.
bagreader = rosbagreader('bagfile.bag')
bagreader = rosbagreader with properties: FilePath: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tpddfbd76c/ros-ex26181333/bagfile.bag' StartTime: 1.6299e+09 EndTime: 1.6299e+09 NumMessages: 1 AvailableTopics: [1x3 table] AvailableFrames: {0x1 cell} MessageList: [1x4 table]
bagreader.AvailableTopics
ans=1×3 table
NumMessages MessageType MessageDefinition
___________ _________________ ___________________
/odom 1 nav_msgs/Odometry {' uint32 Seq...'}
bagWriter
— Средство записи файла журнала ROSrosbagwriter
объектСредство записи файла журнала ROS в виде rosbagwriter
объект.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.