製造・産業で使える乱数生成

 

乱数生成(の実装)については、数学的にはなかなか面白いのですが、一般的には、OSや言語が用意しているAPIを使うのが一般的です。

ですがシミュレーションをするときに、その乱数の生成方法によっては、パターンが読めてしまう、見えてしまうことがあります。

ちょっと前のUnityのイベントでの資料です。

https://thinkit.co.jp/article/11905

UnityやAI系、数学の勉強会は、北陸ではあまりないため関西等でおこなわれているものには参加させていただいています。

群衆の動き⇒パターンの排除⇒乱数の生成⇒一様とはなにか?

⇒メルセンヌツイスター(いわゆる素数のアルゴリズムとか)

 

の話の展開などが、非常に楽しかったです。(Unity道場京都でした)

産業用途で今年の春頃に面白い発表があるよ、とだけ聞いていたのですが、そろそろかも・・と、楽しみにしています。

 

 

3D講習

2018年の3D講習(Rhinoceros)が始まりました。

http://sakiwai.net/rhinoceros/

受講者のテーマ(やりたいこと、業務内容)にフォーカスした構成としておりますので、比較的短期間に、高度なモデリングまで到達できます。

定型的な処理は、効率化するためのスクリプトを作って提供することも可能です。 

 

 

 

どんどんひろがるオープンソース開発

現在、当社がメインで利用している開発言語は(今や3Dも制御もWEBもなんでも使える)Pythonですが、PythonそのものがOSS(オープンソースソフトウエア)ですので、Pythonを使ったプロジェクトもそのような開発の方法が主流でした。

OSSを取り入れた開発は、技術的には、日本語での文書化されているものはあまりなく、いくつか気を付けるべき点も多々あり、「日ごろ使っている人」が、うまく使える、というものが多いように思います。

また、特に企業が業務で利用する場合は、それぞれのOSSのライセンス、利用の許諾の条件、に注意をする必要があります。(ただ、マイクロソフトさんやオラクルさんの文書と比べると簡潔なものが多いです)

場合によっては、複数のオープンソースのプロジェクトを使うことも多くなりますが、法務的な関係性を整理して、なるべく「同じレベルのライセンス」を選択できると良いと思います。

簡単にまとめると、「商用利用」が可能なオープンソースのプロジェクトには次のレベルのライセンスに集約ができます。

1)GPL系

2)BSD/MIT系

3)Apache系

 

IoTやインダストリ4.0のような、社内で使うツール、あるいは、ユーザーに提供するツールなどは、2)、3) であれば、気を付けていれば問題はほとんどないと思います。

1)のGPL系のライセンスは、守るべきことは多いのですが、商用利用は出来ます。

1)2)3)に分類はできますが、さらに派生のライセンスがあり、OSSそれぞれに確認する必要があります。

 

それぞれの制約、特徴については、

OSSのライセンスを理解する https://qiita.com/bremen/items/c5aa9446e73aa4bc1de0

に分かりやすく簡潔にまとめられていました。

詳細については、

OSS ライセンスの⽐較および利⽤動向ならびに 係争に関する調査(IPA)  https://www.ipa.go.jp/files/000028335.pdf

が参考になるかと思います。

OSSも、WEBもそうなんですが、多く人々の、多様な知的生産活動に感謝です。OSSやWEBのつながりでも、(これまでであれば縁がなさそうな)お仕事もはいり、人や地域がつながっているんだなぁ、と思います。

「他の人の、長年の、コレコレの成果物を利用させてもらってありがとうね!」の気持ちとして、リンクや表示をする、といった行為と思っていただけると、たいした手間でもないのですが、よりよい社会 / 世界 になると個人的には思います。

 

業界新聞さんに掲載いただきました

時計・貴金属・眼鏡 の 「業界新聞」さんに、(株)エファーナの大山さんとの対談を掲載していただきました。

大山さんによると、業界新聞さんは、「1947年(昭和22年)より発刊している香川県拠点の老舗の新聞社さん」です。

大山さんは、香川県高松市で「ジュエル・エファーナ」というお店を運営されています。ホームページはこちらです。

紙面のインタビューでは、3Dの活用方法などをお聞きいただきました。

生活の中で創造をパーソナルに、気軽に楽しめる道具として、3Dやデジタルのツールなどが使えますが、メガネも、そのほかのものと同じように、より自由に、楽しんでいくと良いように思います。

楽しむ、ということには、迷い道や道草を許容したり、失敗を笑って分かち合える友人がいることが、楽しさや、学び、生きていることの体験的な本質があるのかな、と思っています。

頭部スキャンや、3Dデータとのフィッティング、シミュレーションについてなども、機会があれば業界新聞さんへ寄稿させていただけたら、と思っています。

 

 

 

 

 

 

 

