發表文章

目前顯示的是有「Spot-Python」標籤的文章

禁用紅外線發射

前言大綱 此示例演示如何使用 IREnableDisableServiceClient 啟用/禁用機器人在身體和手部傳感器中的紅外光發射器。 了解 Spot 編程 為獲得最佳學習體驗,請使用 SDK 的 docs/python 目錄中的 快速入門指南 Quickstart Guide 。 這將幫助您正確設置 Python 編程環境。 設置相依性 此示例需要安裝 bosdyn API 和客戶端,並且必須使用 python3 運行。 使用 pip,可以使用以下命令安裝這些相依性: python3 -m pip install -r requirements.txt 運行範例 運行示例,如下: python3 disable_ir_emission.py --username USER --password PASSWORD ROBOT_IP (--enable | --disable) 參考資料 Disable IR Emission 特色、摘要,Feature、Summary: 關鍵字、標籤,Keyword、Tag:

第 5 部:檢測人員和玩 Fetch - Detecting People and Playing Fetch

圖片
前言大綱 恭喜,您距離功能齊全、可玩的 Spot 僅一步之遙! 最後一步是教 Spot 檢測人。 雖然我們可以訓練一個新的 ML 模型,就像我們在 第 2 部分 中所做的那樣,但我們將使用工作量更少的 現成off-the-shelf 模型,並且可能會產生更好的性能。 加載現成的模型 我們將使用我們用於 轉換學習 的相同模型。 這有許多優點: 它具有足夠的人員檢測性能。 結構是相同的,所以我們不必改變我們調用模型的方式。 獎勵:你已經擁有了! 將標籤文件複製到模型目錄中: cp ~/fetch/models-with-protos/research/object_detection/data/mscoco_label_map.pbtxt ~/fetch/dogtoy/pre-trained-models/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/ 要加載模型,請使用附加的 -m 參數調用 network_compute_server.py 。 如果您仍在運行 network_compute_server.py 用 ^C 停止它 使用新模型及其標籤重新啟動它: cd ~/fetch python network_compute_server.py -m dogtoy/exported-models/dogtoy-model/saved_model dogtoy/annotations/label_map.pbtxt -m dogtoy/pre-trained-models/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/saved_model dogtoy/pre-trained-models/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/mscoco_label_map.pbtxt --username user --password YOUR_ROBOTS_PASSWORD 192.168.80.3 哎呀! 讓我們分解一下: python network_compute_server.py 調用我們的腳本。 -m dogtoy/exported-models/dogtoy-model/saved_model dogtoy/an...

第 4 部:自主取貨 Autonomous Pick Up

