SlideShare a Scribd company logo
1 of 9
Download to read offline
RTミドルウェア SUMMER CAMP 2016
SysML講習会
日時:2016年8月1日(月) 15:20~
場所:産業技術総合研究所 つくばセンター中央第二
本部・情報棟1階 ネットワーク会議室
株式会社 グローバルアシスト
坂本 武志
2016.8.1 Copyright (C) GLOBAL ASSIST Co., Ltd., All Rights Reserved. 2
SysMLモデリング
 モデリング≒設計
 設計を行うのであれば,その場限りの独自記法で検討を行うのでは
なく,標準となっている記法で検討を行って欲しい
 開発したRTコンポーネントを公開する際に,設計情報も併せて
公開して欲しい
 後からRTコンポーネントを利用する人のため
 サマーキャンプでモデリングを行っている理由
 チーム内での意思統一,進捗管理
 何を開発するのか?どう実装するのか?など
 どこまで開発できているのか?
 開発内容の説明
 どのようなシステムを開発するのか?何が特徴なのか?など
2016.8.1 3
要求図
 性能なども含めたシステムが満たすべき項目を表現
req [model] 移動ロボット [移動ロボット(自律移動)]
<<requirement>>
自律移動
id =
text = "ユーザが指定した
目的地まで,安全に移動で
きること"
<<requirement>>
障害物回避
id =
text = "ロボット周辺の障害
物を回避できること"
<<requirement>>
経路生成
id =
text = "目的地までの移動
経路を自動で生成できるこ
と"
<<requirement>>
移動
id =
text = "移動指令に従って
移動すること"
<<requirement>>
自己位置推定
id =
text = "ロボット自身の現在
位置を推定できること"
<<requirement>>
環境地図
id =
text = "周辺環境の地図を
持つこと"
<<requirement>>
環境地図マ ッチング
id =
text = "周辺環境の地図と
外界計測センサの計測結
果からマッチングを行うこと"
<<requirement>>
デッドレ コニング
id =
text = "内界センサの計測
値を基に,自分の位置を推
定できること"
<<requirement>>
内界センサ
id =
text = "ロボットの相対的な
移動量を計測できること"
<<requirement>>
周辺環境情報の計測
id =
text = "ロボット周辺の環境情
報を計測できること"
<<requirement>>
移動時間
id =
text = "なるべく短い時間で
目的地まで到達できること"
<<requirement>>
連続移動可能距離
id =
text = "なるべく長距離を移
動可能であること"
<<requirement>>
低消費電力化
id =
text = "消費電力をなるべ
く下げること"
<<requirement>>
環境地図自動生成
id =
text = "周辺環境の地図を自
動的に生成できること"
<<requirement>>
ユーザビリティの向上
id =
text = "使用時のユーザの負
担をなるべく軽減すること"
<<requirement>>
地図精度の向上
id =
text = "なるべく高精度な地
図を生成できること"
<<requirement>>
パターン移動
id =
text = "指定されたパターン
に従って移動できること"
<<requirement>>
効率的な 自律移動
id =
text = "ユーザが指定した目的地ま
で,なるべく短時間で安全に移動で
きるとともに,ユーザの手間をなるべく
軽減しつつ,長距離を移動可能であ
ること"
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>> <<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
開発対象システムの説明
何を行うシステムを開発するのか?
各機能は何のために必要なのか?
システムを開発中に,
本来は何をするのか?を確認
何を目的としている機能なのか?
別機能で代替できないのか?
2016.8.1 4
ユースケース図
 対象範囲(システム)が提供する機能の明確化
 開発対象の範囲(システム化範囲)を明確にする。
 機能とそのユーザの関係を明確にする。
 対象範囲(システム)が必要とする外部要素を明確にする。
uc [model] 移動ロボット [移動ロボット]
移動ロボットシステム
ユーザ
指定された目的地まで自律
的に移動する
拡張点
移動方向を決定する
周辺環境を 計測する
障害物を回避する
条件:{移動経路上に障害物が存在}
拡張点:移動方向を決定する
環境地図を自動的に
生成する
現在位置を 推定する
移動する
経路を生成する
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<extend>>
<<include>>
<<include>>
提供機能のカタログ化
どのような機能を開発するのか?
開発工数の見積もり
各機能を開発するのに必要な
工数はどの程度か?
優先順位の決定
どの機能から開発を行うのか?
作業分担の検討
誰がどの機能を開発するのか?
必須機能の判断
最低限どの機能が必要なのか?
2016.8.1 5
ブロック定義図
 システムの静的な構造を表現
bdd [Package] 移動ロボット [移動ロボット]
<<block>>
移動ロボットシステム
<<block>>
移動ロボット
<<block>>
測域センサ
<<block>>
距離画像センサ
{XOR}
<<block>>
バッテリ
<<block>>
駆動輪
<<block>>
制御装置
<<block>>
車輪
<<block>>
モータ
<<block>>
エンコーダ
<<block>>
地図生成
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 現在位置: 位置
- 移動指令: 速度
<<block>>
周辺環境計測
<<block>>
自己位置推定
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 現在位置: 位置
- 移動量: 移動量
+ 自己位置を推定する(レンジデータ): 位置
+ 移動量を伝達する(移動量)
+ 現在位置を推定する(レンジデータ, 移動量): 位置
<<block>>
移動制御
- 移動指令: 速度
- 移動量: 移動量
+ 停止する()
+ 移動する(速度)
<<block>>
経路生成
- 現在位置: 位置
- 目標位置: 位置
- 目的地: 位置
+ 目的地を設定する(位置)
- 移動経路を生成する(位置, 位置): 位置
- 地図情報を更新する(レンジデータ, 位置)
<<block>>
障害物回避
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 目標位置: 位置
- 移動指令: 速度
+ 目標軌道を生成する(レンジデータ, 位置)
<<block>>
測域センサ制御
- 計測値: レンジデータ
<<block>>
距離画像センサ制御
- 計測値: 深度画像
{XOR}
<<valueType>>
レンジデータ
- 距離リスト: List<double>
<<valueType>>
深度画像
- ピクセル値: List<octet>
<<valueType>>
位置
- X: double
- Y: double
- θ: double
<<valueType>>
速度
- X方向速度: double
- Y方向速度: double
- Z軸周り回転速度: double
<<valueType>>
移動量
- X方向移動量: double
- Y方向移動量: double
- Z軸周り移動角度: double
0..1
0..1
2
0..1
0..1
1..*
1..*
必要なハードウェアの確認
どの機材を利用するのか?
不足している機材は何なのか?
RTCのカタログ化
どのようなRTCで構成するか?
どのRTCを開発し,どのRTCを再利用するのか?
優先順位の決定
どのRTCから開発を行うのか?
作業分担の検討
誰がどのRTCを開発するのか?
2016.8.1 6
内部ブロック図
 システム構成要素間の接続関係を明確にする
 構成要素間でやりとりする内容を明確にする
 システムを構成する要素間でやり取りする内容を表現