3Dデータですすめ、製造生産システム

製造やデザイン・商品企画での3Dデータの活用方法をお客様に提案しています。

最近のお客様からのリクエストの多くのアイディアは、ゲーム等で見かけるような現実と仮想がクロスオーバーするような画面を、製造の現場や機械システムで使えないか、というものです。

県内でも設備等を設計・管理する方々が、「3Dのゲームのようなものを・・」と要望されるのですが、一方で「ゲームのツールで作って大丈夫?」 と聞かれることが多いです。

動くものを見て頂くのが一番良いのではないかと思っています。

 

 

 

Googleさんの「Cloud Vision API」をたたいてみた

テストしてみた顔認識の入力画像:( SKEyewear で使えるかな?という調査 )

 

 

 

 

Googleさんの出力

 

右の眉毛はここ、鼻はここ、といった、XY座標で出力されてますね。

 

{ “responses”: [ { “faceAnnotations”: [ { “boundingPoly”: { “vertices”: [ { “x”: 35 }, { “x”: 997 }, { “x”: 997, “y”: 1023 }, { “x”: 35, “y”: 1023 } ] }, “fdBoundingPoly”: { “vertices”: [ { “x”: 164, “y”: 273 }, { “x”: 900, “y”: 273 }, { “x”: 900, “y”: 1008 }, { “x”: 164, “y”: 1008 } ] }, “landmarks”: [ { “type”: “LEFT_EYE”, “position”: { “x”: 379.09708, “y”: 512.9182, “z”: -0.0035719858 } }, { “type”: “RIGHT_EYE”, “position”: { “x”: 692.2014, “y”: 504.98523, “z”: 17.198246 } }, { “type”: “LEFT_OF_LEFT_EYEBROW”, “position”: { “x”: 271.443, “y”: 446.3512, “z”: 18.494772 } }, { “type”: “RIGHT_OF_LEFT_EYEBROW”, “position”: { “x”: 468.86835, “y”: 458.9002, “z”: -62.220333 } }, { “type”: “LEFT_OF_RIGHT_EYEBROW”, “position”: { “x”: 614.698, “y”: 452.65558, “z”: -54.532906 } }, { “type”: “RIGHT_OF_RIGHT_EYEBROW”, “position”: { “x”: 791.4072, “y”: 437.67944, “z”: 44.52209 } }, { “type”: “MIDPOINT_BETWEEN_EYES”, “position”: { “x”: 539.54724, “y”: 509.89087, “z”: -54.090206 } }, { “type”: “NOSE_TIP”, “position”: { “x”: 549.6621, “y”: 682.443, “z”: -109.46843 } }, { “type”: “UPPER_LIP”, “position”: { “x”: 547.452, “y”: 787.9144, “z”: -25.935995 } }, { “type”: “LOWER_LIP”, “position”: { “x”: 546.24554, “y”: 874.2333, “z”: 9.500529 } }, { “type”: “MOUTH_LEFT”, “position”: { “x”: 425.80505, “y”: 823.4164, “z”: 52.853046 } }, { “type”: “MOUTH_RIGHT”, “position”: { “x”: 662.73663, “y”: 815.1807, “z”: 66.73165 } }, { “type”: “MOUTH_CENTER”, “position”: { “x”: 545.68353, “y”: 823.5897, “z”: 2.2815921 } }, { “type”: “NOSE_BOTTOM_RIGHT”, “position”: { “x”: 616.59656, “y”: 712.9523, “z”: 9.308188 } }, { “type”: “NOSE_BOTTOM_LEFT”, “position”: { “x”: 475.38727, “y”: 715.9169, “z”: -0.5304815 } }, { “type”: “NOSE_BOTTOM_CENTER”, “position”: { “x”: 547.12274, “y”: 731.35, “z”: -36.35701 } }, { “type”: “LEFT_EYE_TOP_BOUNDARY”, “position”: { “x”: 392.76923, “y”: 502.9001, “z”: -22.035137 } }, { “type”: “LEFT_EYE_RIGHT_CORNER”, “position”: { “x”: 446.1575, “y”: 525.97986, “z”: 6.1234713 } }, { “type”: “LEFT_EYE_BOTTOM_BOUNDARY”, “position”: { “x”: 382.2821, “y”: 541.0646, “z”: 1.9413836 } }, { “type”: “LEFT_EYE_LEFT_CORNER”, “position”: { “x”: 322.50433, “y”: 516.0885, “z”: 26.407192 } }, { “type”: “LEFT_EYE_PUPIL”, “position”: { “x”: 388.10706, “y”: 521.47125, “z”: -7.180469 } }, { “type”: “RIGHT_EYE_TOP_BOUNDARY”, “position”: { “x”: 683.7959, “y”: 495.6776, “z”: -5.7105966 } }, { “type”: “RIGHT_EYE_RIGHT_CORNER”, “position”: { “x”: 749.6993, “y”: 506.82166, “z”: 49.96618 } }, { “type”: “RIGHT_EYE_BOTTOM_BOUNDARY”, “position”: { “x”: 689.4647, “y”: 535.0767, “z”: 18.457733 } }, { “type”: “RIGHT_EYE_LEFT_CORNER”, “position”: { “x”: 626.1424, “y”: 520.6325, “z”: 15.827335 } }, { “type”: “RIGHT_EYE_PUPIL”, “position”: { “x”: 686.228, “y”: 514.26575, “z”: 9.075204 } }, { “type”: “LEFT_EYEBROW_UPPER_MIDPOINT”, “position”: { “x”: 380.13187, “y”: 422.14667, “z”: -51.425316 } }, { “type”: “RIGHT_EYEBROW_UPPER_MIDPOINT”, “position”: { “x”: 695.8692, “y”: 414.42413, “z”: -33.777462 } }, { “type”: “LEFT_EAR_TRAGION”, “position”: { “x”: 183.83867, “y”: 606.6314, “z”: 371.10687 } }, { “type”: “RIGHT_EAR_TRAGION”, “position”: { “x”: 851.16785, “y”: 588.6188, “z”: 406.92557 } }, { “type”: “FOREHEAD_GLABELLA”, “position”: { “x”: 540.5287, “y”: 454.71814, “z”: -70.487366 } }, { “type”: “CHIN_GNATHION”, “position”: { “x”: 546.2589, “y”: 1005.02893, “z”: 71.741165 } }, { “type”: “CHIN_LEFT_GONION”, “position”: { “x”: 229.85832, “y”: 807.9502, “z”: 284.4725 } }, { “type”: “CHIN_RIGHT_GONION”, “position”: { “x”: 826.6798, “y”: 793.2037, “z”: 318.0036 } } ], “rollAngle”: -0.90915877, “panAngle”: 3.253379, “tiltAngle”: -9.302529, “detectionConfidence”: 0.9998878, “landmarkingConfidence”: 0.7961827, “joyLikelihood”: “VERY_UNLIKELY”, “sorrowLikelihood”: “VERY_UNLIKELY”, “angerLikelihood”: “VERY_UNLIKELY”, “surpriseLikelihood”: “VERY_UNLIKELY”, “underExposedLikelihood”: “VERY_UNLIKELY”, “blurredLikelihood”: “VERY_UNLIKELY”, “headwearLikelihood”: “VERY_UNLIKELY” } ] } ] }

