ROSCon JP 2023

ROS2を用いたKHI製産業用ロボットアーム制御
2023/09/26

技術開発本部
システム技術開発センター
システム基盤技術開発部 第三課

目次~ROS2を用いたKHI製産業用ロボットアーム制御~

01

川崎重工のロボット02

発表サマリー03

p.07

システム構成04

p.08-p.09

開発内容

05

© Kawasaki Heavy Industries, Ltd. All Rights Reserved

p.10-p.15

動作品質
06

ROSB-448-003-R00

p.03-p.06

まとめzp.16-p.20
p.21

2

01

川崎重工のロボット

川崎重工が描くロボットビジネス
今後懸念される世界的な労働力不足を解決するソリューションサービスの提供を目指しています
Nyokkey

当社産業用ロボット

https://answers.khi.co.jp/ja/connected-society/20220527j-01/

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz3

01

川崎重工のロボット

産業用ロボットの用途と特徴
産業用ロボットメーカーのパイオニアとして、自動車業界や電機・電子業界をはじめとするさまざまな業界向けに、溶接、組立・ハンドリング、塗装、荷物積み下ろし用など多数のロボットを供給しています
荷物積み下ろし溶接

当社産業用ロボットは当社専用ロボット制御言語(AS言語)を用いることで、ティーチングされた動作を高い精度かつ高速で繰り返すことが可能
ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz4

01

川崎重工のロボット

ご利用シーンの拡大に向けた取り組み
当社ロボットをROSで制御したいとのご要望に応じ、Kawasaki Robotics/khi_robot (ROS1)を公開中
機能開発や研究目的で利用いただいています

対象機種

duAro

RSシリーズ

小型・中型汎用ロボット
ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reserved

人共存型双腕スカラロボットz5

01川崎重工のロボット

ROS2向けパッケージ公開のご紹介
FY2023. KHI制御パッケージ(ROS2)を公開予定
リリース情報対象機種

RSシリーズ

公開時期

2024.03（予定）ディストリビューション

Foxy・Humble

対象機種

RSシリーズ

用途

研究開発

小型・中型汎用ロボット

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz6

02

発表サマリー

KHI制御パッケージ(ROS2)の開発概要
産業用ロボットの動作品質に留意しながらROS1と構成が異なるROS2パッケージの開発をおこなっています
定義

ROSB-448-003-R00

KHI制御パッケージ（ROS2）特記安定性

意図しない速度急変や意図しない異常停止を防ぐ機能を導入
非常停止等が発生せず連続動作すること再現精度

目標位置姿勢の再現精度

公開中のROS1パッケージと同程度

動作速度教示された動作を実行するときのロボット手先速度（ツール先端速度）

公開中のROS1パッケージと同程度

安全性

ロボットコントローラの状態と連動した緊急停止機能

ROS2上でロボットコントローラを制御するためのドライバ状態を定義© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

●

本発表

●本発表

●本発表

開発中

7

03

システム構成システム構成と各部説明
ROSパッケージを導入した外部PCで経路計画を行い、当社ロボットコントローラに動作指令を連続送信し、6軸のロボットアームを制御します
6軸の設定角度
例:[0,0,0,0,0,0]

0.作業内容
入力

各軸角度
指令値

各軸電流

各軸角度
測定値

各軸エンコーダ値

ROS動作PC

1.動作計画・経路生成
2.指令値に変換
3.指令値に範囲制限を反映
4.指令値を送信
ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reserved

ロボット
コントローラ

産業用ロボット

当社ロボコン
専用通信API

5.指令値を受信
6.フィードバック制御で各軸を駆動
z8

03

システム構成KHI制御パッケージ(ROS2)の構成図
公開パッケージ“ros2_control”を基本構成としKHIロボットに接続するために”System/KhiHardwareInterface”クラスを開発しました

newhttps://control.ros.org/foxy/doc/getting_started/getting_started.html#hardware-components

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz9

開発内容

04

KHIロボットのための制約と設定”System/KhiHardwareInterface” には
当社ロボコン専用通信APIを含み、ハード的制約を各部で設定しました ライブラリ指定
rs007l_joint_limits.yaml

1.動作計画・経路生成
rs007l_controller.yaml

2.指令値に変換

当社ロボコン用設定値
・制御周期
・…

当社ロボット用初期設定値
・軸動作範囲・軸速度上限・軸加速度上限
・…

3.指令値に範囲制限を反映
ros2_contorlとして、速度上限などを超えないように指令値を調整する

new

4.指令値を送信当社ロボコン専用通信APIが指令値の速度上限をチェックする。上限を超えるとエラー停止する。

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

10

04

開発内容

KHI制御パッケージ(ROS2)の特徴
リアルタイムに指令値を受信することを想定している
当社ロボコンに適合するように、送信機能を強化しました

1.動作計画・経路生成

2.指令値に変換
3.指令値に範囲制限を反映
4.指令値を送信
ロボコンが求める制御指令値を確実に送信するよう実装

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz11

開発内容

04

