add #g read macro for reading binary encoding float/integer array#139
add #g read macro for reading binary encoding float/integer array#139YoheiKakiuchi wants to merge 1 commit intoeuslisp:masterfrom
Conversation
|
+1 |
|
これはテストあったほうがいい気がします。 |
|
""の中はバイナリ文字列ということはエディタで見ると"@@@@@@@"みたいになるという事でしょうか? |
|
ダンプはeuslibにあります、移行する予定ですが書き直したいですね。 テストは以下です。 ""の中はバイナリ文字列ということはエディタで見ると"@@@@@@@"みたいになるという事でしょうか? |
読めたほうがいいです、が高速化のために導入したいという事だと思うので、読める形(asciiに無理やり収める)にした時にパフォーマンスがどこまで落ちてしまうかがキーな気がします。 euslisp/jskeus#271 |
|
機能的には賛成です 👍 そのうちvectorだけじゃなくて#sで表現してる構造体もこっちで表現したほうが効率がいい、とかになりそうですね。 |
+1 |
|
ASCIIでうまく表示できるのは32~127なので、パフォーマンスは最悪半分位になってしまうかもしれません。 |
|
https://ja.wikipedia.org/wiki/Base64 |
|
Cでやるにしても、そこまで大変じゃなさそうです |
|
Cで書くなら、松井さんコードをCにするのがいい気がする |
327d4b0 to
1e8e0bf
Compare
|
base64にしてみました。 |
|
これってcommon-lispにある表記? 2015年9月18日金曜日、Yohei Kakiuchinotifications@github.comさんは書きました:
◉ Kei Okada |
|
ここまでくると、 |
|
|
|
肝心のパフォーマンスが大きく違うかもしれません。 |
|
よくわかっていないですが,array-entity して出てきたバイナリをwrite-byte して書き出すのではダメなんだろうか? バイナリ文字列,というのは結局プログラムで書き出すとすると,同じことな気がするんですが, |
|
@YoheiKakiuchi 先生.7年遅れでようやくこの問題にたどり着きました. |
hrp2/jaxonはVRMLモデルに対してopenhrp-export-colladaとcollada2eusを(特にメッシュ削減に関するオプションはつけずに)作用させてeusモデルを生成しています。 HRP2のVRMLモデルは元のモデルのメッシュをそのまま使っています。元のモデルのメッシュが十分削減されているのか、ロード時間はそこまで気になりません $ roseus ./hrp2jsk.l
$ (bench (hrp2jsk))
;; time -> 0.276349[s]
#<hrp2jsk-robot #X5653bfc33f90 HRP2JSK 0.0 0.0 0.0 / 0.0 0.0 0.0>JAXONやTABLISはのVRMLモデルは、CADのモデルのメッシュを削減したものを使っています。 参考
全身のリンクのメッシュを削減している場合 $roseus ./tablis.l
$ (bench (tablis))
;; time -> 0.596054[s]
#<tablis-robot #X559384801640 TABLIS 0.0 0.0 0.0 / 0.0 0.0 0.0>
$ roseus ./tablis.l
$ (bench (tablis))
;; time -> 1.82508[s]
#<tablis-robot #X5652b119ddf0 TABLIS 0.0 0.0 0.0 / 0.0 0.0 0.0>TABLIS全身のリンクをCADのメッシュをそのまま使った場合 ;;openhrp-export-collada時に128Gのメモリを使い切ってしまってeusモデルを生成できず計測不能
|
|
モデル作成時ではなくて,ファイルロードの時間が問題になっているのかな,という理解なんだけど,jsk-ros-pkg/jsk_model_tools#244 (comment) の以下のような結果を知りたいです. |
|
すみません。誤解していました。以下のようになります。 HRP2の場合 全身のメッシュを削減しているTABLISの場合 BASE_LINKとCHEST_LINK0だけCADのモデルのメッシュをそのまま使ったTABLISの場合 |
|
@Naoki-Hiraoka このときのファイルサイズはどれぐらいなんだろう... |
|
追記しました。 |
はい、そのままのバイナリダンプは、バグの可能性があると思います。
ないです。
ないように思います。
#g の件が jaxonかjaxon_redの読み込みが遅いための解決策だったと思うのですが、 |
バイナリエンコードされたfloat/integer-vector/matrixのリーダーを追加しました。
形式は以下です。
#g( array-dimensions element-type バイナリ文字列 ) の書式です。
#g((4 4) :float "xxx")