工作機械シミュレーター

物理シミュレーターライブラリを使って製作しました。

手動運転でぶつかると「表示」や「音」を出すことができます。
複数のロボット間でも干渉を検出することができます。

さまざまな機械・機構の動きを、リアルタイムでシミュレーションできます。

インバースキネマティックを組み込むこともできます。

工作機械メーカーさん、ロボットメーカーさん、生産機械の設計・インテグレーターさんなどが、機械のユーザーさんに、設計説明や、ポイントのプレゼンが出来るようなものになれば、と思っています。

FA用途は、一杯あるとおもうのですが、ほかに意外性のある用途があるのでは・・とも思います。

頭部3Dスキャンの技術提供(アタマースキャン)

どんなことが出来る? 

 
 
 
顏の3Dデータは全体はもちろんですが、局所的に変形をすることもできます。(PDや顏幅の調整など)

スキャンサービスの提供

(特定の人の)頭のデータだけをとる場合は、スキャンしてデータをお送りします。

1回では失敗することがありますので、2回スキャンをして取得します。

 

企業向け(技術導入)

必要なハードウエア、基本スキャニングソフトウエア、基礎講習、基礎サポート(半日)で、実施します。活用方法やシステム化のご相談などもお受けいたします。

あれば使えるもの(なければ納入します)

 

PC: Core i5 以上、64bit Windows (7以降)、Rhinoceros5.0 (64bit)

講習時に持参は不要です。撮影後のデータ処理時などに使います。
一部のソフトを利用するために、無線LAN、ファイアーウオールの設定などが必要となります。

Rhinocerosの基礎的な知識があり、操作が出来ることを前提としています。

 
 
 
 
 

お問い合わせについて

 

レンズ

ranb-2

グリッドのおかげで乱視の矯正レンズだな、と、なんとなく分かると思うのですが、レンズを作っている人はグリッドがなくても、斜めからみてわかるそうです。