Select Page
建立自己的 HopeJR 機器人教學|外骨骼與手套控制精準人形機械手臂

建立自己的 HopeJR 機器人教學|外骨骼與手套控制精準人形機械手臂

建立自己的 HopeJR 機器人!

建造您自己的 SO-101 機器人

你有想要一隻能做精密手部操作的人形機器人?

HopeJR 正是這樣一款開源專案:具備人手與機械手臂,搭配外骨骼(exoskeleton)與手套控制,能實現靈巧、精確的手部動作,非常適合高階操作任務。

以下帶大家從硬體到軟體,完整建立 HopeJR 的流程教學與心得。

HopeJR 是什麼?

  • HopeJR 是舉債於 LeRobot 專案下的一款開放源碼人型機械手臂與手的系統。使用者可以以手套與外骨骼裝置控制 HopeJR 的手與手臂動作。
  • 它包含幾個模組化的部分:機械手、機械臂、手套(glove)、外骨骼(exoskeleton)控制器。硬體、軟體皆為開源。

建置 HopeJR 教學

以下是步驟示範,讓你從零開始組裝與操作 HopeJR。

一、環境與先決條件

  • 有外骨骼與手套控制器(homunculus_glove/homunculus_arm 等)
  • 有機械手與機械手臂硬體模組
  • 一台能連接這些裝置的電腦,USB 接口、驅動支援
  • 安裝 Python 3.10+,PyTorch 等軟體環境,以及 LeRobot 套件

二、安裝 LeRobot 套件

git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[hopejr]"

三、設備端與通訊埠設定(Device Configuration)

  1. 使用 lerobot-find-port 指令來找出每個 HopeJR 組件(手臂、手、手套、外骨骼控制器)的 USB 埠。
  2. 記錄每個模組對應的 port,例如 /dev/tty.usbmodemXXXX 或 Windows 上的類似 COM 埠,用於後續校正和遙控。

四、校正(Calibration)

為了讓控制更加精確,你必須為每個組件做校正:

  • 手(Hand)校正:把手指關節全部移動至可動範圍,設定最小/最大角度。
  • 手套(Glove)校正:同樣地,移動手套中每根手指的所有關節,記錄該裝置讀值的最小與最大。
  • 手臂(Arm)校正:肩膀、手肘、手腕的 pitch/yaw/roll 等關節都要校正動作範圍。
  • 外骨骼(Exoskeleton)校正:這部分讓人手動作透過外骨骼映射到 HopeJR 的機械手臂,在校正時要移動所有關節達到最大與最小。

校正結果會保存在本地,例如 ~/.cache/huggingface/lerobot/calibration/... 的路徑內。

五、遠端操作(Teleoperation)

校正完成後,就能使用遙控命令讓你手與手臂控制 HopeJR 機械手部分動作:

lerobot-teleoperate \
  --robot.type=hope_jr_hand \
  --robot.port=<手的 USB 埠> \
  --robot.id=blue \
  --robot.side=right \
  --teleop.type=homunculus_glove \
  --teleop.port=<手套 USB 埠> \
  --teleop.id=red \
  --teleop.side=right \
  --display_data=true \
  --fps=30

對手臂同樣使用遠端操作命令,只是 robot.type 填 hope_jr_arm,teleop.type 用 homunculus_arm。

六、錄製、重放與訓練(Record/Replay/Train)

  • Record:錄製你用手套/外骨骼控制手部或手臂的操作數據,配合影像或鏡頭視訊。這些資料可以用來訓練模型。
  • Replay:重放之前錄製的數據,測試操作是否準確。
  • Train:若你想讓你的 HopeJR 有自主行為或能在某些動作上優化,可以用 LeRobot 的訓練指令,搭配錄製的資料或模擬環境進行強化學習或 imitation learning。

HopeJR 的優勢與適用場景

優勢項目說明
精準控制外骨骼 + 手套 + 校正過程能實現手指、手腕、肩肘等關節的細緻動作。
模組開源HopeJR 所有硬體與軟體部分為開源,可以自行組裝或改裝。
適合高階任務適用於需要精細手部操作的任務,例如物件操作、握持/擺動、復健機器人等。
社群與生態支持LeRobot 有模型、範例、文檔與活躍社群可協助新手入門。

