メインコンテンツまでスキップ

LeRobot における reBot Arm B601-DM

License: MITPython VersionPlatformPinocchio

6自由度ロボットアーム · 複数モーター対応 · 運動学ソルバー · 軌道計画 · 完全オープンソース

reBot Arm B601-DM は、Seeed が立ち上げたオープンソースのロボットアームプロジェクトで、エンボディドインテリジェンス学習のハードルを下げることを目的としています。すべての構造設計とコードを余すところなくオープンソース化し、ロボティクス技術を誰もが利用できるようにしています。

LeRobot は、PyTorch 上で実世界ロボティクス向けのモデル、データセット、ツールを提供することに注力しています。その目的はロボティクスの参入障壁を下げ、誰もがデータセットや事前学習済みモデルを共有し、貢献し、恩恵を受けられるようにすることです。LeRobot は、模倣学習と強化学習を中心に、実世界で検証された最先端の手法を統合しています。人間によるデモ収集に基づくデータセット、事前学習済みモデル群、シミュレーション環境を提供しており、ユーザーはロボットの組み立てを行わなくてもすぐに始めることができます。

このWikiでは、reBot-DevArm のデバッグチュートリアルを提供し、LeRobot フレームワーク内でのデータ収集と学習を実装します。

注意

Seeed Studio のチュートリアルは、公式ドキュメントに基づいて厳密に更新されています。解決できないソフトウェアや環境の問題に遭遇した場合は、まず記事末尾の FAQ を確認するか、カスタマーサービスに連絡して SeeedStudio LeRobot 議論グループに参加してください。こちらでも質問できます:LeRobot GitHub または Discord Channel。

⚡ ノーコード · 環境構築不要

セットアップをスキップ — reBot Arm と LeRobot を1つのアプリから実行

SenseCraft Robotics は、SO-ARM101、reBot Arm 102 + B601-RS、B601-DM 向けの Seeed のノーコードプラットフォームです。アームを接続し、キャリブレーション、デモ収集、学習、推論実行までをガイド付きインターフェースから行えます — Python 環境もターミナルも不要です。

  • ✅ 6ステップのガイド付きワークフロー
  • ✅ クラウド学習 — ローカルGPU不要
  • ✅ Windows / macOS クライアント
  • ✅ SO-ARM101 · B601-RS · B601-DM

初期システム環境​

  • Ubuntu 22.04/Ubuntu 24.04
  • NVIDIA GPU(CUDA 12+、任意。GPU 加速による学習および推論用)
  • Python 3.12
  • Torch 2.6(CPU ビルドでも基本的なワークフローは実行可能。GPU 加速には CUDA ビルドが必要)

LeRobot のインストール​

LeRobot は、CPU のみのマシンでも基本的なワークフローであればインストールして実行できます。GPU 加速による学習や推論が必要な場合は、PC に NVIDIA GPU が搭載されていることを確認し、CUDA バージョンに対応した PyTorch と Torchvision をインストールしてください。

1

1. Miniforge をインストール​

cd ~
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh

~/miniforge3/bin/conda init bash
source ~/.bashrc
2

2. LeRobot リポジトリをクローン​

mkdir ~/rebot_lerobot
cd ~/rebot_lerobot
git clone https://github.com/Seeed-Projects/lerobot.git
3

3. Conda 環境を作成し LeRobot をインストール​

ヒント

各機能パッケージの詳細な機能については、以下を参照してください:

lerobot リポジトリにはすでに pyproject.toml が含まれています。conda 環境を作成し、すべての依存関係をインストールします。

cd ~/rebot_lerobot

# Create conda environment (Python 3.12)
conda create -y -n lerobot python=3.12

# Activate environment
conda activate lerobot

# Install lerobot main project (editable mode)
pip install -e ./lerobot

# Add dependency packages
pip install lerobot-teleoperator-rebot-arm-102
pip install lerobot-robot-seeed-b601
pip install motorbridge
4

4. ビデオ関連の依存関係をインストール​

ffmpeg は動画デコード用の依存パッケージです。conda でインストールします:

