先日触ったBridgePointのアレコレを記事にまとめたいけどまとめる程の量じゃないので試しにスクラップを使ってみるの巻
BridgePoint(ブリッジポイント)とは
UMLのクラス図とステートマシン図からプログラムを生成できるソフト(正確にはUMLのモデルとは少し違う)。
結構雑な説明なので間違えてたらごめんなさい
気になる人はxtUMLとかで調べるといい感じかもしれないです。
何で使ったの?
ちょっとした講習でロボットを動かすのに使った。他にはROSやGazeboも。
BridgePointで作成したプログラムをROSに流し込んで、その結果をGazeboに表示する、みたいな感じ。
一時的にウィンドウを大きくしたいとき
例えば、ステートマシン図を作成しているとき「一時的に画面大きくして作業したい」となったら、ウィンドウのタイトルがある場所をダブルクリックすることで最大/通常が切り替えられる。
というのも、BridgePointのウィンドウにはモデルやスクリプトを編集する画面やディレクトリ/ファイルが階層表示される画面, ビルド時にログが表示されるコンソール画面など色々画面が存在するので、微妙に見ずらいときがある。そこでダブルクリックを使うと便利だよっていう話。
インスタンスの上限が邪魔
クラスから生成したインスタンスには生成上限が存在する(正確には設定できる)。
これが微妙に邪魔。
例えばロボットの移動を行うために座標を保持するクラスを作成したとすると、移動座標の数だけインスタンスが必要になる。でも、インスタンスの生成上限が存在するので、上限以下になるよう移動座標を減らさなければいけない。もしくは、インスタンスの生成上限を上げることになる。
これを回避する方法の1つとして、生成したインスタンスの中で「もう使わない」となったインスタンスを削除する、というものがある(他にもありそうだけど、知識が足りなくて思いつかなかった)。
まあ他にもスマートな実装があるんでしょうが、愚直にコーディングするなら使えるかもしれない(実際に使った←)。
Gitを使うとコンフリクトが発生する
恐らく、Buildで生成したプログラムが原因で発生する。
複数人数でビルドしたものをプッシュしない, 適宜ブランチを分ける, プッシュするときはビルドで生成したもの以外に絞るようにする、などの対策をすれば問題なさそう。
結局、講習中に原因の詳細を特定できず、終始Gitに悩まされた。
Gitに詳しい人助けてorz