延伸閱讀

官網:

https://github.com/huggingface/lerobot

說明:

https://huggingface.co/docs/lerobot/hope_jr

硬體教學:

https://huggingface.co/docs/lerobot/so101

LaneSOD 教學:用 InSPyReNet 架構完成車道線分割!

LaneSOD 是一套基於 InSPyReNet(逆向顯著性金字塔重建網路)而延伸出的開源模型,專門針對車道線分割(Lane Segmentation),應用於駕駛場景的 AI 視覺處理中。透過強大的顯著性檢測技術,LaneSOD 能精準辨識道路上的車道線,具備高準確度與可用性。


一、什麼是 LaneSOD?

  • 核心技術:LaneSOD 架構於 InSPyReNet,後者是一種高解析度顯著性物件偵測模型,於 ACCV 2022 上提出,專門處理高解析度圖片的顯著性檢測,使用金字塔結構融合多階層特徵提高精度。
  • 執行場景:LaneSOD 適用於駕駛視角的車道識別,尤其在多車道或複雜光線下仍能穩定運作,是自駕輔助或智慧交通系統的理想工具。

二、快速上手:使用 LaneSOD 的流程概覽

以下以 Python + PyTorch 環境為基礎,簡述流程步驟:

安裝依賴與下載模型:

git clone https://github.com/plemeri/LaneSOD.git
cd LaneSOD
pip install -r requirements.txt

    資料準備與推論:

    from lanesod import LaneSODModel
    model = LaneSODModel(pretrained=True)
    # 載入測試影像
    img = load_image("road_scene.jpg")
    mask = model.predict(img)
    save_image_mask("road_scene_mask.png", mask)

    mask 是二值化輸出,車道線處為前景。

    可進行後處理(edge filtering)提升視覺辨識效果。

    三、LaneSOD 的特色亮點

    • 高解析度精準分割:繼承 InSPyReNet 的頂尖顯著性分析能力,即使複雜場景仍保持高精度。
    • 簡易套件整合:支援 CLI 和 Python API,開發者可快速整合至專案。
    • 應用靈活性高:適用於單張圖片、影片逐幀處理或即時影像分析。
    • MIT 開源授權:自由使用並可擴展至商業應用。

    四、實戰建議

    • 強調後處理:可搭配 OpenCV 做 morphological operations(如 dilation, erosion)強化車道線連貫性。
    • 影片整合:巡迴處理影片每幀、並套用 temporal smoothing,可提升邊界一致性與視覺效果。
    • 多元測試場景:建議在白天、夜晚、陰影等多樣環境下測試模型穩定性。

    原始資料

    https://github.com/plemeri/LaneSOD

    Python 快速實戰:transparent-background AI 去背工具支援 webcam 使用指南

    如何輕鬆地運用 AI 技術,讓影片或直播畫面擁有透明背景,無需繁鎖編輯與圖層操作!今天分享的工具是使用 InSPyReNet 提供的開源套件

    工具簡介:什麼是 transparent-background[webcam]

    • 核心技術:基於 InSPyReNet(ACCV 2022)所提出的 AI 去背演算法,支援圖片、影片甚至 webcam 的背景移除功能 。
    • Python 套件:名稱為 transparent-background,採 MIT 授權,可自由商業使用。
    • 強大特色
      • 支援多種輸出模式:如 RGBA(透明背景)、saliency map、綠幕、背景模糊、overlay 等。
      • 支援 webcam 輸入,但 Linux 上需安裝 v4l2loopback 才能建立虛擬攝影機

    安裝與依賴設定(含 webcam 支援)

    安裝套件

    pip install transparent-background[webcam]

    若使用 Linux,請安裝 webcam relay

    git clone https://github.com/umlaeute/v4l2loopback.git && cd v4l2loopback
    make && sudo make install
    sudo depmod -a
    sudo modprobe v4l2loopback devices=1
    

    CLI 快速範例

    transparent-background --source 0 --dest output_folder --type rgba

    參數說明:

    • --source 0 表示 webcam 輸入(一般第一支 webcam 為 0)。
    • --type rgba 代表輸出為帶 alpha 通道的透明背景影像。
      可依需求更換為 mapgreenbluroverlay 或指定背景圖

    用於單一影片檔案

    Python API 範例:

    讀取 webcam 並顯示去背畫面

    import cv2
    from transparent_background import Remover
    
    remover = Remover()
    
    cap = cv2.VideoCapture(0)  # 開啟預設 webcam
    
    while True:
        ret, frame = cap.read()
        if not ret:
            break
    
        # 處理去背結果(RGBA)
        out = remover.process(frame, type="rgba")  
        cv2.imshow("Transparent Webcam", out)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()
    

    📖 transparent-background 參數說明

    --source [SOURCE](必填)

    指定輸入的資料來源,可以是:

    • 單張圖片:例如 image.png
    • 圖片資料夾:例如 path/to/img/folder
    • 單個影片檔:例如 video.mp4
    • 影片資料夾:例如 path/to/vid/folder
    • 整數:用於指定 webcam 地址,例如 0(對應 /dev/video0 的攝影機)

    --dest [DEST](可選)

    輸出結果存放的資料夾,若未指定,則預設為當前工作目錄


    --threshold [THRESHOLD](可選)

    設定硬性去背的閾值,範圍為 0.0 ~ 1.0

    • 不建議與 soft prediction 同時使用,若未設定,系統會使用「軟性預測」來生成更自然的透明效果。

    --type [TYPE](可選)

    選擇輸出的背景類型,預設為 rgba

    • rgba:輸出帶透明通道的影像(alpha map),若未設定 threshold,會自動透過 pymatting 進行前景提取。⚠️ 此模式不適用於影片或 webcam
    • map:輸出純粹的 saliency map(灰階遮罩)。
    • green:將背景換成綠幕。
    • white:將背景換成純白色(由 [carpedm20] 貢獻)。
    • ‘[255, 0, 0]’:使用指定的 RGB 顏色作為背景(需加單引號)。
    • blur:將背景模糊處理。
    • overlay:以半透明綠色覆蓋前景並突顯邊緣。
    • 另一張圖片:可指定圖片路徑(例如 samples/background.png),前景會直接疊加在該背景上。

    --ckpt [CKPT](可選)

    使用其他模型檔(checkpoint)。

    • 預設會自動下載訓練好的 composite dataset 模型
    • 你也可以從 InSPyReNet Model Zoo 選擇不同的預訓練模型。

    --mode [MODE](可選)

    指定運行模式:

    • base:標準模式。
    • base-nightly:使用 nightly release 版本的 checkpoint。
    • fast:快速模式,速度快但可能在細節上略有損失。

    其他選項

    • --resize [RESIZE](可選):
      • static(預設):輸出尺寸固定。
      • dynamic:生成更清晰的邊緣,但可能不穩定。
    • --format [FORMAT](可選):輸出格式,若未指定,會與輸入格式相同。
    • --reverse(可選):反轉去背結果,將前景移除、保留背景(官方玩笑稱為「transparent-foreground」模式 😆)。
    • --jit(可選):啟用 TorchScript 模式,會先透過 PyTorch JIT 編譯器追蹤模型,初始化較慢,但推論速度更快且記憶體佔用更低。

    範例

    單張圖片去背(輸出透明 PNG):

    transparent-background --source input.png --dest output --type rgba

    處理整個資料夾的圖片,並輸出模糊背景效果

    transparent-background --source ./images --dest ./results --type blur

    即時 webcam 去背(Linux 需安裝 v4l2loopback):

    transparent-background --source 0 --dest ./webcam_output --type green

    更換背景為自訂圖片

    transparent-background --source video.mp4 --dest ./output --type 'backgrounds/bg.png'

    GUI 模式

    安裝 GUI 支援

    pip install --extra-index-url https://download.pytorch.org/whl/cu118 transparent-background[gui] # with gui dependency (flet)

    開啟 GUI

    transparent-background-gui

    官方教學

    官方網頁

    https://github.com/plemeri/transparent-background

    採用的演算法

    https://github.com/plemeri/InSPyReNet

    開源的後製影片軟體

    https://kdenlive.org

    參考資料