BDDF 資料下載
前言大綱
這個例子展示如何從 GRPC 日誌 和/或 數據緩沖服務下載數據作為 bddf 數據。 bddf 格式是波士頓動力公司在 2.1 中添加到 SDK 中的文件格式。
設置相依性
此範例需要安裝 bosdyn API 和客戶端,並且必須使用 python3 運行。使用 pip,可以使用以下命令安裝這些相依性:
python3 -m pip install -r requirements.txt
運行示例
本例中有兩個腳本。 第一個是 bddf_download.py,它從機器人下載指定數據並將其保存為 bddf 文件。
另一個示例腳本是 bddf_read.py,它提取並打印存儲在 bddf 文件中的 protobuf 消息。
要查看腳本當前支持的消息類型,請運行:
$ python3 ./bddf_read.py types
要列出給定 bddf 文件中的可用消息系列,請嘗試
$ python3 ./bddf_read.py series {bddf-file}
要在 bddf 文件中提取和打印所有操作員註釋消息,請運行
$ python3 ./bddf_read.py show {bddf-file} bosdyn.api.OperatorComment
要顯示存儲在 bddf 文件中的 RobotId() GRPC 請求消息,請使用
$ python3 ./bddf_read.py show-grpc {bddf-file} bosdyn.api.RobotIdRequest
要在下面的示例命令行中運行腳本 bddf_download.py,我們將使用以下變量(Bourne-shell 語法):
USERNAME=PASSWORD= ROBOT_IP= DOWNLOAD_BDDF="python3 bddf_download.py --username ${USERNAME} --password ${PASSWORD} ${ROBOT_IP}"
指定時間跨度Specifying time spans
要獲取在 bddf_download.py 中,為數據選擇指定時間跨度所支持的格式列表:
$ python3 bddf_download.py ${ROBOT_IP} --help-timespan
A timespan is {val} or {val}-{val} where:
{val} has one of these formats:
- yyyymmdd_hhmmss (e.g., 20200120_120000)
- yyyymmdd (e.g., 20200120)
- {n}d {n} days ago
- {n}h {n} hours ago
- {n}m {n} minutes ago
- {n}s {n} seconds ago
- nnnnnnnnnn[.nn] (e.g., 1581869515.256) Seconds since epoch
- nnnnnnnnnnnnnnnnnnnn Nanoseconds since epoch
For example:
'5m' From 5 minutes ago until now.
'20201107-20201108' All of 2020/11/07.
基本資料下載
下載過去 5 分鐘(默認時間跨度)的所有數據。數據默認保存到./download.bddf。
$ ${DOWNLOAD_BDDF}
操作員評論
下載最後一天發送到數據緩衝區的所有操作員評論並保存到comments.bddf。
$ ${DOWNLOAD_BDDF} --timespan 1d --type bosdyn.api.OperatorComment -o comments.bddf
打印評論:
$ python3 ./bddf_read.py show comments.bddf bosdyn.api.OperatorComment
事件
從 2022/11/07 上存儲在數據緩衝區中的所有事件下載,並保存到 events.bddf。
$ ${DOWNLOAD_BDDF} --timespan 20201107-20201108 --type bosdyn.api.Event -o events.bddf
打印事件
$ python3 ./bddf_read.py show events.bddf bosdyn.api.Event
GRPC 請求/響應
下載 20 分鐘前到 10 分鐘前的 robots-id GRPC 請求/響應,並將它們存儲在文件 robots-id.bddf 中。
$ ${DOWNLOAD_BDDF} --timespan 20m-10m --service robot-id -o robot-id.bddf
打印請求和響應消息 :
$ python3 ./bddf_read.py show-grpc robot-id.bddf bosdyn.api.RobotIdRequest $ python3 ./bddf_read.py show-grpc robot-id.bddf bosdyn.api.RobotIdResponse
留言
張貼留言
Aron阿龍,謝謝您的留言互動!