Wikiに戻る

ソフトウェア 設定,ソケットキャン,ROS2 & コントロール

OpenArmソフトウェアのドキュメント:セットアップガイド,Ubuntuインストール,ロボット説明 (URDF/xacro),SocketCAN CANライブラリ,ROS2のインストール Humble/Jazzy,および高度な制御概要.

OpenArmハードウェアハブ を参照.

このページ

  • [ソフトウェア概要]
  • [Ubuntuをインストール]
  • [設定ガイド]
  • [モーター ID設定]
  • [CANインターフェース]
  • [CAN FD vs CAN 2.0]
  • [モーター制御コマンド]
  • [モーターLED状態]
  • [ロボット説明 (URDF) ]
  • [設置] T61
  • 映像は, T62
  • T63
  • 建築は...
  • [キークラス]
  • [ROS2統合]
  • [謙虚な装置]
  • [ジャズィ インストール]
  • [高度な制御]

オープンアーム ドキュメント

  • [概要]
  • [開始] T71
  • [ハードウェア] T72
  • [ソフトウェア] T73
  • [電波操作]
  • [シミュレーション]
  • [FAQ&購入]

参照

  • [開き手1 速 start]
  • [←すべてのウィキ記事]
  • 公式文書 T79

ソフトウェアのドキュメント:ウブンタセットアップ,ロボット説明ファイル (URDF/xacro),SocketCAN CANライブラリ,ROS2のインストールと構成,高度な制御アルゴリズム.

Ubuntu 22.04 ROS2 ハンブルソケットCAN URDF MoveIt2 C++ Python

ソース: docs.openarm.dev/ソフトウェア/ 最後に更新された: 2026年4月11日

1.ソフトウェア概要

オープンアームソフトウェアエコシステムへようこそ! ツールのキットが作られていて,双手ロボットを橋渡しするために貢献を歓迎します.

ソフトウェアエコシステムは:

  • ** URDFロボットモデルのためのモジュラー化された XACROファイル**
  • SocketCANによる高周波モーター相互作用のための低レベルの制御API
  • ROS2の統合 (活発な開発中) 制御インターフェースとMoveIt2の構成
  • システム識別,重力補償,カートセイアン空間制御のための制御アルゴリズム

新しいユーザーはセットアップガイドから始めなければなりません 貢献者は各セクションで改善の機会を見つけることができます

ソフトウェア リポジトリ

Repository Description
openarm_description URDF/XACRO files for single-arm and bimanual configurations
openarm_can C++ CAN library for Linux-based motor control with Python bindings
openarm_ros2 ROS2 middleware integration packages

2. Ubuntuをインストールする

OpenArmソフトウェアには,SocketCANサポートを持つUbuntu Linux が必要である.Ubuntu 22.04 LTS (Jammy Jellyfish) は推奨バージョンである.

  1. ** Ubuntu 22.04 LTSをダウンロードする.**公式 Ubuntu ダウンロードページをご覧ください: ubuntu.com/download/desktop. Ubuntu 22.04 LTSをダウンロードする.

  2. 起動可能なUSBドライブを作成する.

  • Windows: [Rufus](T84]をダウンロードして,USBデバイスとUbuntu ISOを選択して,書き込みします.
  • macOS: [Balena Etcher]
  • Linux: ISO パートと USB デバイス識別子で T0 コマンドを使用します.
  1. **USBから起動してインストール.**起動可能なUSBを挿入して,システムを再起動し,BIOS/UEFI設定にアクセスし,USBをメインの起動装置として設定します.グラフィックインストーラに従ってタイムゾーン,ユーザーネーム,パスワードを選択します.

警告 標準インストールにより,選択されたドライブ上のすべてのデータが消されます. 実行する前にデバイス識別子を二度確認します.

  1. インストール後:システム更新を実行して開発ツールをインストールする.

sudo apt アップデート&& sudo apt アップグレード -y sudo apt install -y curl git 構築-必須 gnome-tweaks

Docker 代替専用Ubuntuマシンのない開発のみのシナリオでは,Docker セットアップを使用できます.しかし,SocketCANでハードウェア制御のために,ネイティブUbuntu インストールが必要です.

3.OpenArm設定ガイド

このガイドは,ハードウェア接続からソフトウェアテストまで,OpenArmを設定する手順を案内します.

必須条件

ハードウェアの要件

  • 自動ロボットアーム DAMIAO モーター
  • 24Vの電源,適切な電源容量
  • ケーブル (エンジンパッケージに含まれるケーブルは十分)

通信装置の要件

Purpose Required Device OS
Motor ID setup DAMIAO USB CAN Debugger Windows
Motor control & further setup SocketCAN-compatible interface Ubuntu 22.04 / 24.04 or other Linux with SocketCAN support