conda install ffmpeg -c conda-forge
ヒント

バージョンに関する注意:

  • 既定では ffmpeg 7.X がインストールされます(libsvtav1 エンコーダーをサポート)

  • バージョン互換性の問題が発生した場合は、ffmpeg 7.1.1 を指定できます:

    conda install ffmpeg=7.1.1 -c conda-forge
  • ffmpeg -encoders | grep svtav1 で libsvtav1 エンコーダーがサポートされているか確認できます

Ubuntu x86 では、その他のビデオ依存関係の設定は不要です。ステップ5に進んでください。

5

5. PyTorch と Torchvision を確認​

pip で LeRobot 環境をインストールすると、元の PyTorch と Torchvision が CPU ビルドに置き換えられる場合があるため、Python 内で結果を確認してください。

python3
import torch
print(torch.cuda.is_available())
exit()

出力が False の場合、現在の環境は PyTorch の CPU 版を使用しています。これは NVIDIA GPU を搭載していないコンピュータでは想定された動作であり、CPU ベースの基本的なワークフローを続行できますが、学習は大幅に遅くなります。お使いのコンピュータに NVIDIA GPU が搭載されていて GPU アクセラレーションが必要な場合は、公式 PyTorch ガイドに従って、お使いの CUDA バージョンに対応した PyTorch と Torchvision をインストールしてください。その場合、最終チェックは True を返すはずです。

ヒント

Jetson デバイスを使用している場合は、このチュートリアルに従って、GPU 対応の PyTorch と Torchvision をインストールしてください。

NVIDIA RTX 50 シリーズ GPU では、CUDA 12.8 以降に対応した PyTorch プレビュー版が必要です:

pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

ロボットアームをキャリブレーションする​

次に、リーダーアームとフォロワーアームが同じ物理位置にあるときに同じ位置値を持つようにキャリブレーションするため、reBot B601-DM ロボットに電源とデータケーブルを接続する必要があります。このキャリブレーションは、ある reBot B601-DM ロボットで学習したニューラルネットワークを別のロボットでも動作させるために不可欠です。ロボットアームを再キャリブレーションする必要がある場合は、~/.cache/huggingface/lerobot/calibration/robots または ~/.cache/huggingface/lerobot/calibration/teleoperators 配下のファイルを完全に削除してから、ロボットアームを再キャリブレーションしてください。そうしないと、エラーが表示されます。ロボットアームのキャリブレーション情報は、このディレクトリ配下の JSON ファイルに保存されます。

まず、次のコマンドを実行してインターフェース権限を付与する必要があります:

sudo chmod 666 /dev/ttyUSB*  # Leader arm
sudo chmod 666 /dev/ttyACM* # Follower arm (serial bridge)

B601-DM は、組み立て後に 1 回だけキャリブレーションを行えば十分です。以下がキャリブレーションコマンドです。ゼロ位置(グリッパーを完全に閉じた状態)については図を参照してください。

sudo chmod 666 /dev/ttyACM*  # follower arm (serial bridge)

lerobot-calibrate \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=follower1 \
--robot.can_adapter=damiao
危険

遠隔操作中に、マスタ・スレーブロボットアームで電源断、電源接触不良、信号線の脱落などが発生した場合は、まずプログラムコードを停止し、ロボットアームをホームのゼロ位置に戻す必要があります。その後で電源を再接続し、プログラムを再起動してください。これにより、データの乱れによるロボットアームの暴走や安全上のリスクを防ぐことができます。

遠隔操作​

危険

遠隔操作中に、マスタ・スレーブロボットアームで電源断、電源接触不良、信号線の脱落などが発生した場合は、まずプログラムコードを停止し、ロボットアームをホームのゼロ位置に戻す必要があります。その後で電源を再接続し、プログラムを再起動してください。これにより、データの乱れによるロボットアームの暴走や安全上のリスクを防ぐことができます。

まずシリアルポートに対して権限を付与します:

sudo chmod 666 /dev/ttyUSB*  # Leader arm
sudo chmod 666 /dev/ttyACM* # Follower arm (serial bridge)