ibd [Package] 移動ロボット [移動ロボットシステム(SW)]
: ~レンジデータ : ~深度画像
: 周辺環境計測
: ~レンジデータ : ~深度画像
: ~レンジデータ
: 測域センサ制御[0..1]
: ~レンジデータ : ~深度画像
: 距離画像センサ制御[0..1]
: ~深度画像
: レンジデータ : 深度画像
目標位置: 位置 移動指令: ~速度
: 障害物回避
: レンジデータ : 深度画像
目標位置: 位置 移動指令: ~速度
: レンジデータ : 深度画像
現在位置: 位置 移動指令: ~速度
: 地図生成
: レンジデータ : 深度画像
現在位置: 位置 移動指令: ~速度
: レンジデータ : 深度画像
現在位置: ~位置
: 移動量
: 自己位置推定
: レンジデータ : 深度画像
現在位置: ~位置
: 移動量
現在位置: 位置
目標位置: ~位置
: 経路生成
現在位置: 位置
目標位置: ~位置
移動指令: 速度
: ~移動量
: 移動制御
移動指令: 速度
: ~移動量
目的地を設定する
ポートの明確化
各RTCはどのようなポートを
有するのか?
データポートではどのような
データをやり取りするのか?
サービスポートではどのような
操作が必要なのか?
全体構成の確認
各RTC間はどのような接続と
なるのか?
2016.8.1 7
コンテキスト図
 システムが動作する環境を表現
ibd [Package] 移動ロボット [コンテキスト図]
<<system>>
: 移動ロボットシステム
:ユーザ
<<external>>
: 人
<<external>>
: 床面
床面はフラットと仮定
<<external>>
: 周辺環境
<<external>>
: 壁
<<external>>
: 家具
0..*
0..*
0..*
開発環境の明確化
どのような前提で(何を考慮して)設計,開発を行うのか?
誰に対して機能を提供しているのか?何を使用して機能を実現するのか?
2016.8.1 8
アクティビティ図
 処理の流れを表現
現実世界の処理流れを整理する(ビジネスプロセスも含む)
ある機能を実現するための処理の流れ(アルゴリズムを含む)を表現
act 目的地まで移動する
ビジョンセンサ移動ロボ ット OpenHRP3距離センサ
移動開始を指令する
ユーザ OpenINVENT
グリッド経路
障害物情報
自己位置推定結果
現在位置から目標位置まで
の経路を計画する
グリッド経路
障害物情報
自己位置推定結果
グリッド経路
制御点データ
制御点を抽出する
グリッド経路
制御点データ
制御点データ
目標並進/旋回速度
ロボット中心の並進/旋回速
度を算出する
制御点データ
目標並進/旋回速度
目標並進/旋回速度
指令角速度値
両輪の指令角速度値を算出
する
目標並進/旋回速度
指令角速度値
目標並進/旋回速度
トルク指令値
両輪の指令トルクを算出す
る
目標並進/旋回速度
トルク指令値
センサデータ
周辺環境を計測する
センサデータ
センサデータ障害物情報
周辺障害物を検出する
センサデータ障害物情報
指令角速度値
オドメトリ値
移動する
指令角速度値
オドメトリ値
センサデータ 周辺環境を計測するセンサデータ
自己位置推定結果
オドメトリ値
自己位置推定結果
自己位置を推定する
自己位置推定結果
オドメトリ値
自己位置推定結果
オドメトリ値
トルク指令値
移動する
オドメトリ値
トルク指令値
自己位置推定結果
ランドマークを計測する
自己位置推定結果
[実機の場合]
[シミュレーションの場合]
{ rate = per 20ms }
{ rate = per 40ms }
act 地図を生成する
OpenHRPOpenINVENTユーザ
地図生成を実行する
干渉チェック
モデル干渉チェックモデルを作
成する
干渉チェック
モデル
干渉チェック
モデル 干渉チェック
結果
干渉チェックを実行する
干渉チェック
モデル 干渉チェック
結果
干渉チェック
結果
グリッド地図
グリッド地図を作成する
干渉チェック
結果
グリッド地図
グリッド地図
グリッド地図情報を配信する
グリッド地図
処理手順の明確化
各機能をどのような手順で実現するのか?
2016.8.1 9
RTSystem開発時のSysML利用法
00.システムが動作する環境の定義
 コンテキスト図の作成
01.システムが「何を」実現すべきなのかを検討
 要求図の作成
02.システムが実現すべき機能の検討
 ユースケース図の作成
03.システムの構成要素の検討
 ブロック定義図の作成
04.構成要素間でやり取りするデータの検討
 内部ブロック図の作成
05.機能を実現するための手順の検討
 アクティビティ図の作成
