ソフトウェア 設定,ソケットキャン,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) は推奨バージョンである.
** Ubuntu 22.04 LTSをダウンロードする.**公式 Ubuntu ダウンロードページをご覧ください: ubuntu.com/download/desktop. Ubuntu 22.04 LTSをダウンロードする.
起動可能なUSBドライブを作成する.
- Windows: [Rufus](
T84 ]をダウンロードして,USBデバイスとUbuntu ISOを選択して,書き込みします. - macOS: [Balena Etcher]
- Linux: ISO パートと USB デバイス識別子で
T0 コマンドを使用します.
- **USBから起動してインストール.**起動可能なUSBを挿入して,システムを再起動し,BIOS/UEFI設定にアクセスし,USBをメインの起動装置として設定します.グラフィックインストーラに従ってタイムゾーン,ユーザーネーム,パスワードを選択します.
警告 標準インストールにより,選択されたドライブ上のすべてのデータが消されます. 実行する前にデバイス識別子を二度確認します.
- インストール後:システム更新を実行して開発ツールをインストールする.
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]
各関節に割り当てられた送信機/受信機 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インターフェースを手動に表示します.
推奨
4 腕のセットアップ (can0 から can3) オープンアーム 設定できる ソケット 可能な 4アーム - fd
\ # インターフェースが UPであることを確認する ipリンク表示は0
**各腕に1つのCANポートが必要です.単腕セットアップではT17
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
sudo ipリンクセットは0ダウン sudo ip リンクセット 型は 1000000 dbitrate 5000000 fd をビットレートできる sudo ipリンクセットは0 up
マニュアル・モーター制御コマンド
低レベルのデバッグや高レベルのコードを実行する前にモーター通信を確認するためにこれらのコマンドを使用します.常に最初にバスを監視します.
バスのすべてのCANフレームを監視する
# モーターのボードレートを変更 (ターゲットモーター ID で --canid を置き換える) オープンアームはバウドレートに変化する バウドレート5000000 # 電力サイクルを継続するために --flash を追加する (最大~10,000 の閃きがモーターに書き込まれます) オープンアームは変更できる バウドレート - バウドレート 5000000 - カニッド 1 - ソケットは 0 - 閃電
CAN 2.0 モーター制御 (ターゲットのモーターの送信機IDでT22
動作エラーを明らかに 発送する缶 動力を有効にする 発送する缶 エンジンを消す 発送する缶
**CAN FDエンジン制御 (BRSフラグを表示する
動作エラーを明らかに 缶詰の缶詰 動力を有効にする 発送は可能 エンジンを消す 缶詰の缶詰
一次に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インターフェースを設定した後,テストユーティリティを
設定経路の概要
| 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)
ディレクトリ構造
T28 主なロボットファイル T29 バージョンの特定URDF - 腕の運動学,ボディ組,エンドエフェクター,およびROS2制御のための別々のディレクトリ
T30 バージョンのパラメータファイル
設置
# ROS2がインストールされていることを確認する (第6節を参照) # 環境変数を設定 輸出 ROS_DISTRO=謙虚 輸出 COLCON_WS=~/ros2_ws
資料庫をクローンする
git clone
建設する cd $COLCON_WS 列の構築 --パケット-選択 openarm_description
# 作業空間をソースする ソース $COLCON_WS/install/setup.bash
URDF世代の例
腕と腕を握る xacro ロボット/オープンアーム _ロボット.xacroアーム _タイプ:=右端_効果:=手
終効剤なしの単腕 xacroロボット/openarm_robot.xacro腕_type:=右端_effector:=無
# ROS2制御で双手設定
xacro ロボット/オープンアーム
\ # 偽装ハードウェアのシミュレーションバージョン xacroロボット/openarm_robot.xacroシミュレーション:=true
RViz ビジュアライゼーション
パッケージには,単臂および双手配置の両方のRViz視覚化のための起動ファイルが含まれます:
\ # 単臂可視化を開始 ローズ2 打ち上げ openarm _description display.launch.py
双手可視化を開始 ローズ2開始 openarm_description 画面_bimanual.launch.py
構成論
調整可能なパラメータは:腕/ボディタイプ,エンドエフェクター選択,双手モード,CANインターフェース,位置設定オフセット,ROS2制御設定などです.
多ロボットセットアップ
ネットワーク分離のために ROS 名前空間と
域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 |
モーター制御方法
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);
実施作業流程
OpenArm を CAN インターフェースで初期化する. CAN インターフェース (例えば
T44 ) を指す T43 インスタンスを作成する. タイプとCANIDを表示したモーターデバイスを登録する. 各コアントの送信機ID,受信機ID,モーターモデルを指定する.
モーターを有効にして,コールバックモードを設定する. 制御応答では
T45 コールバックモードを使用し,パラメータ查询では T46 を使用する. MITパラメータで制御を実行する. 1000 Hzまで位置/速度/トークルコマンドを送信する.
モニターフィードバックフレーム. 必要な周波数で関節状態を再読みします.
構成記号
- 引擎型,送信ID,受信IDのベクトル長さは正確に一致する必要があります
- タイムアウト値:遅い操作では1000
2000マイクロ秒;高速制御ループでは300500秒 - 8エンジンセットアップでは制御サイクル周波数は1000 Hzを超えない
- 制御のために
T47 回呼び回モードを使用する.パラメータ查询のために T48
6.ROS2統合
OpenArm は URDF/XACRO モデル,
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
# 依存をインストールする cd ~/ros2_ws rosdep をインストールする --from-paths src --ignore-src - r - y
建設する コールコンビルド --symlink-install
#ソースワークスペース ソースインストール/セットアップ.bash
ROS2 の特徴
- 位置,速度,および努力の制御インターフェース
- MoveIt2 単腕と双手セットアップのための計画グループ設定
- 引力補償は無効
- 阻害制御
T50 用のハードウェアインターフェースプラグイン
7 制御技術
制御ガイドとアルゴリズムのための高度な制御セクションは積極的に開発された領域です
** すぐ来ます** 各制御モードの詳細なドキュメントが準備されています. 貢献は歓迎されます
システム識別
動力学を特徴付ける手順は 関節摩擦,惰性,抑制パラメータを含む. 文書はすぐに来る.
重力補償
引力補償は,各関節の引力トークをリアルタイムで計算して重量のない腕を維持します.これは安全な遠隔操作のために不可欠です.実装文書が近い将来です.
カルテジアン宇宙制御
腕のエンドエフェクターを関数空間ではなく,カートセインの空間 (XYZ位置 +方向) で制御する.カートセインのコマンドを関数コマンドに変換するために逆動力学 (IK) を使用する.ドキュメントが近い将来にやってくる.
摩擦補償モデル
遠隔操作スタックでは,関節ごとに適用されるタンHベースの摩擦補償モデルを使用します.
摩擦補償公式
tau_f = Fc * tanh(k * dq) + Fv * dq + Fo
結合パラメータ (Kp, Kd, Fc, k, Fv, Fo) は制御構成ファイルで構成可能である.
Attribution このページのコンテンツは, [docs.openarm.dev] (
[OpenArm を買って,T94