当社ロボコンの受信特性“ros2_control”の動作計画をロボコンが正しく解釈できない場面を考慮しています

一定の制御周期が保てないときでも、動作計画通りに、ある時刻の指令値を忠実に送信している
動作計画

1.動作計画・経路生成

制御PCの処理能力不足による？

指令値 [rad]2.指令値に変換

3.指令値に範囲制限を反映
速度上限などを超えないように指令値を調整

4.指令値を送信

時間 [s]

当社ロボコン専用通信APIが指令値の速度上限をチェックする。
不可の場合は非常停止となる

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reserved

一定の制御周期で処理をすることが前提なので、図のような解釈で、ロボットを動作させようとする

z

12

開発内容

04

ros2_controlの制御周期が不安定で生じる問題
ロボットアームの動作速度に急変が発生し、異常停止の要因になります

動作速度が大きくなる
極端に大きくなる場合、通信専用APIが不可を判定しロボット動作が停止してしまう可能性がある

1.動作計画・経路生成
2.指令値に変換

指令値 [rad]

動作速度が小さくなる

3.指令値に範囲制限を反映
速度上限などを超えないように指令値を調整

4.指令値を送信

時間 [s]

当社ロボコン専用通信APIが指令値の速度上限をチェックする。
不可の場合は非常停止となる

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz13

04

開発内容

周期補正機能の導入

1.動作計画・経路生成
2.指令値に変換

System
KhiHardwareInterface

他のROSパッケージに影響を与えず、本来のインターロック機能を無効にしない方法にしました
補正機能なし補正機能あり（不定期の）各軸角度指令値（不定期の）各軸角度指令値

周期補正機能（定周期の）各軸角度指令値

専用通信APIの速度上限判定

専用通信APIの速度上限判定

専用通信APIで送信

専用通信APIで送信

非常停止要因3.指令値に範囲制限を反映
速度上限などを超えないように指令値を調整

4.指令値を送信
当社ロボコン専用通信APIが指令値の速度上限をチェックする。
不可の場合は異常停止となる

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz14

04

開発内容

周期補正機能の詳細
不定期で送られてくる各軸角度指令値に対して、直線補完で周期相当の値を算出しました
補正機能あり指令値 [rad]（不定期の）各軸角度指令値

周期補正機能𝑡𝑛𝑜𝑤 , 𝑝𝑛𝑜𝑤
𝑡𝑛−1 , 𝑝𝑛−1

𝑡𝑛 , 𝑝𝑛

𝑃𝑛 = 𝑃𝑛−1 +𝑃𝑛𝑜𝑤 − 𝑃𝑛−1× ∆𝑡𝑡𝑛𝑜𝑤 − 𝑡𝑛−1∆𝑡（定周期の）各軸角度指令値

専用通信APIの速度上限判定
専用通信APIで送信

時間[sec]

最新値 𝑡𝑛𝑜𝑤 , 𝑝𝑛𝑜𝑤 と、1回前の送信値 𝑡𝑛−1 , 𝑝𝑛−1 から直線補間を用い周期相当の軸値を算出
ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz15

05

動作品質

補正機能による安定性の比較補正機能が無い場合はしばしば異常停止が発生しますが、補正機能がある場合は停止することなく動作します

積み下ろし動作を繰り返し行った際の途中停止確率（停止回数/繰り返し動作回数）

停止率

補正無補正有4.3%

0.0%

20/470

0/100

速度急変

速度急変

ツール先端速度の時間変化
ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

16

05

動作品質

動作品質の確認
今回開発したKHI制御パッケージ(ROS2)の再現精度と動作速度を調査しました

安定性

再現精度

動作速度

確認済み

手先の・座標のズレ・軸のズレ・目標への到達精度確認
・軌跡確認

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

ハード的制約から定めたKHI制御パッケージの設定値におけるサイクルタイムを測定

17

05

動作品質

目標への到達精度確認（再現精度）
ROS制御パッケージ（ROS1,ROS2)はともに指令値に対して、0.07mm程度の誤差で実動作していることを確認しました
位置誤差

姿勢誤差

0.05

0.07

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

18

05

動作品質

軌跡確認（再現精度）計画した軌跡通りに、実動作していることを確認できました
ROS1

ROS2

軌跡

速度
変化

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz

19

05

動作品質

サイクルタイムの測定（動作速度）
KHI制御パッケージ(ROS2)は、KHI制御パッケージ(ROS1)と同程度であることを確認しました

1

KHI制御パッケージ(ROS)
ROS1
ROS2

1.19±0.015秒

1.19±0.024秒

N=300

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz20

06

まとめまとめ当社産業用ロボット（RSシリーズ）のKHI制御パッケージ（ROS2) を作成しました
制御PCの性能に依らず、 KHI制御パッケージ(ROS2)の連続動作の安定性を高めました

再現精度・動作速度についてKHI制御パッケージのROS1とROS2は同程度であることを確認しました

KHI制御パッケージ（ROS2）を是非使ってみてください！！！

ROSB-448-003-R00© Kawasaki Heavy Industries, Ltd. All Rights Reservedz21