06.RTC,RTSystemへのマッピング
composite struct ure 全体構成
MapBuilderCons MapBuilderProv
GlobalPathCons
<<block,RTC>>
Invent GUI
MapBuilderCons MapBuilderProv
GlobalPathCons
InventGUIProv
MapMaintenanceCons
<<block,RTC>>
地図生成
InventGUIProv
MapMaintenanceCons
MapBuilderProv
ObstacleProv
<<block,RTC>>
地図管理
MapBuilderProv
ObstacleProv
MapMaintenanceCons
<<flowPort>>
位置情報 :
Position
MapBuilderProv
<<flowPort>> センサ
データ :SensorData
<<block,RTC>>
障害物検出MapMaintenanceCons
<<flowPort>>
位置情報 :
Position
MapBuilderProv
<<flowPort>> センサ
データ :SensorData
<<flowPort>> SensorData :
TimedMeasuredData
<<flowPort>> 計測結果 :
TimedDoubleSeq
<<block,RTC>>
距離センサシミ ュレ ーション
<<flowPort>> SensorData :
TimedMeasuredData
<<flowPort>> 計測結果 :
TimedDoubleSeq
<<flowPort>> 自己位置姿勢推
定結果(ToGUI) :Position
<<flowPort>> オドメトリ値 :
Position
<<block,RTC>>
自己位置姿勢推定
<<flowPort>> 自己位置姿勢推
定結果(ToGUI) :Position
<<flowPort>> オドメトリ値 :
Position
<<flowPort>> 自己位置姿
勢推定結果 :Position
<<flowPort>> オドメトリ値 :
Position
<<flowPort>> 車輪回
転角度 :車輪角度
<<block,RTC>>
オドメトリ推定
<<flowPort>> 自己位置姿
勢推定結果 :Position
<<flowPort>> オドメトリ値 :
Position
<<flowPort>> 車輪回
転角度 :車輪角度
<<flowPort>> 車輪回
転角度 :車輪角度
<<flowPort>> トルク
指令 :Torque
<<flowPort>> 目標速度 :
TimedVelocity
<<flowPort>> 現在位置・
姿勢 :SimulatedPosition
<<flowPort>> 車輪回
転角度 :車輪角度
BumpProv
<<block,RTC>>
運動制御
<<flowPort>> 車輪回
転角度 :車輪角度
<<flowPort>> トルク
指令 :Torque
<<flowPort>> 目標速度 :
TimedVelocity
<<flowPort>> 現在位置・
姿勢 :SimulatedPosition
<<flowPort>> 車輪回
転角度 :車輪角度
BumpProv
<<flowPort>> 現在位置・姿
勢 :Position
MapBuilderDrive
MapMaintenanceProv
<<flowPort>> 逸脱距離 :
Distance
LocalPathProv
<<flowPort>> 目標
並進・旋回速度 :
TimedVelocity
BumpProv
<<block,RTC>>
移動指令生成
<<flowPort>> 現在位置・姿
勢 :Position
MapBuilderDrive
MapMaintenanceProv
<<flowPort>> 逸脱距離 :
Distance
LocalPathProv
<<flowPort>> 目標
並進・旋回速度 :
TimedVelocity
BumpProv
<<flowPort>> 自
己位置姿勢推定
結果 :Position
<<flowPort>> 逸脱距離 :
Distance
DriveCons
MapMaintenanceProv
MapBuilderProv
GlobalPathProv
<<block,RTC>>
局所経路生成
<<flowPort>> 自
己位置姿勢推定
結果 :Position
<<flowPort>> 逸脱距離 :
Distance
DriveCons
MapMaintenanceProv
MapBuilderProv
GlobalPathProv
MapBuilderProv
MapMaintenanceProv
LocalPathCons
InventGUIProv
<<block,RTC>>
大域経路生成
MapBuilderProv
MapMaintenanceProv
LocalPathCons
InventGUIProv
<<flowPort>> 現在位置・姿勢 :
SimulatedPosition
<<flowPort>> トルク
指令 :Torque
<<flowPort>> 現在車
輪角度 :車輪角度
<<flowPort>> 計測結果 :
TimedDoubleSeq
<<flowPort>> 路面計測結果 :
TimedDoubleSeq
<<actor>>
BridgeRTC
<<flowPort>> 現在位置・姿勢 :
SimulatedPosition
<<flowPort>> トルク
指令 :Torque
<<flowPort>> 現在車
輪角度 :車輪角度
<<flowPort>> 計測結果 :
TimedDoubleSeq
<<flowPort>> 路面計測結果 :
TimedDoubleSeq
MotorControlCons
DriveControlCons
<<flowPort>> 現在PanTilt
角度 :PanTilt角度
<<flowPort>> 目標PanTilt
角度 :PanTilt角度
<<flowPort>> SensorData :
TimedMeasuredData
MapMaintenanceCons
<<block,RTC>>
路面凹凸検知
MotorControlCons
DriveControlCons
<<flowPort>> 現在PanTilt
角度 :PanTilt角度
<<flowPort>> 目標PanTilt
角度 :PanTilt角度
<<flowPort>> SensorData :
TimedMeasuredData
MapMaintenanceCons
<<flowPort>> 現在PanTilt
角度 :PanTilt角度
<<flowPort>> 目標PanTilt
角度 :PanTilt角度
<<block,RTC>>
PanTilt制御<<flowPort>> 現在PanTilt
角度 :PanTilt角度
<<flowPort>> 目標PanTilt
角度 :PanTilt角度
<<flowPort>> SensorData :
TimedMeasuredData
<<flowPort>> 路面計測結果 :
TimedDoubleSeq
<<block,RTC>>
距離センサシミュレ ーション
<<flowPort>> SensorData :
TimedMeasuredData
<<flowPort>> 路面計測結果 :
TimedDoubleSeq
マップ
InventGUI
InventGUI
地図更新
地図更新
地図更新
地図更新
障害物情報設定
移動指令
移動指令
移動指令
移動指令局所経路
局所経路
局所経路
広域経路
広域経路
局所経路局所経路
広域経路
広域経路
モータ
モータ
移動指令
移動指令
地図更新
地図更新
act 目的地まで移動する
ビジョンセン サ移動ロボ ット OpenHRP3距離センサ
移動開始を指令する
ユーザ OpenINVENT
グリッド経路
障害物情報
自己位置推定結果
現在位置から目標位置まで
の経路を計画する
グリッド経路
障害物情報
自己位置推定結果
グリッド経路
制御点データ
制御点を 抽出す る
グリッド経路
制御点データ
制御点データ
目標並進/旋回速度
ロボット中心の並進/旋回速
度を算出する
制御点データ
目標並進/旋回速度
目標並進/旋回速度
指令角速度値
両輪の指令角速度値を 算出
する
目標並進/旋回速度
指令角速度値
目標並進/旋回速度
トルク指令値
両輪の指令トルクを 算出す
る
目標並進/旋回速度
トルク指令値
センサデータ
周辺環境を 計測す る
センサデータ
センサデータ障害物情報
周辺障害物を 検出す る
センサデータ障害物情報
指令角速度値
オドメトリ値
移動する
指令角速度値
オドメトリ値
センサデータ 周辺環境を計測するセンサデータ
自己位置推定結果
オドメトリ値
自己位置推定結果自己位置を 推定す る
自己位置推定結果
オドメトリ値
自己位置推定結果
オドメトリ値
トルク指令値
移動する
オドメトリ値
トルク指令値
自己位置推定結果
ランドマークを 計測す る
自己位置推定結果
[実機の場合]
[シミュレーションの場合]
{ rate = per 20ms }
{ rate = per 40ms }
:ブロックR
name : BlockType
: Type
プロパティ
ポートポート
インターフェース
プロパティ
bdd [Package] 移動ロボット [移動ロボット]
<<block>>
移動ロボットシステム
<<block>>
移動ロボット
<<block>>
測域センサ
<<block>>
距離画像センサ
{XOR}
<<block>>
バッテリ
<<block>>
駆動輪
<<block>>
制御装置
<<block>>
車輪
<<block>>
モータ
<<block>>
エ ンコーダ
<<block>>
地図生成
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 現在位置: 位置
- 移動指令: 速度
<<block>>
周辺環境計測
<<block>>
自己位置推定
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 現在位置: 位置
- 移動量: 移動量
+ 自己位置を推定する(レンジデータ): 位置
+ 移動量を伝達する(移動量)
+ 現在位置を推定する(レンジデータ, 移動量): 位置
<<block>>
移動制御
- 移動指令: 速度
- 移動量: 移動量
+ 停止する()
+ 移動する(速度)
<<block>>
経路生成
- 現在位置: 位置
- 目標位置: 位置
- 目的地: 位置
+ 目的地を設定する(位置)
- 移動経路を生成する(位置, 位置): 位置
- 地図情報を更新する(レンジデータ, 位置)
<<block>>
障害物回避
- 測域センサ計測値: レンジデータ [0..1]
- 距離画像センサ計測値: 深度画像 [0..1]
- 目標位置: 位置
- 移動指令: 速度
+ 目標軌道を生成する(レンジデータ, 位置)
<<block>>
測域センサ制御
- 計測値: レンジデータ
<<block>>
距離画像センサ制御
- 計測値: 深度画像
{XOR}
<<valueType>>
レンジデータ
- 距離リスト: List<double>
<<valueType>>
深度画像
- ピクセル値: List<octet>
<<valueType>>
位置
- X: double
- Y: double
- θ: double
<<valueType>>
速度
- X方向速度: double
- Y方向速度: double
- Z軸周り回転速度: double
<<valueType>>
移動量
- X方向移動量: double
- Y方向移動量: double
- Z軸周り移動角度: double
0..1
0..1
2
0..1
0..1
1..*
1..*
req [model] 移動ロボッ ト [移動ロボット(自律移動)]
<<requirement>>
自律移動
id =
text = "ユーザが指定した
目的地まで,安全に移動で
きること"
<<requirement>>
障害物回避
id =
text = "ロボット周辺の障害
物を回避できること"
<<requirement>>
経路生成
id =
text = "目的地までの移動
経路を自動で生成できるこ
と"
<<requirement>>
移動
id =
text = "移動指令に従って
移動すること"
<<requirement>>
自己位置推定
id =
text = "ロボット自身の現在
位置を推定できること"
<<requirement>>
環境地図
id =
text = "周辺環境の地図を
持つこと"
<<requirement>>
環境地図マッ チング
id =
text = "周辺環境の地図と
外界計測センサの計測結
果からマッチングを行うこと"
<<requirement>>
デッドレコニング
id =
text = "内界センサの計測
値を基に,自分の位置を推
定できること"
<<requirement>>
内界センサ
id =
text = "ロボットの相対的な
移動量を計測できること"
<<requirement>>
周辺環境情報の計測
id =
text = "ロボット周辺の環境情
報を計測できること"
<<requirement>>
移動時間
id =
text = "なるべく短い時間で
目的地まで到達できること"
<<requirement>>
連続移動可能距離
id =
text = "なるべく長距離を移
動可能であること"
<<requirement>>
低消費電力化
id =
text = "消費電力をなるべ
く下げること"
<<requirement>>
環境地図自動生成
id =
text = "周辺環境の地図を自
動的に生成できること"
<<requirement>>
ユーザビリティの向上
id =
text = "使用時のユーザの負
担をなるべく軽減すること"
<<requirement>>
地図精度の向上
id =
text = "なるべく高精度な地
図を生成できること"
<<requirement>>
パタ ーン移動
id =
text = "指定されたパターン
に従って移動できること"
<<requirement>>
効率的な自律移動
id =
text = "ユーザが指定した目的地ま
で,なるべく短時間で安全に移動で
きるとともに,ユーザの手間をなるべく
軽減しつつ,長距離を移動可能であ
ること"
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>> <<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
<<deriveReqt>>
ibd [Package] 移動ロボット [コンテキスト図]
<<system>>
: 移動ロボットシステム
:ユーザ
<<external>>
: 人
<<external>>
: 床面
床面はフラットと仮定
<<external>>
: 周辺環境
<<external>>
: 壁
<<external>>
: 家具
0..*
0..*
0..*
uc [model] 移動ロボット [移動ロボット]
移動ロボットシステム
ユーザ
指定された目的地まで自律
的に移動する
拡張点
移動方向を決定する
周辺環境を計測する
障害物を回避する
条件:{移動経路上に障害物が存在}
拡張点:移動方向を決定する
環境地図を自動的に
生成する
現在位置を推定する
移動する
経路を生成する
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<extend>>
<<include>>
<<include>>