ステップ1: エンジンIDの設定

組み立て前に,DAMIAO モーターの各部を正しいCAN IDで設定する. ステップバイ・ステップ手順を詳細に [Hardware > Motor ID Configuration]T86) セクションで確認してください.

各関節に割り当てられた送信機/受信機 CAN ID ペアについて,以下の表を簡単な参照として使用します.

Joint Transmitter ID Receiver ID
J1 0x01 0x11
J2 0x02 0x12
J3 0x03 0x13
J4 0x04 0x14
J5 0x05 0x15
J6 0x06 0x16
J7 0x07 0x17
J8 0x08 0x18

**Damiao デバッグツール (Windows) **USB-CANでモーター IDを設定し確認するためのDamiao モーター デバッグツールをダウンロードする: Debugging_Tools_v.1.6.8.8.exe. バスで組み合わせる前に常に1つのモーターをテストする.

ステップ 2: CANインターフェイスを設定

ハードウェアの組み立て後,Ubuntuマシンでの SocketCAN インターフェースを設定します.最初に,公式のOpenArm PPAから必要なパッケージをインストールします.

# OpenArm PPAを有効にして必要なパッケージをインストールする sudo apt install -y ソフトウェア特性-共通 sudo add-apt-repository -y ppa:openarm/main sudo apt 更新 sudo apt インストール -y \ ツール \ 移動する リベイゲン3・デブ libopenarm-can-dev \ リンゴの 解放する の頭部 オープンアーム・カナ・ユーティル

OpenArm ヘルパー (推奨) を使って,CANインターフェースを手動に表示します.

推奨 CAN FD 1M 名前 / 5M データボード オープンアーム 設定できる ソケットできる

() () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () オープンアーム 設定できる ソケットできる

4 腕のセットアップ (can0 から can3) オープンアーム 設定できる ソケット 可能な 4アーム - fd

\ # インターフェースが UPであることを確認する ipリンク表示は0

**各腕に1つのCANポートが必要です.単腕セットアップではT17を使用します.双手セットアップではT18 (右リーダー) +T19 (左リーダー) +T20 (右フォロワー) +T21 (左フォロワー) を使用します.

CAN FD vs CAN 2.0

OpenArm モーターは CAN 2.0 (クラシックな CAN,8バイトの便荷) と CAN FD (柔軟なデータ速率,より高いデータ速率で64バイトの便荷まで) をサポートします.Damiao モーターが使用する5Mbit/sのデータ帯域幅の完全な使用には CAN FD が推奨されています.

Mode Nominal Baud Data Baud ペイロード
CAN 2.0 1 Mbit/s 8 bytes
CAN FD 1 Mbit/s 5 Mbit/s up to 64 bytes

マニュアルな ipリンクコマンド (CAN 2.0):

sudo ipリンクセットは0ダウン sudo ipリンクセット can0タイプ 1000000 bitrate sudo ipリンクセットは0 up

マニュアルな ipリンクコマンド (CAN FD 1M / 5M):

sudo ipリンクセットは0ダウン sudo ip リンクセット 型は 1000000 dbitrate 5000000 fd をビットレートできる sudo ipリンクセットは0 up

マニュアル・モーター制御コマンド

低レベルのデバッグや高レベルのコードを実行する前にモーター通信を確認するためにこれらのコマンドを使用します.常に最初にバスを監視します.

バスのすべてのCANフレームを監視する -x 缶

# モーターのボードレートを変更 (ターゲットモーター ID で --canid を置き換える) オープンアームはバウドレートに変化する バウドレート5000000 # 電力サイクルを継続するために --flash を追加する (最大~10,000 の閃きがモーターに書き込まれます) オープンアームは変更できる バウドレート - バウドレート 5000000 - カニッド 1 - ソケットは 0 - 閃電

CAN 2.0 モーター制御 (ターゲットのモーターの送信機IDでT22を交換する):

動作エラーを明らかに 発送する缶 動力を有効にする 発送する缶 エンジンを消す 発送する缶

**CAN FDエンジン制御 (BRSフラグを表示するT24の後,追加のT23を注記する)

動作エラーを明らかに 缶詰の缶詰 動力を有効にする 発送は可能 エンジンを消す 缶詰の缶詰

一次に1つのモーターをテストする モーターを最初に稼働させる際,同じCANバスに複数のモーターを連結し,それぞれを個別にテストする.これにより,ID衝突やワイヤリング故障を識別することが容易になります.

モーター LED 状態

ダミオエンジンの各には,現在の状態を示すオンボードLEDがあります.

LED Pattern Meaning
Green (steady) Motor enabled and ready
Red (steady) Motor disabled
Red (flashing) Motor error state — send Clear Error command before re-enabling