遠隔操作を実行します:

lerobot-teleoperate \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=follower1 \
--robot.can_adapter=damiao \
--teleop.type=rebot_arm_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=rebot_arm_102_leader

カメラを追加する​

危険

遠隔操作中に、マスタ・スレーブロボットアームで電源断、電源接触不良、信号線の脱落などが発生した場合は、まずプログラムコードを停止し、ロボットアームをホームのゼロ位置に戻す必要があります。その後で電源を再接続し、プログラムを再起動してください。これにより、データの乱れによるロボットアームの暴走や安全上のリスクを防ぐことができます。

RealSense 深度カメラは LeRobot に RGB-D 認識機能を提供でき、物体認識、点群再構成、テーブルトップマニピュレーションなどのタスクに適しています。ここで推奨するモデルは RealSense D405 と RealSense D435i です。

RealSense D405

RealSense D405 は、テーブルトップロボットマニピュレーションなどの高精度な近距離タスク向けに設計された短距離ステレオ深度カメラで、一般的な動作距離は 7 cm ~ 50 cm です。

RealSense D435i

RealSense D435i は、深度センシング、RGB 画像、および IMU を組み合わせており、3D 再構成、SLAM、ロボットによる環境認識などの中距離〜近距離アプリケーションに適しています。

1

カメラ用ブランチに切り替える

Step 1

現在のカメラサポートは DepthCameraSupport ブランチで利用できます:

git checkout DepthCameraSupport
git pull origin DepthCameraSupport

現在のブランチを確認します:

git branch --show-current

期待される出力:

DepthCameraSupport
2

LeRobot を編集可能モードでインストールする

Step 2

RealSense のみを使用する場合:

pip install -e ".[realsense]"
3

権限を付与する

Step 3