More Related Content

What's hot

ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1openrtm
 
2013 summercamp 05
2013 summercamp 052013 summercamp 05
2013 summercamp 05openrtm
 
Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Noriaki Ando
 
マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化openrtm
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02openrtm
 
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大openrtm
 
2017 summercamp 04
2017 summercamp 042017 summercamp 04
2017 summercamp 04openrtm
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)openrtm
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)openrtm
 
2015 summercamp 08
2015 summercamp 082015 summercamp 08
2015 summercamp 08openrtm
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)openrtm
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部openrtm
 
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部openrtm
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04openrtm
 
Rtshell 2017
Rtshell 2017Rtshell 2017
Rtshell 2017openrtm
 
150629 02
150629 02150629 02
150629 02openrtm
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1openrtm
 
150629 01
150629 01150629 01
150629 01openrtm
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要openrtm
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部openrtm
 

What's hot (20)

ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1
 
2013 summercamp 05
2013 summercamp 052013 summercamp 05
2013 summercamp 05
 
Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部Japan Robot Week 2016 RTM講習会 第1部
Japan Robot Week 2016 RTM講習会 第1部
 
マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02
 
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
 
2017 summercamp 04
2017 summercamp 042017 summercamp 04
2017 summercamp 04
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)
 
2015 summercamp 08
2015 summercamp 082015 summercamp 08
2015 summercamp 08
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部
 
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04
 
Rtshell 2017
Rtshell 2017Rtshell 2017
Rtshell 2017
 
150629 02
150629 02150629 02
150629 02
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1
 
150629 01
150629 01150629 01
150629 01
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部
 

Viewers also liked

RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎Noriaki Ando
 
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎Noriaki Ando
 
2016 summercamp rtshell入門
2016 summercamp rtshell入門2016 summercamp rtshell入門
2016 summercamp rtshell入門openrtm
 
グループ2 Gprese
グループ2 Gpreseグループ2 Gprese
グループ2 Gpreseopenrtm
 
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミングRTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミングNoriaki Ando
 
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)Noriaki Ando
 
2016 summercamp 当研究室でのRTミドルウエアの取り組み
2016 summercamp 当研究室でのRTミドルウエアの取り組み2016 summercamp 当研究室でのRTミドルウエアの取り組み
2016 summercamp 当研究室でのRTミドルウエアの取り組みopenrtm
 
グループ5 ひとりでもだるまさんが転んだ
グループ5 ひとりでもだるまさんが転んだグループ5 ひとりでもだるまさんが転んだ
グループ5 ひとりでもだるまさんが転んだopenrtm
 
グループ4 ロボットで福笑い
グループ4 ロボットで福笑いグループ4 ロボットで福笑い
グループ4 ロボットで福笑いopenrtm
 
グループ1最終プレゼン資料
グループ1最終プレゼン資料グループ1最終プレゼン資料
グループ1最終プレゼン資料openrtm
 
RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要Noriaki Ando
 

Viewers also liked (11)

RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
 
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
 
