遠程任務服務 Remote Mission Service
前言大綱
此示例演示如何
- 運行一個實現 RemoteMissionService 服務定義的 gRPC 服務器。
- 將 RemoteClient 直接連接到該服務器。
- 建立一個與該服務器對話的任務。
- 這是自動行走任務的“回調callback”動作所使用的新模式。
設置相依性
python3 -m pip install -r requirements.txt
運行示例
沒有機器人的情況下跑步
python3 hello_world_mission_service.py local --port {PORT}
2021-01-27 10:29:27,602 - INFO - Started the HelloWorldServicer server.
hello-world-callback service running.
Ctrl + C to shutdown.
要啟動客戶端,請運行
其中 PORT 與提供給服務器應用程序的端口號匹配。 客戶端應該立即連接到本地服務器,服務器和客戶端都會打印出一些信息。
服務器輸出將如下所示:
2021-01-27 10:37:23,338 - INFO - EstablishSession unimplemented!
2021-01-27 10:37:23,339 - INFO - Hello World!
2021-01-27 10:37:23,340 - INFO - Stop unimplemented!
2021-01-27 10:37:23,340 - INFO - TeardownSession unimplemented!
客戶端輸出將如下所示:
服務器將打印出“Hello Spot!”而不是“Hello World!”
和機器人一起跑步
python3 power_off_mission_service.py ROBOT_IP --port {PORT} --host-ip {ENDPOINT_IP} --username {USER} --password {PASSWORD}
此示例將兩個不同的 IP 地址作為參數。 --host-ip 參數描述將運行服務的計算機的 IP 地址。 存在幫助程序來嘗試確定正確的 IP 地址。 此命令必須在將運行遠程任務服務的同一台計算機上運行:
python3 -m bosdyn.client --username {USER} --password {PASSWORD} {ROBOT_IP} self-ip
Servicer stopped with status STATUS_SUCCESS
- 使用 wasd 示例為機器人通電並使其站立起來。
- 使用 [l] 鍵返回 wasd 的租約。
- 運行客戶端。
- 您必須在返回 wasd 的租約後 3 秒內運行客戶端,否則將啟動正常的通信丟失策略。 為避免通過平板電腦觸發回調時出現租約錯誤,請在確認操作之前選擇“第 3 方3rd Party”選項。
將示例用作 Autowalk 任務的一部分
任務服務示例將作為 Autowalk 任務的一部分工作,在 Spot 到達回調時執行其操作。
第一步:啟動遠程任務服務器
以下兩個命令行顯示在 CORE 或 wifi 筆記本電腦上啟動服務
(on core) python3 hello_world_mission_service.py robot --host-ip 192.168.50.5 --username {USER} --password {PASSWORD} 192.168.50.3 (on laptop over wifi) python3 hello_world_mission_service.py robot --host-ip {YOUR_IP} --port {OPEN_PORT} --username {USER} --password {PASSWORD} 192.168.80.3
這兩個命令都應該輸出如下內容:
2020-10-30 14:21:41,577 - INFO - Started the HelloWorldServicer server.
2020-10-30 14:21:41,585 - INFO - hello-world-callback service registered/updated.
2020-10-30 14:21:41,585 - INFO - Starting directory registration loop for hello-world-callback
請注意,這兩個命令都針對機器人,但也會通知機器人服務器本身運行的 IP 地址。您可能必須更改防火牆設置才能成功進行通信。
第二步:用回調記錄自動行走任務
- 在錄製 Autowalk 任務之前,您必須啟動服務器(第一步)。
- 在平板電腦上,從漢堡菜單中選擇操作。 您應該會看到列出的回調,例如“Hello World Callback”。 請注意,如果您沒有執行第一步,則不會出現此問題!
- 如果單擊回調默認值,則可以命名回調並配置要發送到服務器的任何用戶變數。
- Spot 站起來並選擇 Autowalk。
- 稍微移動機器人,然後選擇 + 號以創建動作航點。
- 選擇您的回調。
- 完成錄製和播放,您應該會看到您的服務器打印出如下內容:
2020-11-04 14:00:24,695 - INFO - EstablishSession unimplemented!
2020-11-04 14:00:34,009 - INFO - Hello Hello World Callback - Hello World Callback - 1!
2020-11-04 14:00:34,109 - INFO - Stop unimplemented!
請注意“Hello Hello World Callback - Hello World Callback - 1!” 表明您確實收到了回調,因此您現在只需要在服務器中實現方法來執行您想要的工作、做出決定....等。
留言
張貼留言
Aron阿龍,謝謝您的留言互動!