障害解決 資源

  • [CAN通信異常診断]T88) 断続的なCANバスエラーを診断する
  • 接続器の極性,終結抵抗力,ケーブルシールドリングの先端

ステップ3: 自動車テスト

CANインターフェースを設定した後,テストユーティリティを T25 リポジトリから実行してモーター通信をテストします.すべての8つの関節が位置コマンドに反応し,エンコードのフィードバックを返信するかどうかを確認します.

設定経路の概要

Step Description
0 Prerequisites — hardware, cables, CAN adapter
1 Motor ID Configuration (Windows + Damiao Tools)
2 Setup CAN Interface (openarm-can-configure-socketcan)
3 Motor Test — verify joint communication
4 Motor Configuration — tune control parameters
5 Hands-On: Demo Run

4.ロボット説明 (URDF/xacro)

T27パッケージには,シミュレーションと運動計画に使用される単腕と双手ロボット構成のための URDF/xacroファイルが含まれています.

ディレクトリ構造

  • T28 主なロボットファイル
  • T29 バージョンの特定URDF
  • 腕の運動学,ボディ組,エンドエフェクター,およびROS2制御のための別々のディレクトリ
  • T30 バージョンのパラメータファイル

設置

# ROS2がインストールされていることを確認する (第6節を参照) # 環境変数を設定 輸出 ROS_DISTRO=謙虚 輸出 COLCON_WS=~/ros2_ws

資料庫をクローンする git clone T97 \ $COLCON_WS/src/openarm_description

建設する cd $COLCON_WS 列の構築 --パケット-選択 openarm_description

# 作業空間をソースする ソース $COLCON_WS/install/setup.bash

URDF世代の例

腕と腕を握る xacro ロボット/オープンアーム _ロボット.xacroアーム _タイプ:=右端_効果:=手

終効剤なしの単腕 xacroロボット/openarm_robot.xacro腕_type:=右端_effector:=無

# ROS2制御で双手設定 xacro ロボット/オープンアーム _ロボット.xacro 双手:=true ros2_control:=true

\ # 偽装ハードウェアのシミュレーションバージョン xacroロボット/openarm_robot.xacroシミュレーション:=true

RViz ビジュアライゼーション

パッケージには,単臂および双手配置の両方のRViz視覚化のための起動ファイルが含まれます:

\ # 単臂可視化を開始 ローズ2 打ち上げ openarm _description display.launch.py

双手可視化を開始 ローズ2開始 openarm_description 画面_bimanual.launch.py

構成論

調整可能なパラメータは:腕/ボディタイプ,エンドエフェクター選択,双手モード,CANインターフェース,位置設定オフセット,ROS2制御設定などです.

多ロボットセットアップ

ネットワーク分離のために ROS 名前空間と T31 環境変数を複数実行できます.

域0の右腕 輸出 ROS_DOMAIN_ID=0 ローズ2開始 openarm_description display.launch.py名空:=/右_arm

域1の左腕 (別々の端末) 輸出 ROS_DOMAIN_ID=1 ローズ2開始 openarm_description display.launch.py名空:=/左_arm

5 図書 図書 図書 図書

OpenArm CAN ライブラリーは,ハイレベルのOpenArm制御アプリケーションと低レベルのモータープロトコル間の主要な通信橋梁である. モーター制御とステートモニタリングのためにLinuxのSocketCANインターフェースを利用する.

建築

図書館は3層構造を使用します

  • 高級部品: T32, T33, T34
  • damiao_motor 自動車プロトコル層 (Damiao MITモード)
  • canbus 低レベルのCAN通信 (Linux SocketCAN)

重要なクラス

Class Description
OpenArm Manages the CAN socket and all motor components globally
ArmComponent Coordinates multiple arm motors as an integrated system
GripperComponent Manages single motor operations with gripper-specific functions: open(), close(), set_position()
DMDeviceCollection Provides shared motor operations including bulk control and parameter queries

モーター制御方法

T42パラメータを使用してMIT制御モードでDamiao Motorプロトコルを使用する:

// kp - ポジションの上昇 // kd - 速度増加 // q - 望ましい位置 (rad) // dq - 望ましい速度 (rad/s) // tau - 送電ドローク (Nm)

MITParam パラム params.kp = 10.0 params.kd = 0.5; params.q = ターゲット_位置 params.dq = 0.0; パーマス.tau = 0.0

arm.send_mit_control(joint_id,params);