2016 summercamp rtshell入門
2016 summercamp rtshell入門2016 summercamp rtshell入門
2016 summercamp rtshell入門
 
グループ2 Gprese
グループ2 Gpreseグループ2 Gprese
グループ2 Gprese
 
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミングRTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
 
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
 
2016 summercamp 当研究室でのRTミドルウエアの取り組み
2016 summercamp 当研究室でのRTミドルウエアの取り組み2016 summercamp 当研究室でのRTミドルウエアの取り組み
2016 summercamp 当研究室でのRTミドルウエアの取り組み
 
グループ5 ひとりでもだるまさんが転んだ
グループ5 ひとりでもだるまさんが転んだグループ5 ひとりでもだるまさんが転んだ
グループ5 ひとりでもだるまさんが転んだ
 
グループ4 ロボットで福笑い
グループ4 ロボットで福笑いグループ4 ロボットで福笑い
グループ4 ロボットで福笑い
 
グループ1最終プレゼン資料
グループ1最終プレゼン資料グループ1最終プレゼン資料
グループ1最終プレゼン資料
 
RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要
 

Similar to 2016 summercamp SysML講習会

SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfopenrtm
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)OSgeo Japan
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Hirono Jumpei
 
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPIJunji Nishihara
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51holypong
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大openrtm
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート充博 大崎
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートYukihito Kataoka
 
200824 SysML Tutorial
200824 SysML Tutorial200824 SysML Tutorial
200824 SysML Tutorialopenrtm
 
Si2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドSi2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドRobotics Engineer
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)aitc_jp
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするYusuke Naka
 
Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料openrtm
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)Toshihiko Yamakami
 
Co-Simulation mechatronics and software
Co-Simulation mechatronics and softwareCo-Simulation mechatronics and software
Co-Simulation mechatronics and softwareKeiju Anada
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはHideki Takase
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code ReadingTakuya Minagawa
 
[DL輪読会]Learning to Navigate in Cities Without a Map
[DL輪読会]Learning to Navigate in Cities Without a Map[DL輪読会]Learning to Navigate in Cities Without a Map
[DL輪読会]Learning to Navigate in Cities Without a MapDeep Learning JP
 

Similar to 2016 summercamp SysML講習会 (20)

SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdf
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
 
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI
"Kong Summit, Japan 2022" Kongコミュニティセッション:政府が掲げるデジタル田園都市国家構想の実現に重要なオープンAPI
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
 
200824 SysML Tutorial
200824 SysML Tutorial200824 SysML Tutorial
200824 SysML Tutorial
 
Si2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドSi2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライド
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みする
 
Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料Rtミドルウェア講習会 第2部資料
Rtミドルウェア講習会 第2部資料
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
 
Co-Simulation mechatronics and software
Co-Simulation mechatronics and softwareCo-Simulation mechatronics and software
Co-Simulation mechatronics and software
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うには
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
 
[DL輪読会]Learning to Navigate in Cities Without a Map
[DL輪読会]Learning to Navigate in Cities Without a Map[DL輪読会]Learning to Navigate in Cities Without a Map
[DL輪読会]Learning to Navigate in Cities Without a Map
 

More from openrtm

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部openrtm
 
ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステムopenrtm
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画openrtm
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボットopenrtm
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステムopenrtm
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxopenrtm
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfopenrtm
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部openrtm
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)openrtm
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)openrtm
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習openrtm
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎openrtm
 
1.コース概要
1.コース概要1.コース概要
1.コース概要openrtm
 
Slam実習
Slam実習Slam実習
Slam実習openrtm
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門openrtm
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門openrtm
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦openrtm
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1openrtm
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2openrtm
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹openrtm
 

More from openrtm (20)

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
 
ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステム
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボット
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステム
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptx
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdf
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 
Slam実習
Slam実習Slam実習
Slam実習
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