圖片
前言大綱 現在我們可以識別玩具了,我們將編寫一個腳本來自動撿起它。 在 ~/fetch 文件夾中創建一個名為 fetch.py 的新文件。 粘貼或 下載 以下內容: 注意:如果您下載該文件,請將其重命名為 fetch.py import argparse import sys import time import numpy as np import cv2 import math import bosdyn.client import bosdyn.client.util from bosdyn.client.robot_state import RobotStateClient from bosdyn.client.robot_command import RobotCommandClient, RobotCommandBuilder, block_until_arm_arrives from bosdyn.api import geometry_pb2 from bosdyn.client.lease import LeaseClient, LeaseKeepAlive from bosdyn.api import image_pb2 from bosdyn.client.network_compute_bridge_client import NetworkComputeBridgeClient from bosdyn.api import network_compute_bridge_pb2 from google.protobuf import wrappers_pb2 from bosdyn.client.manipulation_api_client import ManipulationApiClient from bosdyn.api import manipulation_api_pb2 from bosdyn.api import basic_command_pb2 from bosdyn.client import frame_helpers from bosdyn.client import math_helpers kImageSources = [ 'frontleft_fisheye_image...

第 3 部:評估模型 Evaluating the Model

圖片
前言大綱 在本教程的這一部分中,您將:  根據測試數據評估您的模型。  將您的模型連接到 Spot。  使用 Spot 的平板電腦實時查看您的模型。 將檢查點轉換為在線模型 首先,我們需要將我們的訓練輸出轉換為我們可以在線使用的模型。 將轉換腳本複製到方便的位置: cp models-with-protos/research/object_detection/exporter_main_v2.py . 為我們導出的模型創建一個目錄: mkdir -p dogtoy/exported-models/dogtoy-model 運行導出器: python exporter_main_v2.py --input_type image_tensor --pipeline_config_path dogtoy/models/my_ssd_resnet50_v1_fpn/pipeline.config --trained_checkpoint_dir dogtoy/models/my_ssd_resnet50_v1_fpn/ --output_directory dogtoy/exported-models/dogtoy-model 評估模型 現在我們將在一些圖像上運行我們的模型並確保結果是可以接受的。  下載 eval.py 腳本並將其保存在 ~/fetch  為輸出圖像創建一個目錄 mkdir -p dogtoy/output 評估所有圖像: python eval.py -i dogtoy/images -m dogtoy/exported-models/dogtoy-model/saved_model -l dogtoy/annotations/label_map.pbtxt -o dogtoy/output 如果一切順利,您將獲得一堆帶有圍繞狗玩具的邊界框的圖像! 故障排除 如果很多邊界框不正確或丟失,您需要進行故障排除。 模型是否在  訓練集中的圖像  上失敗? 如果是這樣,則說明在訓練過程中出現問題,因為模型無法處理在訓練過程中已經看到的數據。 這通常意味著您的訓練存在結構性問題。 仔細檢查您是否從我們的 清單中 checkl...

第 2 部:訓練模型 Training the Model

圖片
前言大綱 在本教程的這一部分中,您將: 安裝 TensorFlow。 下載預訓練的模型權重(用於傳遞學習)。 訓練狗玩具尋找模型。 在 Spot 上及時可視化我們模型的性能。 我們將密切關注 本教程 this tutorial ,並對來自 Spot 的數據稍作修改。 我們遵循此示例來演示大多數 開箱即用out-of-the-box 的模型易於與 Spot 配合使用。 我們已經包含了您在此過程中需要的關鍵 Spot 特定提示。 安裝 TensorFlow、CUDA 和 cuDNN 有  很多 many , 關於如何做到這一點的 很多 many  優秀指南。 我們將在這裡介紹基本步驟,但最好在別處找到不同系統的詳細信息。 安裝 NVIDIA 驅動程序、CUDA 和 cuDNN 我們不會在此處介紹系統特定的 NVIDIA 驅動程序、CUDA 或 cuDNN 安裝。 使用上面的鏈接獲取安裝指南。 您必須安裝 CUDA 10.1 版 10.1 以外 的 CUDA 和 cuDNN 版本將無法使用。 安裝 TensorFlow 輸入您的 Spot API virtualenv 將 my_spot_env 替換為您在 Spot  快速入門指南Spot Quickstart Guide 中創建的 virtualenv 的名稱: source my_spot_env/bin/activate 如果這有效,您的提示現在應該有 ( my_spot_env ) 在前面。  安裝 TensorFlow python -m pip install --upgrade pip python -m pip install tensorflow-gpu==2.3.1 tensorflow==2.3.1 tensorboard==2.3.0 tf-models-official==2.3.0 pycocotools lvis python -m pip uninstall opencv-python-headless Tensorflow 喜好安裝非 GUI 版本的 OpenCV,這會給我們以後帶來問題 我們可以安全地卸載它,因為我們已經安裝了 OpenCV。 測試 TensorFlow 和 CUDA 安裝 (my_spo...

拿取教程(Fetch Tutorial)

前言 在本教程中,您將創建一個功能齊全的 API 示例,使 Spot 能夠自動與您一起玩 fetch。 您將學習如何: 訓練 機器學習模型來檢測狗玩具 使用 Spot 的平板電腦在線 可視化 該模型的結果 命令機器人用手臂和操作 API 拿起狗玩具 使用 現成的off-the-shelf  機器學習ML 模型來  檢測一個人 將 狗玩具 扔到離人兩米遠的地方 最後,您將擁有一個功能齊全的 API 示例,該示例使 Spot 能夠與您一起自主播放提取。 所需材料 帶手臂的機器人 狗玩具、手巾或任何符合以下條件的物品: 具有鮮明的視覺外觀 在平板電腦視圖中很容易看到 Spot 的手臂能夠進行拾取,使用平板電腦中的 拾取物件Pick Up Object  選項 一台運行 Ubuntu 18.04 的電腦 支持 CUDA 的 GPU 一個相對較大的操作區域(5x5米) 大綱 第 2 部:訓練模型 Training the Model 第 3 部:評估模型 Evaluating the Model 第 4 部:自主取貨 Autonomous Pick Up 第 5 部:檢測人員和玩 Fetch - Detecting People and Playing Fetch 收集和標記訓練數據 概述 我們將使用遷移學習來快速有效地訓練一個模型來尋找狗玩具。 使用 Spot 做 狗玩具的  圖像收集 collect images 下載預訓練的模型權重 訓練 頂層識別模型 top layers of the model  來識別我們的狗玩具 設置 Python 3 和 Spot SDK 按照 Spot SDK 的 快速入門指南 Quickstart guide  進行操作。 注意:本教程需要該指南的 virtualenv 部分。 當你使用 API,成功使 Spot 移動後,您就可以開始了。 source my_spot_env/bin/activate # enter your virtualenv cd ~/spot-sdk/python/examples/hello_spot # or wherever you installed Spot SDK python3 hello_spot.py -...