セル生産方式におけるロボットの活用には様々な問題があるが,その一つとして 3 体以上の物体の組み立てが挙げられる.一般に,複数物体を同時に組み立てる際は,対象の部品をそれぞれロボットアームまたは治具でそれぞれ独立に保持することで組み立てを遂行すると考えられる.ただし,この方法ではロボットアームや治具を部品数と同じ数だけ必要とし,部品数が多いほどコスト面や設置スペースの関係で無駄が多くなる.この課題に対して音𣷓らは組み立て対象物に働く接触力等の解析により,治具等で固定されていない対象物が組み立て作業中に運動しにくい状態となる条件を求めた.すなわち,環境中の非把持対象物のロバスト性を考慮して,組み立て作業条件を検討している.本研究ではこの方策に基づいて,複数物体の組み立て作業を単腕マニピュレータで実行することを目的とする.このとき,対象物のロバスト性を考慮することで,仮組状態の複数物体を同時に扱う手法を提案する.作業対象としてパイプジョイントの組み立てを挙げ,簡易な道具を用いることで単腕マニピュレータで複数物体を同時に把持できることを示す.さらに,作業成功率の向上のために RGB-D カメラを用いた物体の位置検出に基づくロボット制御及び動作計画を実装する.
This paper discusses assembly operations using a single manipulator and a parallel gripper to simultaneously
grasp multiple objects and hold the group of temporarily assembled objects. Multiple robots and jigs generally operate
assembly tasks by constraining the target objects mechanically or geometrically to prevent them from moving. It is
necessary to analyze the physical interaction between the objects for such constraints to achieve the tasks with a single
gripper. In this paper, we focus on assembling pipe joints as an example and discuss constraining the motion of the
objects. Our demonstration shows that a simple tool can facilitate holding multiple objects with a single gripper.
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
公開URL:https://arxiv.org/pdf/2404.19174
出典:Guilherme Potje, Felipe Cadar, Andre Araujo, Renato Martins, Erickson R. ascimento: XFeat: Accelerated Features for Lightweight Image Matching, Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023)
概要:リソース効率に優れた特徴点マッチングのための軽量なアーキテクチャ「XFeat(Accelerated Features)」を提案します。手法は、局所的な特徴点の検出、抽出、マッチングのための畳み込みニューラルネットワークの基本的な設計を再検討します。特に、リソースが限られたデバイス向けに迅速かつ堅牢なアルゴリズムが必要とされるため、解像度を可能な限り高く保ちながら、ネットワークのチャネル数を制限します。さらに、スパース下でのマッチングを選択できる設計となっており、ナビゲーションやARなどのアプリケーションに適しています。XFeatは、高速かつ同等以上の精度を実現し、一般的なラップトップのCPU上でリアルタイムで動作します。
3. 2014/05/10 CLR/H in TOKYO #2 VB Festival
agenda
1. 業務アプリとは
2. Windows Forms による実装
4. 2014/05/10 CLR/H in TOKYO #2 VB Festival
業務アプリケーション
• 業務で利用するアプリケーション
• 基幹システムだけではなく近年は
情報参照系でモバイル利用も増加
• 近年は何をもって業務システムと言うか
の境界が曖昧に
5. 2014/05/10 CLR/H in TOKYO #2 VB Festival
特徴
• キー入力の効率化
– Enterキーで次項目へ移動
• 前項目へ移動は何故か多種多様
– ファンクションメニュー
– マウス操作は控えめ
• 帳票出力
– 伝票などの定型帳票出力
– 帳票の種類により電子帳簿保存法の対象
6. 2014/05/10 CLR/H in TOKYO #2 VB Festival
システムの形態
• クライアント/サーバ型が多い
– ブラウザ依存が大きい配布が楽なWeb型
– 配布制約がある何でもできるデスクトップ型
• システム規模は大小様々
7. 2014/05/10 CLR/H in TOKYO #2 VB Festival
アプリの形式種別
入力系
検索系
メンテナンス系 エントリ系
リスト系
照会系
更新系
バッチ系
その他
8. 2014/05/10 CLR/H in TOKYO #2 VB Festival
伝票入力形式
• 業務アプリではかなり必要性が高い
• 明細形式の行を一覧で表示した状態で
データ入力を行う
– ベースは財務システムでの伝票入力
• 入力する項目が伝票に合わせて
表示されるので利用者が理解しやすい
9. 2014/05/10 CLR/H in TOKYO #2 VB Festival
伝票入力のコントロール
• Spread や MultiRow(GrapeCity 製品)と
いった 3rd パーティー製品の利用が吉
• 予算はないけど時間があるならば
DataGridView をカスタマイズで対応可能
10. 2014/05/10 CLR/H in TOKYO #2 VB Festival
Windows Forms
• Visual Studio による GUI アプリ基本形
– VB2 のころから続くスタイル
• イベントドリブン形式での実装が基本
– コントロールごとに用意されたイベントに
対して処理を記述する
• .NET Framework 4.5.2 で HighDPI 対応
– 今でも密かな改善が続いていた
11. 2014/05/10 CLR/H in TOKYO #2 VB Festival
画面のデザイン
• フォームサイズ変更に対応するかどうか
• 変更を許可する場合
配置カテゴリに分類される
プロパティの設定を利用す
ることで、ロジックによる
対応は殆ど不要
12. 2014/05/10 CLR/H in TOKYO #2 VB Festival
キー入力
• KeyPress イベント
• KeyDown / KeyUp イベント
– キーを押した/離した際のイベント
– KeyPress と KeyDown/Up では
処理できるキーが一部異なる
– Enter キー押下でフォーカス遷移とか
• Click イベント
– PerfomeClick メソッドでClickイベントを
呼び出せる
13. 2014/05/10 CLR/H in TOKYO #2 VB Festival
フォーカス遷移時
• Enter イベント
– コントロールがフォーカスを取得
• Leave イベント
– コントロールがフォーカスを喪失
14. 2014/05/10 CLR/H in TOKYO #2 VB Festival
フォーカス取得時の基本
• テキストをハイライト表示
• 上書き状態で入力するケースが多い
• TextBox.SelectAll メソッド
15. 2014/05/10 CLR/H in TOKYO #2 VB Festival
フォーム上のTabIndexの走査
• コンテナが関連するので再帰的に
走査する必要がある
Dim result = New List(Of Control)
sender.Controls.Cast(Of Control).Where(Function(ct) Not ct.IsDisposed) _
.ToList() _
.ForEach(Sub(ct)
'TabStop = True のコントロールを追加
If ct.TabStop Then result.Add(ct)
'子供コントロールがあればその内部を走査
Dim child = GetFoucusableControls(ct)
If Not IsNothing(child) AndAlso child.Count > 0 Then
result.AddRange(child)
End If
End Sub)
Return result
16. 2014/05/10 CLR/H in TOKYO #2 VB Festival
フォーカス遷移順
• コントロールのTabIndex値に基づく
• 親となるコンテナのTabIndexも影響
– 一つのフォーム上に同一のTabIndex値を持つ
コントロールが存在する
– Control.SelectNextControl メソッドや
SendKeys.Send(“{TAB}”) では TabIndex が影響
17. 2014/05/10 CLR/H in TOKYO #2 VB Festival
値の検証
• Validating イベント
– フォーカスが遷移した後で発生
– 検証結果によって遷移を取り消す
– 引数 e.Cancel = True で遷移取り消し
18. 2014/05/10 CLR/H in TOKYO #2 VB Festival
イベントの順序
ActiveControl の変更
コントロールの Leave
コントロールの Enter
コントロールの Validating Validating で値の検証結果が
False となった場合は
ActiveControl 設定前へ戻る
19. 2014/05/10 CLR/H in TOKYO #2 VB Festival
データベース操作
• 業務システムではほぼ必須
• 入力したデータを保持するために必要
• 依存性を低めるために、できるだけ
データを直接操作する部分は独立した
クラスに記載するのがメンテしやすい
– Windows Forms に限らない話
20. 2014/05/10 CLR/H in TOKYO #2 VB Festival
データバインディング
• WPF ほど万能ではないが表形式のデータ
出力などでは有用
• 主に利用するのは DataSet(DataTable)
– 個人的には利用しなくてもよいと…
21. 2014/05/10 CLR/H in TOKYO #2 VB Festival
DataSet の操作
• DataSet.Tables(x).Rows(y).Item形式は
DataRowの部分が特に内部処理が重いので
今は利用しない
• LINQ to DataSet を用いるだけで
体感レベルで速度が改善される
22. 2014/05/10 CLR/H in TOKYO #2 VB Festival
LINQ
• 今の時代では必須技術
• 業務アプリでは特に要素をループして
処理するシーンが多いので効果は高い
– LINQ to Object
– LINQ to XML
– LINQ to Dataset
• SQL 構文は使わなくても良い気がする
23. 2014/05/10 CLR/H in TOKYO #2 VB Festival
帳票の作成
• 業務アプリで求められる帳票の要件
• 自由形式
– プリンタを問わないので比較的自由
• 固定形式
– インパクト式/ライン式のプリンタ利用が多い
– 枠線などが印刷済みな用紙を利用
– 細かい位置調整が必要
24. 2014/05/10 CLR/H in TOKYO #2 VB Festival
帳票ツール
• ツールを利用しない実装も可能だが
非常に時間がかかる
• 帳票ツールは要件に合わせて選択が必要
– ActiveReport(GrapeCity)
– ReportViewerテクノロジ(Microsoft)
– Excel
25. 2014/05/10 CLR/H in TOKYO #2 VB Festival
外部連携
• 1システムだけで終わるケースは少ない
• 別システムとの連携は必要
– 販売管理から財務へ
– 自社から他社へ
– 連携方法も多様
• 直接DB連携
• ファイル形式でのやり取り
• 相手側システムAPIの呼び出し
26. 2014/05/10 CLR/H in TOKYO #2 VB Festival
アプリの配布
• Windows Installer
• ClickOnce
• XCOPY 等でのファイルコピー
– 利用するツールによっては単純にいかない
• 初回配布よりもアップデート方法を
考慮して決める必要がある
– 初回配布と別の形式を採用するのもあり
27. 2014/05/10 CLR/H in TOKYO #2 VB Festival
配布形式を見据えた構成
• 単一Exe形式
– 起動~終了までを制御するメインアプリ
– メインアプリより各機能を呼び出す
– Dllを機能単位で作成
• 複数Exe形式
– 機能単位でExeファイルを作成
– XCOPY方式が行いやすい
28. 2014/05/10 CLR/H in TOKYO #2 VB Festival
まとめ
• Windows Forms はまだまだ現役
• 表現力をあまり求めない場面では最適解
• 求める場合は WPF
• LINQ 必須。ラムダ必須。
– 社内で反発があったら LINQ to Dataset の
場合のように体感レベルで違いが出るのは
説得材料として有効