2016 summercamp SysML講習会

  • 1. RTミドルウェア SUMMER CAMP 2016 SysML講習会 日時:2016年8月1日(月) 15:20~ 場所:産業技術総合研究所 つくばセンター中央第二 本部・情報棟1階 ネットワーク会議室 株式会社 グローバルアシスト 坂本 武志
  • 2. 2016.8.1 Copyright (C) GLOBAL ASSIST Co., Ltd., All Rights Reserved. 2 SysMLモデリング  モデリング≒設計  設計を行うのであれば,その場限りの独自記法で検討を行うのでは なく,標準となっている記法で検討を行って欲しい  開発したRTコンポーネントを公開する際に,設計情報も併せて 公開して欲しい  後からRTコンポーネントを利用する人のため  サマーキャンプでモデリングを行っている理由  チーム内での意思統一,進捗管理  何を開発するのか?どう実装するのか?など  どこまで開発できているのか?  開発内容の説明  どのようなシステムを開発するのか?何が特徴なのか?など
  • 3. 2016.8.1 3 要求図  性能なども含めたシステムが満たすべき項目を表現 req [model] 移動ロボット [移動ロボット(自律移動)] <<requirement>> 自律移動 id = text = "ユーザが指定した 目的地まで,安全に移動で きること" <<requirement>> 障害物回避 id = text = "ロボット周辺の障害 物を回避できること" <<requirement>> 経路生成 id = text = "目的地までの移動 経路を自動で生成できるこ と" <<requirement>> 移動 id = text = "移動指令に従って 移動すること" <<requirement>> 自己位置推定 id = text = "ロボット自身の現在 位置を推定できること" <<requirement>> 環境地図 id = text = "周辺環境の地図を 持つこと" <<requirement>> 環境地図マ ッチング id = text = "周辺環境の地図と 外界計測センサの計測結 果からマッチングを行うこと" <<requirement>> デッドレ コニング id = text = "内界センサの計測 値を基に,自分の位置を推 定できること" <<requirement>> 内界センサ id = text = "ロボットの相対的な 移動量を計測できること" <<requirement>> 周辺環境情報の計測 id = text = "ロボット周辺の環境情 報を計測できること" <<requirement>> 移動時間 id = text = "なるべく短い時間で 目的地まで到達できること" <<requirement>> 連続移動可能距離 id = text = "なるべく長距離を移 動可能であること" <<requirement>> 低消費電力化 id = text = "消費電力をなるべ く下げること" <<requirement>> 環境地図自動生成 id = text = "周辺環境の地図を自 動的に生成できること" <<requirement>> ユーザビリティの向上 id = text = "使用時のユーザの負 担をなるべく軽減すること" <<requirement>> 地図精度の向上 id = text = "なるべく高精度な地 図を生成できること" <<requirement>> パターン移動 id = text = "指定されたパターン に従って移動できること" <<requirement>> 効率的な 自律移動 id = text = "ユーザが指定した目的地ま で,なるべく短時間で安全に移動で きるとともに,ユーザの手間をなるべく 軽減しつつ,長距離を移動可能であ ること" <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> 開発対象システムの説明 何を行うシステムを開発するのか? 各機能は何のために必要なのか? システムを開発中に, 本来は何をするのか?を確認 何を目的としている機能なのか? 別機能で代替できないのか?
  • 4. 2016.8.1 4 ユースケース図  対象範囲(システム)が提供する機能の明確化  開発対象の範囲(システム化範囲)を明確にする。  機能とそのユーザの関係を明確にする。  対象範囲(システム)が必要とする外部要素を明確にする。 uc [model] 移動ロボット [移動ロボット] 移動ロボットシステム ユーザ 指定された目的地まで自律 的に移動する 拡張点 移動方向を決定する 周辺環境を 計測する 障害物を回避する 条件:{移動経路上に障害物が存在} 拡張点:移動方向を決定する 環境地図を自動的に 生成する 現在位置を 推定する 移動する 経路を生成する <<include>> <<include>> <<include>> <<include>> <<include>> <<extend>> <<include>> <<include>> 提供機能のカタログ化 どのような機能を開発するのか? 開発工数の見積もり 各機能を開発するのに必要な 工数はどの程度か? 優先順位の決定 どの機能から開発を行うのか? 作業分担の検討 誰がどの機能を開発するのか? 必須機能の判断 最低限どの機能が必要なのか?
  • 5. 2016.8.1 5 ブロック定義図  システムの静的な構造を表現 bdd [Package] 移動ロボット [移動ロボット] <<block>> 移動ロボットシステム <<block>> 移動ロボット <<block>> 測域センサ <<block>> 距離画像センサ {XOR} <<block>> バッテリ <<block>> 駆動輪 <<block>> 制御装置 <<block>> 車輪 <<block>> モータ <<block>> エンコーダ <<block>> 地図生成 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 現在位置: 位置 - 移動指令: 速度 <<block>> 周辺環境計測 <<block>> 自己位置推定 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 現在位置: 位置 - 移動量: 移動量 + 自己位置を推定する(レンジデータ): 位置 + 移動量を伝達する(移動量) + 現在位置を推定する(レンジデータ, 移動量): 位置 <<block>> 移動制御 - 移動指令: 速度 - 移動量: 移動量 + 停止する() + 移動する(速度) <<block>> 経路生成 - 現在位置: 位置 - 目標位置: 位置 - 目的地: 位置 + 目的地を設定する(位置) - 移動経路を生成する(位置, 位置): 位置 - 地図情報を更新する(レンジデータ, 位置) <<block>> 障害物回避 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 目標位置: 位置 - 移動指令: 速度 + 目標軌道を生成する(レンジデータ, 位置) <<block>> 測域センサ制御 - 計測値: レンジデータ <<block>> 距離画像センサ制御 - 計測値: 深度画像 {XOR} <<valueType>> レンジデータ - 距離リスト: List<double> <<valueType>> 深度画像 - ピクセル値: List<octet> <<valueType>> 位置 - X: double - Y: double - θ: double <<valueType>> 速度 - X方向速度: double - Y方向速度: double - Z軸周り回転速度: double <<valueType>> 移動量 - X方向移動量: double - Y方向移動量: double - Z軸周り移動角度: double 0..1 0..1 2 0..1 0..1 1..* 1..* 必要なハードウェアの確認 どの機材を利用するのか? 不足している機材は何なのか? RTCのカタログ化 どのようなRTCで構成するか? どのRTCを開発し,どのRTCを再利用するのか? 優先順位の決定 どのRTCから開発を行うのか? 作業分担の検討 誰がどのRTCを開発するのか?
  • 6. 2016.8.1 6 内部ブロック図  システム構成要素間の接続関係を明確にする  構成要素間でやりとりする内容を明確にする  システムを構成する要素間でやり取りする内容を表現 ibd [Package] 移動ロボット [移動ロボットシステム(SW)] : ~レンジデータ : ~深度画像 : 周辺環境計測 : ~レンジデータ : ~深度画像 : ~レンジデータ : 測域センサ制御[0..1] : ~レンジデータ : ~深度画像 : 距離画像センサ制御[0..1] : ~深度画像 : レンジデータ : 深度画像 目標位置: 位置 移動指令: ~速度 : 障害物回避 : レンジデータ : 深度画像 目標位置: 位置 移動指令: ~速度 : レンジデータ : 深度画像 現在位置: 位置 移動指令: ~速度 : 地図生成 : レンジデータ : 深度画像 現在位置: 位置 移動指令: ~速度 : レンジデータ : 深度画像 現在位置: ~位置 : 移動量 : 自己位置推定 : レンジデータ : 深度画像 現在位置: ~位置 : 移動量 現在位置: 位置 目標位置: ~位置 : 経路生成 現在位置: 位置 目標位置: ~位置 移動指令: 速度 : ~移動量 : 移動制御 移動指令: 速度 : ~移動量 目的地を設定する ポートの明確化 各RTCはどのようなポートを 有するのか? データポートではどのような データをやり取りするのか? サービスポートではどのような 操作が必要なのか? 全体構成の確認 各RTC間はどのような接続と なるのか?
  • 7. 2016.8.1 7 コンテキスト図  システムが動作する環境を表現 ibd [Package] 移動ロボット [コンテキスト図] <<system>> : 移動ロボットシステム :ユーザ <<external>> : 人 <<external>> : 床面 床面はフラットと仮定 <<external>> : 周辺環境 <<external>> : 壁 <<external>> : 家具 0..* 0..* 0..* 開発環境の明確化 どのような前提で(何を考慮して)設計,開発を行うのか? 誰に対して機能を提供しているのか?何を使用して機能を実現するのか?
  • 8. 2016.8.1 8 アクティビティ図  処理の流れを表現 現実世界の処理流れを整理する(ビジネスプロセスも含む) ある機能を実現するための処理の流れ(アルゴリズムを含む)を表現 act 目的地まで移動する ビジョンセンサ移動ロボ ット OpenHRP3距離センサ 移動開始を指令する ユーザ OpenINVENT グリッド経路 障害物情報 自己位置推定結果 現在位置から目標位置まで の経路を計画する グリッド経路 障害物情報 自己位置推定結果 グリッド経路 制御点データ 制御点を抽出する グリッド経路 制御点データ 制御点データ 目標並進/旋回速度 ロボット中心の並進/旋回速 度を算出する 制御点データ 目標並進/旋回速度 目標並進/旋回速度 指令角速度値 両輪の指令角速度値を算出 する 目標並進/旋回速度 指令角速度値 目標並進/旋回速度 トルク指令値 両輪の指令トルクを算出す る 目標並進/旋回速度 トルク指令値 センサデータ 周辺環境を計測する センサデータ センサデータ障害物情報 周辺障害物を検出する センサデータ障害物情報 指令角速度値 オドメトリ値 移動する 指令角速度値 オドメトリ値 センサデータ 周辺環境を計測するセンサデータ 自己位置推定結果 オドメトリ値 自己位置推定結果 自己位置を推定する 自己位置推定結果 オドメトリ値 自己位置推定結果 オドメトリ値 トルク指令値 移動する オドメトリ値 トルク指令値 自己位置推定結果 ランドマークを計測する 自己位置推定結果 [実機の場合] [シミュレーションの場合] { rate = per 20ms } { rate = per 40ms } act 地図を生成する OpenHRPOpenINVENTユーザ 地図生成を実行する 干渉チェック モデル干渉チェックモデルを作 成する 干渉チェック モデル 干渉チェック モデル 干渉チェック 結果 干渉チェックを実行する 干渉チェック モデル 干渉チェック 結果 干渉チェック 結果 グリッド地図 グリッド地図を作成する 干渉チェック 結果 グリッド地図 グリッド地図 グリッド地図情報を配信する グリッド地図 処理手順の明確化 各機能をどのような手順で実現するのか?
  • 9. 2016.8.1 9 RTSystem開発時のSysML利用法 00.システムが動作する環境の定義  コンテキスト図の作成 01.システムが「何を」実現すべきなのかを検討  要求図の作成 02.システムが実現すべき機能の検討  ユースケース図の作成 03.システムの構成要素の検討  ブロック定義図の作成 04.構成要素間でやり取りするデータの検討  内部ブロック図の作成 05.機能を実現するための手順の検討  アクティビティ図の作成 06.RTC,RTSystemへのマッピング composite struct ure 全体構成 MapBuilderCons MapBuilderProv GlobalPathCons <<block,RTC>> Invent GUI MapBuilderCons MapBuilderProv GlobalPathCons InventGUIProv MapMaintenanceCons <<block,RTC>> 地図生成 InventGUIProv MapMaintenanceCons MapBuilderProv ObstacleProv <<block,RTC>> 地図管理 MapBuilderProv ObstacleProv MapMaintenanceCons <<flowPort>> 位置情報 : Position MapBuilderProv <<flowPort>> センサ データ :SensorData <<block,RTC>> 障害物検出MapMaintenanceCons <<flowPort>> 位置情報 : Position MapBuilderProv <<flowPort>> センサ データ :SensorData <<flowPort>> SensorData : TimedMeasuredData <<flowPort>> 計測結果 : TimedDoubleSeq <<block,RTC>> 距離センサシミ ュレ ーション <<flowPort>> SensorData : TimedMeasuredData <<flowPort>> 計測結果 : TimedDoubleSeq <<flowPort>> 自己位置姿勢推 定結果(ToGUI) :Position <<flowPort>> オドメトリ値 : Position <<block,RTC>> 自己位置姿勢推定 <<flowPort>> 自己位置姿勢推 定結果(ToGUI) :Position <<flowPort>> オドメトリ値 : Position <<flowPort>> 自己位置姿 勢推定結果 :Position <<flowPort>> オドメトリ値 : Position <<flowPort>> 車輪回 転角度 :車輪角度 <<block,RTC>> オドメトリ推定 <<flowPort>> 自己位置姿 勢推定結果 :Position <<flowPort>> オドメトリ値 : Position <<flowPort>> 車輪回 転角度 :車輪角度 <<flowPort>> 車輪回 転角度 :車輪角度 <<flowPort>> トルク 指令 :Torque <<flowPort>> 目標速度 : TimedVelocity <<flowPort>> 現在位置・ 姿勢 :SimulatedPosition <<flowPort>> 車輪回 転角度 :車輪角度 BumpProv <<block,RTC>> 運動制御 <<flowPort>> 車輪回 転角度 :車輪角度 <<flowPort>> トルク 指令 :Torque <<flowPort>> 目標速度 : TimedVelocity <<flowPort>> 現在位置・ 姿勢 :SimulatedPosition <<flowPort>> 車輪回 転角度 :車輪角度 BumpProv <<flowPort>> 現在位置・姿 勢 :Position MapBuilderDrive MapMaintenanceProv <<flowPort>> 逸脱距離 : Distance LocalPathProv <<flowPort>> 目標 並進・旋回速度 : TimedVelocity BumpProv <<block,RTC>> 移動指令生成 <<flowPort>> 現在位置・姿 勢 :Position MapBuilderDrive MapMaintenanceProv <<flowPort>> 逸脱距離 : Distance LocalPathProv <<flowPort>> 目標 並進・旋回速度 : TimedVelocity BumpProv <<flowPort>> 自 己位置姿勢推定 結果 :Position <<flowPort>> 逸脱距離 : Distance DriveCons MapMaintenanceProv MapBuilderProv GlobalPathProv <<block,RTC>> 局所経路生成 <<flowPort>> 自 己位置姿勢推定 結果 :Position <<flowPort>> 逸脱距離 : Distance DriveCons MapMaintenanceProv MapBuilderProv GlobalPathProv MapBuilderProv MapMaintenanceProv LocalPathCons InventGUIProv <<block,RTC>> 大域経路生成 MapBuilderProv MapMaintenanceProv LocalPathCons InventGUIProv <<flowPort>> 現在位置・姿勢 : SimulatedPosition <<flowPort>> トルク 指令 :Torque <<flowPort>> 現在車 輪角度 :車輪角度 <<flowPort>> 計測結果 : TimedDoubleSeq <<flowPort>> 路面計測結果 : TimedDoubleSeq <<actor>> BridgeRTC <<flowPort>> 現在位置・姿勢 : SimulatedPosition <<flowPort>> トルク 指令 :Torque <<flowPort>> 現在車 輪角度 :車輪角度 <<flowPort>> 計測結果 : TimedDoubleSeq <<flowPort>> 路面計測結果 : TimedDoubleSeq MotorControlCons DriveControlCons <<flowPort>> 現在PanTilt 角度 :PanTilt角度 <<flowPort>> 目標PanTilt 角度 :PanTilt角度 <<flowPort>> SensorData : TimedMeasuredData MapMaintenanceCons <<block,RTC>> 路面凹凸検知 MotorControlCons DriveControlCons <<flowPort>> 現在PanTilt 角度 :PanTilt角度 <<flowPort>> 目標PanTilt 角度 :PanTilt角度 <<flowPort>> SensorData : TimedMeasuredData MapMaintenanceCons <<flowPort>> 現在PanTilt 角度 :PanTilt角度 <<flowPort>> 目標PanTilt 角度 :PanTilt角度 <<block,RTC>> PanTilt制御<<flowPort>> 現在PanTilt 角度 :PanTilt角度 <<flowPort>> 目標PanTilt 角度 :PanTilt角度 <<flowPort>> SensorData : TimedMeasuredData <<flowPort>> 路面計測結果 : TimedDoubleSeq <<block,RTC>> 距離センサシミュレ ーション <<flowPort>> SensorData : TimedMeasuredData <<flowPort>> 路面計測結果 : TimedDoubleSeq マップ InventGUI InventGUI 地図更新 地図更新 地図更新 地図更新 障害物情報設定 移動指令 移動指令 移動指令 移動指令局所経路 局所経路 局所経路 広域経路 広域経路 局所経路局所経路 広域経路 広域経路 モータ モータ 移動指令 移動指令 地図更新 地図更新 act 目的地まで移動する ビジョンセン サ移動ロボ ット OpenHRP3距離センサ 移動開始を指令する ユーザ OpenINVENT グリッド経路 障害物情報 自己位置推定結果 現在位置から目標位置まで の経路を計画する グリッド経路 障害物情報 自己位置推定結果 グリッド経路 制御点データ 制御点を 抽出す る グリッド経路 制御点データ 制御点データ 目標並進/旋回速度 ロボット中心の並進/旋回速 度を算出する 制御点データ 目標並進/旋回速度 目標並進/旋回速度 指令角速度値 両輪の指令角速度値を 算出 する 目標並進/旋回速度 指令角速度値 目標並進/旋回速度 トルク指令値 両輪の指令トルクを 算出す る 目標並進/旋回速度 トルク指令値 センサデータ 周辺環境を 計測す る センサデータ センサデータ障害物情報 周辺障害物を 検出す る センサデータ障害物情報 指令角速度値 オドメトリ値 移動する 指令角速度値 オドメトリ値 センサデータ 周辺環境を計測するセンサデータ 自己位置推定結果 オドメトリ値 自己位置推定結果自己位置を 推定す る 自己位置推定結果 オドメトリ値 自己位置推定結果 オドメトリ値 トルク指令値 移動する オドメトリ値 トルク指令値 自己位置推定結果 ランドマークを 計測す る 自己位置推定結果 [実機の場合] [シミュレーションの場合] { rate = per 20ms } { rate = per 40ms } :ブロックR name : BlockType : Type プロパティ ポートポート インターフェース プロパティ bdd [Package] 移動ロボット [移動ロボット] <<block>> 移動ロボットシステム <<block>> 移動ロボット <<block>> 測域センサ <<block>> 距離画像センサ {XOR} <<block>> バッテリ <<block>> 駆動輪 <<block>> 制御装置 <<block>> 車輪 <<block>> モータ <<block>> エ ンコーダ <<block>> 地図生成 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 現在位置: 位置 - 移動指令: 速度 <<block>> 周辺環境計測 <<block>> 自己位置推定 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 現在位置: 位置 - 移動量: 移動量 + 自己位置を推定する(レンジデータ): 位置 + 移動量を伝達する(移動量) + 現在位置を推定する(レンジデータ, 移動量): 位置 <<block>> 移動制御 - 移動指令: 速度 - 移動量: 移動量 + 停止する() + 移動する(速度) <<block>> 経路生成 - 現在位置: 位置 - 目標位置: 位置 - 目的地: 位置 + 目的地を設定する(位置) - 移動経路を生成する(位置, 位置): 位置 - 地図情報を更新する(レンジデータ, 位置) <<block>> 障害物回避 - 測域センサ計測値: レンジデータ [0..1] - 距離画像センサ計測値: 深度画像 [0..1] - 目標位置: 位置 - 移動指令: 速度 + 目標軌道を生成する(レンジデータ, 位置) <<block>> 測域センサ制御 - 計測値: レンジデータ <<block>> 距離画像センサ制御 - 計測値: 深度画像 {XOR} <<valueType>> レンジデータ - 距離リスト: List<double> <<valueType>> 深度画像 - ピクセル値: List<octet> <<valueType>> 位置 - X: double - Y: double - θ: double <<valueType>> 速度 - X方向速度: double - Y方向速度: double - Z軸周り回転速度: double <<valueType>> 移動量 - X方向移動量: double - Y方向移動量: double - Z軸周り移動角度: double 0..1 0..1 2 0..1 0..1 1..* 1..* req [model] 移動ロボッ ト [移動ロボット(自律移動)] <<requirement>> 自律移動 id = text = "ユーザが指定した 目的地まで,安全に移動で きること" <<requirement>> 障害物回避 id = text = "ロボット周辺の障害 物を回避できること" <<requirement>> 経路生成 id = text = "目的地までの移動 経路を自動で生成できるこ と" <<requirement>> 移動 id = text = "移動指令に従って 移動すること" <<requirement>> 自己位置推定 id = text = "ロボット自身の現在 位置を推定できること" <<requirement>> 環境地図 id = text = "周辺環境の地図を 持つこと" <<requirement>> 環境地図マッ チング id = text = "周辺環境の地図と 外界計測センサの計測結 果からマッチングを行うこと" <<requirement>> デッドレコニング id = text = "内界センサの計測 値を基に,自分の位置を推 定できること" <<requirement>> 内界センサ id = text = "ロボットの相対的な 移動量を計測できること" <<requirement>> 周辺環境情報の計測 id = text = "ロボット周辺の環境情 報を計測できること" <<requirement>> 移動時間 id = text = "なるべく短い時間で 目的地まで到達できること" <<requirement>> 連続移動可能距離 id = text = "なるべく長距離を移 動可能であること" <<requirement>> 低消費電力化 id = text = "消費電力をなるべ く下げること" <<requirement>> 環境地図自動生成 id = text = "周辺環境の地図を自 動的に生成できること" <<requirement>> ユーザビリティの向上 id = text = "使用時のユーザの負 担をなるべく軽減すること" <<requirement>> 地図精度の向上 id = text = "なるべく高精度な地 図を生成できること" <<requirement>> パタ ーン移動 id = text = "指定されたパターン に従って移動できること" <<requirement>> 効率的な自律移動 id = text = "ユーザが指定した目的地ま で,なるべく短時間で安全に移動で きるとともに,ユーザの手間をなるべく 軽減しつつ,長距離を移動可能であ ること" <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> <<deriveReqt>> ibd [Package] 移動ロボット [コンテキスト図] <<system>> : 移動ロボットシステム :ユーザ <<external>> : 人 <<external>> : 床面 床面はフラットと仮定 <<external>> : 周辺環境 <<external>> : 壁 <<external>> : 家具 0..* 0..* 0..* uc [model] 移動ロボット [移動ロボット] 移動ロボットシステム ユーザ 指定された目的地まで自律 的に移動する 拡張点 移動方向を決定する 周辺環境を計測する 障害物を回避する 条件:{移動経路上に障害物が存在} 拡張点:移動方向を決定する 環境地図を自動的に 生成する 現在位置を推定する 移動する 経路を生成する <<include>> <<include>> <<include>> <<include>> <<include>> <<extend>> <<include>> <<include>>