sudo chmod a+rw /dev/bus/usb/*/*
4

カメラを検出する

Step 4

lerobot-find-cameras realsense

このステップでは次の情報が出力されます:

  • カメラモデル
  • シリアル番号
  • USB 情報
  • デフォルトのストリーム設定
5

RealSense の例

Step 5

RealSense 2 台構成のテスト:

lerobot-teleoperate \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=follower1 \
--robot.can_adapter=damiao \
--robot.cameras='{
d435i_color: {
type: realsense_d435i_color,
serial_number_or_name: "419522072950",
width: 640,
height: 480,
fps: 30,
color_mode: rgb,
color_stream_format: rgb8,
rotation: 0,
warmup_s: 1
},
d435i_depth: {
type: realsense_d435i_depth,
serial_number_or_name: "419522072950",
width: 640,
height: 480,
fps: 30,
max_depth_m: 2.0,
depth_alpha: 0.2,
rotation: 0,
warmup_s: 5
},
d405_color: {
type: realsense_d405_color,
serial_number_or_name: "409122273421",
width: 640,
height: 480,
fps: 30,
color_mode: rgb,
color_stream_format: rgb8,
rotation: 0,
warmup_s: 1
},
d405_depth: {
type: realsense_d405_depth,
serial_number_or_name: "409122273421",
width: 640,
height: 480,
fps: 30,
depth_alpha: 0.03,
rotation: 0,
warmup_s: 5
}
}' \
--teleop.type=rebot_arm_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=rebot_arm_102_leader \
--display_data=true
6

パラメータの注意事項

ステップ 6

  • depth_alpha は深度画像のスケーリング係数を制御し、表示結果や対象までの距離範囲に応じて調整できます。
  • 3 台以上の深度カメラを接続する場合は、全体の安定性を高めるために fps を 15 に下げることを推奨します。
  • 安定性とリアルタイム性のバランスを取るため、解像度は 640x480 に保つことを推奨します。

データセット収集​

危険

遠隔操作中にマスタースレーブ型ロボットアームで電源断、電源接触不良、または信号線の脱落が発生した場合は、まずプログラムコードを停止し、ロボットアームをホームのゼロ位置に戻す必要があります。その後でのみ電源を再接続し、プログラムを再起動してください。これにより、データの乱れによるロボットアームの暴走や潜在的な安全上の危険を防ぐことができます。

lerobot-record \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=follower1 \
--robot.can_adapter=damiao \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"}, side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \
--teleop.type=rebot_arm_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=rebot_arm_102_leader \
--display_data=true \
--dataset.repo_id=seeed_rebot_b601_dm/test \
--dataset.num_episodes=5 \
--dataset.single_task="Grab the black cube" \
--dataset.push_to_hub=false \
--dataset.episode_time_s=30 \
--dataset.reset_time_s=30

その中で、repo_id は任意に変更でき、push_to_hub=false とします。最終的に、データセットはホームフォルダ内の ~/.cache/huggingface/lerobot ディレクトリに保存され、そこで前述の seeed_rebot_b601_dm/test フォルダが作成されます。

Record 関数

record 関数は、ロボット動作中のデータ取得と管理のためのツール一式を提供します。

1. データ保存

  • データは LeRobotDataset 形式で保存され、記録中にディスクへ書き込まれます。
  • 既定では、記録後にデータセットはあなたの Hugging Face ページにプッシュされます。
  • アップロードを無効にするには、--dataset.push_to_hub=False を使用します。

2. チェックポイントと再開

  • 記録中にチェックポイントが自動的に作成されます。
  • 中断後に再開するには、--resume=true を付けて同じコマンドを再実行します。

⚠️ 重要な注意:再開する際は、--dataset.num_episodes を「データセット全体の目標エピソード数」ではなく、「追加で記録したいエピソード数」に設定してください。

  • 最初から記録をやり直すには、データセットディレクトリを手動で削除します。

3. 記録パラメータ

コマンドライン引数を使ってデータ記録の流れを設定します:

ParameterDescriptionDefault
--dataset.episode_time_s1 エピソードあたりのデータ記録時間(秒)60
--dataset.reset_time_s各エピソード後の環境リセット時間(秒)60
--dataset.num_episodes記録するエピソードの総数50

4. 記録中のキーボード操作

キーボードショートカットを使ってデータ記録の流れを制御します:

KeyAction
→ (右矢印)現在のエピソードを早期終了/リセットし、次へ進む。
← (左矢印)現在のエピソードをキャンセルし、再記録する。
ESCセッションを即座に停止し、動画をエンコードしてデータセットをアップロードする。
ヒント

キーボード入力が反応しない場合は、pynput のバージョンを 1.6.8 などにダウングレードする必要があるかもしれません。

pip install pynput==1.6.8

データ収集のヒント

  • タスクの提案:さまざまな位置にある物体を把持し、ビンに入れます。
  • スケール:50 エピソード以上を記録します(位置ごとに 10 エピソード)。
  • 一貫性:
    • カメラを固定したままにする。
    • 同じ把持動作を維持する。
    • 操作対象の物体がカメラ映像内で見えるようにする。
  • 段階的な拡張:
    • 新しい位置、把持方法、カメラ調整などのバリエーションを加える前に、まず安定して把持できる状態から始める。
    • 失敗を防ぐため、複雑さを急激に増やさない。

💡 経験則:画面上のカメラ画像だけを見て、自分自身でタスクを実行できる状態であるべきです。

この重要なトピックをさらに深く知りたい場合は、良いデータセットとは何かについて執筆したブログ記事を参照してください。

トラブルシューティング

Linux 固有の問題: 記録中に Right Arrow/Left Arrow/ESC キーが反応しない場合:

  • $DISPLAY 環境変数が設定されているか確認します(pynput limitations を参照)。

データセットの可視化​

echo ${HF_USER}/rebot_test  

データをアップロードしている場合は、次のコマンドでローカルでも可視化できます:

lerobot-dataset-viz \
--repo-id ${HF_USER}/rebot_test \
--episode-index 0 \
--display-compressed-images=false

--dataset.push_to_hub=false を使用してデータをアップロードしていない場合でも、次のようにローカルで可視化できます:

lerobot-dataset-viz \
--repo-id seeed_rebot_b601_dm/test \
--episode-index 0 \
--display-compressed-images=false

ここで、seeed_rebot_b601_dm/test はデータ収集中に定義したカスタムの repo_id 名です。

エピソードのリプレイ​

ヒント

不安定なため、スキップしても試してみても構いません。

ここで、ロボット上で最初のデータセットをリプレイしてみましょう:

lerobot-replay \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.can_adapter=damiao \
--robot.id=follower1 \
--dataset.repo_id=seeed_rebot_b601_dm/test \
--dataset.episode=0

この時点で、ロボットは記録時に遠隔操作したのと同じ動作を行うはずです。

学習と評価​

公式チュートリアル ACT を参照してください。

学習

ロボットを制御するポリシーを学習させるには、python -m lerobot.scripts.train スクリプトを使用します。いくつかのパラメータ指定が必須です。以下はコマンド例です:

lerobot-train \
--dataset.repo_id=${HF_USER}/rebot_test \
--policy.type=act \
--output_dir=outputs/train/act_rebot_test \
--job_name=act_rebot_test \
--policy.device=cuda \
--wandb.enable=false \
--steps=300000

ローカルデータセットで学習したい場合は、repo_id がデータ収集時に使用した名前と一致していることを確認し、--policy.push_to_hub=false を追加してください。

lerobot-train \
--dataset.repo_id=seeed_rebot_b601_dm/test \
--policy.type=act \
--output_dir=outputs/train/act_rebot_test \
--job_name=act_rebot_test \
--policy.device=cuda \
--wandb.enable=false \
--policy.push_to_hub=false \
--steps=300000
ヒント

RTX 50 シリーズ GPU を使用している場合は、torchvision プレビュー版で不足している API を回避するために --dataset.video_backend=pyav を追加する必要があります。学習コマンドは次のようになります:

lerobot-train \
--dataset.repo_id=seeed_rebot_b601_dm/test \
--dataset.video_backend=pyav \
--policy.type=act \
--output_dir=outputs/train/act_rebot_test \
--policy.device=cuda \
--wandb.enable=false \
--policy.push_to_hub=false \
--steps=300000

コマンドの説明

  • データセット指定:--dataset.repo_id=${HF_USER}/rebot_test パラメータでデータセットを指定します。
  • 学習ステップ数:--steps=300000 を使って学習ステップ数を変更します。アルゴリズムのデフォルトは 800000 ステップです。タスクの難易度に応じて調整してください。よく分からない場合は多めに設定して構いません。学習中にチェックポイントが生成され、任意のチェックポイントから評価を再開できるためです。
  • ポリシータイプ:policy.type=act でポリシーを指定します。同様に、[act, diffusion, pi0, pi0fast, sac, smolvla] などのポリシーを切り替えることもできます。これにより configuration_act.py から設定が読み込まれます。重要な点として、このポリシーは、モータ状態、モータアクション、カメラ台数といった情報がすでにデータセットに保存されているため、自動的にあなたのロボットに適応します。
  • デバイス選択:Nvidia GPU 上で学習しているため policy.device=cuda を指定していますが、Apple Silicon で学習する場合は policy.device=mps を使用できます。
  • 可視化ツール:学習チャートを Weights and Biases で可視化するために wandb.enable=true を指定しています。これは任意ですが、使用する場合は wandb login を実行してログインしていることを確認してください。

評価

record 関数は、ポリシーのチェックポイントを入力として指定することで、lerobot/record.py から利用できます。例えば、次のコマンドを実行すると 10 エピソード分の評価を記録できます:

lerobot-record \
--robot.type=seeed_b601_dm_follower \
--robot.port=/dev/ttyACM0 \
--robot.can_adapter=damiao \
--robot.cameras='{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"}, side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: "MJPG"} }' \
--robot.id=follower1 \
--display_data=false \
--dataset.repo_id=seeed/eval_test123 \
--dataset.single_task="Put lego brick into the transparent box" \
--policy.path=outputs/train/act_rebot_test/checkpoints/last/pretrained_model
  1. --policy.path パラメータは、ポリシー学習結果の重みファイルへのパスを指定します(例:outputs/train/act_rebot_test/checkpoints/last/pretrained_model)。モデル学習結果の重みファイルを Hub にアップロードした場合は、モデルリポジトリ(例:${HF_USER}/act_rebot_test)を指定することもできます。
  2. データセット名 dataset.repo_id は eval_ で始まります。この操作により、評価中の動画とデータが別々に記録され、seeed/eval_test123 のような eval_ で始まるフォルダに保存されます。
  3. 評価フェーズ中に File exists: 'home/xxxx/.cache/huggingface/lerobot/xxxxx/seeed/eval_xxxx' というエラーが発生した場合は、まず eval_ で始まるフォルダを削除してから、再度プログラムを実行してください。
  4. mean is infinity. You should either initialize with stats as an argument or use a pretrained model というメッセージが表示された場合、--robot.cameras パラメータ内の front や side などのキーワードは、データセット収集時に使用したものと厳密に一致している必要がある点に注意してください。

チェックポイントから学習を再開するには、act_rebot_test ポリシーの last チェックポイントから再開するためのコマンド例は次のとおりです:

lerobot-train \
--config_path=outputs/train/act_rebot_test/checkpoints/last/pretrained_model/train_config.json \
--resume=true

FAQ​

  • このドキュメントチュートリアルに従っている場合は、推奨されている GitHub リポジトリ https://github.com/Seeed-Projects/lerobot.git を git clone してください。本ドキュメントで推奨しているリポジトリは検証済みの安定版です。一方、公式の LeRobot リポジトリは常に最新バージョンへ更新されており、データセットバージョンの違いやコマンドの違いなど、予期せぬ問題が発生する可能性があります。

  • 次のような状況に遭遇した場合:

    Could not connect on port "/dev/ttyUSB0" or "/dev/ttyACM0"

    そして、ls /dev/ttyUSB* または ls /dev/ttyACM* を実行したときにデバイスが存在することが確認できる場合は、シリアルポートの権限付与を忘れていることを意味します。ターミナルで sudo chmod 666 /dev/ttyUSB* /dev/ttyACM* を実行して修正してください。

  • 次のような状況に遭遇した場合:

    No valid stream found in input file. Is -1 of the desired media type?

    conda install ffmpeg=7.1.1 -c conda-forge を使用して ffmpeg 7.1.1 をインストールしてください。

  • 50 セットのデータで ACT を学習する場合、RTX 3060(8GB)を搭載したノート PC では約 6 時間、RTX 4090 や A100 GPU を搭載した PC では約 2〜3 時間かかります。

  • データ収集中は、カメラの位置、角度、および周囲の照明が安定していることを確認してください。カメラに映り込む不安定な背景や歩行者を減らしてください。展開環境が大きく変化しすぎると、ロボットアームがうまく把持できなくなる可能性があります。

  • データ収集コマンドでは、十分なデータを収集できるように num-episodes パラメータが設定されていることを確認してください。途中で手動で一時停止しないでください。データ収集完了後にのみデータの平均値と分散が計算され、これらは学習に必要です。

  • プログラムが USB カメラから画像データを読み取れないと表示する場合は、USB カメラがハブ経由で接続されていないことを確認してください。USB カメラはデバイスに直接接続し、高速な画像転送速度を確保する必要があります。

ヒント

解決できないソフトウェアの問題や環境依存関係の問題に遭遇した場合は、このチュートリアル末尾の FAQ セクションを確認することに加えて、LeRobot プラットフォーム または LeRobot Discord チャンネル に速やかに問題を報告してください。

参考文献​

Seeed Studio 英語 Wiki: Lerobot で SO100Arm ロボットアームを使用する方法

TheRobotStudio プロジェクト: SO-ARM10x

Huggingface プロジェクト: LeRobot

Dnsty: Jetson Containers

Jetson AI Lab

Diffusion Policy

ACT or ALOHA

TDMPC

VQ-BeT

技術サポート & 製品ディスカッション​

当社の製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選択できる複数のコミュニケーションチャネルをご用意しています。

Loading Comments...