ROS による開発で必要となる 3D モデルは STL や COLLADA データとして作成できます。FreeCAD と Blender を用いて直方体のデータを作成してみます。いずれの場合も、ROS 等で扱うために単位はメートルで出力します。
STL はフェイスに三角形を利用した 3D モデルを表現するためのファイルフォーマットの一つです。多くのソフトでサポートされています。FreeCAD も STL をサポートしており、Debian9 の場合は apt でインストールできます。
sudo apt install freecad
File → New で初期状態にしてから View → Workbench → Part Design を選択します。
Create sketch をクリックします。
XY-Plane を選択して OK を押します。
Part Design → Sketcher geometries → Create rectangle を選択します。
2D 矩形を作成して Close を押します。
Pad をクリックします。
押し出す高さを入力して OK を押します。
Ctrl を押しながら右ドラッグでオブジェクトを平行移動できます。Shift を押しながら右ドラッグでオブジェクトを回転できます。
80mm x 80mm x 50mm の直方体が作成できました。STL ファイルとして出力します。
市販されている部品の CAD データの STEP ファイルから STL に変換する場合も FreeCAD を利用できます。
meshlab を利用すると、STL ファイル内のオブジェクトの AABB の中心が原点座標と一致するように平行移動できます。「Render → Show Axis」で XYZ 軸を表示します。
「Filters → Normals, Curvatures and Orientation → Transform: Move, Translate, Center」でポップアップされるウィンドウ内で「translate center of bbox to the origin」と「Preview」をクリックします。Apply で確定させます。
meshlab でメッシュを開いて「Filters → Remeshing, Simplification and Reconstruction → Quadric Edge Collapse Decimation」をクリックします。Quality threshold を 0.9 などに設定して Apply をクリックすると Faces が少なくなってメッシュが荒くなったことが確認できます。Apply を複数回数適用したい場合は、meshlab の不具合で、Export して meshlab を一旦終了してから再度同じ処理を行う必要があります。
STL はテクスチャ情報等を格納できませんが、COLLADA ではその他に摩擦係数など様々な情報を格納できます。例えば Blender を利用すると STL にテクスチャ情報を付与して COLLADA として出力できます。テクスチャを付与しない場合でも OpenRAVE を利用する場合は STL を読み込めないため変換が必要になります。
Debian9 の場合は apt で COLLADA 対応のバージョンがインストールできます。
sudo apt install blender
Blender を起動したら初期状態で表示されている立方体を Delete キーで削除します。
File → Import → STL で作成したファイルを読み込みます。
以下のようなショートカットが利用できます。例えば n
でオブジェクトのサイズを確認すると確かに 80mm x 80mm x 50mm の直方体であることが分かります。
n
オブジェクトの情報を表示g
マウスで平行移動r
マウスで回転s
マウスで拡大縮小a
全選択ROS 等で扱うために単位をメートルに変更します。
COLLADA への変換だけであれば不要なステップです。
テクスチャを適用するためにはまず 3D オブジェクトを UV 展開する必要があります。UV Editing のウィンドウ構成に切り換えます。
Edit Mode に切り換えます。
3D オブジェクトを展開するために切断する辺となるシームを選択します。Edge select ボタンを押します。
a
で全選択状態を解除してから Shift キーを押しながら右クリックで必要な辺を選択します。Shading/UVs → UVs → Mark Seam で切れ目として確定します。
a
で全選択状態にしてから Unwrap → Unwrap とクリックすると左側のウィンドウに展開されます。
Image → Open Image で適当に用意した画像を読み込みます。実際には UV 展開図をエクスポートして画像編集ソフトでテクスチャを作成して用意します。
マウスで UV 展開結果と画像の位置関係を調整します。3D オブジェクトの操作時と同じようなショートカットが利用できます。
a
全選択g
マウスで平行移動調整が終わったら Default ウィンドウ構成に戻します。
Object Mode で Texture 表示にすると、調整したテクスチャが確認できます。
オブジェクトが大きすぎて既定で環境に設置されている光源がうまく利用できない場合は Create → Lamp → Sun 等を追加します。光源を含むオブジェクトを選択するためには右クリックを利用します。