実施作業流程

  1. OpenArm を CAN インターフェースで初期化する. CAN インターフェース (例えば T44) を指す T43 インスタンスを作成する.

  2. タイプとCANIDを表示したモーターデバイスを登録する. 各コアントの送信機ID,受信機ID,モーターモデルを指定する.

  3. モーターを有効にして,コールバックモードを設定する. 制御応答では T45コールバックモードを使用し,パラメータ查询では T46を使用する.

  4. MITパラメータで制御を実行する. 1000 Hzまで位置/速度/トークルコマンドを送信する.

  5. モニターフィードバックフレーム. 必要な周波数で関節状態を再読みします.

構成記号

  • 引擎型,送信ID,受信IDのベクトル長さは正確に一致する必要があります
  • タイムアウト値:遅い操作では10002000マイクロ秒;高速制御ループでは300500秒
  • 8エンジンセットアップでは制御サイクル周波数は1000 Hzを超えない
  • 制御のために T47回呼び回モードを使用する.パラメータ查询のために T48

6.ROS2統合

OpenArm は URDF/XACRO モデル, T49 統合, 重力補償,阻害制御,および完全な MoveIt2 計画グループ構成を含むネイティブ ROS2 サポートを持っています.

ROS2 謙虚 (推奨) のインストール

\ # ROS2 謙虚なデスクトップパッケージをインストール sudo apt インストール -y ros-humble-desktop

# OpenArm専用コントローラパッケージをインストールする sudo apt インストール -y \ ローズ・ハンブル・ローズ2制御 ローズ・ハンブル・ローズ2コントローラ \ ローズ・ハンブル・コントローラー・マネージャー \ ローズ・ハンブル・グリッパー・コントローラー \ ローズ・ハンブル・ハードウェア・インターフェイス

# MoveIt2ユーザーは,追加パッケージをインストールします sudo apt インストール -y \ 移動する ローズ・ハンブル・フォアワード・コマンド・コントローラー

# ROS2 環境のソース (持続性のために ~/.bashrc を追加) echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc 源 ~/.bashrc

インストールを確認 ローズ2 -h ros2 テーマリスト

ROS2 Jazzy (代替) をインストールする

# Ubuntu 24.04 または Jazzy のユーザー向け sudo apt インストール -y ローズ-ジャジー-デスクトップ

# コントローラーパケットをインストールする (jazzyの特定名称) sudo apt インストール -y \ ローズ・ジャージー・ローズ2コントロール ローズ・ジャージー・ローズ2コントローラ \ ローズ・ジャージー・コントローラー・マネージャー

源 echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc 源 ~/.bashrc

ジャジー状態 ジャジーディストリビューションは開発中であり,OpenArmパッケージで安定性問題がある可能性があります.生産用にはHumbleが推奨されています.

openarm_ros2 貯蔵庫設定

# ワークスペースを作成しクローン mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone T98

# 依存をインストールする cd ~/ros2_ws rosdep をインストールする --from-paths src --ignore-src - r - y

建設する コールコンビルド --symlink-install

#ソースワークスペース ソースインストール/セットアップ.bash

ROS2 の特徴

  • 位置,速度,および努力の制御インターフェース
  • MoveIt2 単腕と双手セットアップのための計画グループ設定
  • 引力補償は無効
  • 阻害制御
  • T50用のハードウェアインターフェースプラグイン

7 制御技術

制御ガイドとアルゴリズムのための高度な制御セクションは積極的に開発された領域です

** すぐ来ます** 各制御モードの詳細なドキュメントが準備されています. 貢献は歓迎されます [貢献ガイド]T90を参照してください.

システム識別

動力学を特徴付ける手順は 関節摩擦,惰性,抑制パラメータを含む. 文書はすぐに来る.

重力補償

引力補償は,各関節の引力トークをリアルタイムで計算して重量のない腕を維持します.これは安全な遠隔操作のために不可欠です.実装文書が近い将来です.

カルテジアン宇宙制御

腕のエンドエフェクターを関数空間ではなく,カートセインの空間 (XYZ位置 +方向) で制御する.カートセインのコマンドを関数コマンドに変換するために逆動力学 (IK) を使用する.ドキュメントが近い将来にやってくる.

摩擦補償モデル

遠隔操作スタックでは,関節ごとに適用されるタンHベースの摩擦補償モデルを使用します.

摩擦補償公式 () + () + () + () ♪ ほら # Fc -静的摩擦レベル # k -摩擦移行鋭さ # Fv -粘性摩擦系数 摩擦のオフセット # dq - 結合速度

tau_f = Fc * tanh(k * dq) + Fv * dq + Fo

結合パラメータ (Kp, Kd, Fc, k, Fv, Fo) は制御構成ファイルで構成可能である.

Attribution このページのコンテンツは, [docs.openarm.dev] (T91) の公式OpenArm文書に基づいています.

←ハードウェア テレ操作 →

[OpenArm を買って,T94) · [毎月借りる →]