ひとりごと
2021. 6./ 2021. 7./ 2021. 8./ 2021. 9./ 2021.10./ 2021.11./ 2021.12./ 2022.01./ 2022.02./ 2022.03./ 2022.04./ 2022.05./ 2022.06./ 2022.07./ 2022.08./ 2022.09.

2023. 5.31.(Wed)
メイン会議二日目

今日もポスターセッションは空間表現・形状表現を中心に。 というか、今のトレンドが明らかにそうで、運動学・機構・制御などの話題が極端に少なくなっている。 大抵のポスターにはCNNやAutoEncoderの絵が描いてあったりして。 問題設定に興味が合って見に行っても、ソリューションがニューラルネットだと全然分かった気になれない。

昼食の場所と一緒に食べてくれる人を探して会場内を3周くらい徘徊してたら、下田、林部くんが見つけてくれた。

プレナリーを逃してしまった。 その後のキーノートはジェミノイド、ソフィア、Amecaとネットで話題のリアルロボたちを作った方々のお話。 申し訳ないが、見た目のインパクトのわりにどれもこれも浅いなとしか思えなかったよ。 発表の仕方も茶番劇みたいだったし。 事前には、なるべく批判的にならないように聴こうと思っていたんだが(信じて!)。

夜にはバンケット替わりの立食パーティがあったが、部屋は狭いし音はうるさいし、暗い中で強めのスポットライトがぐるぐる回ってるし、全然落ち着かなかったので早めに逃げ出した。 高橋さん、多田隈先生、渡辺先生、平井先生、Galipon先生とスペインバルに。


2023. 5.30.(Tue)
メイン会議初日

ポスターセッションは空間表現・形状表現を中心に見て回る。 一休みする場所が少ない上に、隅の方でロボットアートみたいな奇っ怪なパフォーマンスを大音量でやっているので気が滅入ってくる。 近くで聴いている人たちはよく平気でいられるな。

Amecaの実物を見る。 顔の肌の質感がすごくリアルなロボットがすぐ近くにあって、良くできているなーとしげしげ眺めていたら、本物の人だった。

午前のキーノートも空間表現のヒントが得られるもので良かった。 さすがに疲れてたのか、午後のキーノートは寝てしまった。 内容は面白そうだったので、しまったな。 キーノート直前、平田先生が近くにいらしたのでMoonshotの苦労話を伺う。

夕飯は渡辺先生、下田、前田先生とチャイナタウンに行って食べる。


2023. 5.29.(Mon)
メイン会議前日

結局QRコードなしで向かったが、全く問題なく受け付けてもらった。 そして会場、分かりづら過ぎ。

ワークショップはこれに出てみた。 普段全く関わりのないコミュニティで、日本人参加も発表者を除けば恐らく自分だけという状況。 それは全然構わないのだが、途中4グループに分かれてのテーブルディスカッションが2回もあって、気が引けて逃げちゃった。

簡単なまとめ。

昼は下田と食べる。 ウェルカムレセプションは川原塚くん&高橋さんと回る。 その後大西さん、鈴村さん、廣瀬さんと会場近くのバルに飲みに行く。

SlackにICRA2023チャンネル作成した

リンク。 当日になっての作成で恐縮です。


2023. 5.28.(Sun)
覚書:次の海外出張で忘れず持っていくもの

外貨用小銭入れ、部屋用スリッパ、シャンプー、洗顔フォーム、垢すり、綿棒、バスタオル、

ロンドンに移動

早朝出発、羽田からヒースロー直行便に乗る。

ANAを使ったのだが、今の飛行機ってエコノミー席でも電源使えるのね。 知らなかった。 赤VAIOはバッテリが心許ないので、PCは使わないつもりで持ち込み荷物を作ったのだが、そうと知っていれば…。 仕方がないので映画を5本も観てしまったよ。

ヒースローからの電車は渡辺先生、平井先生、木口先生とご一緒させて頂く。

そしてどうにか宿の部屋に入ってこれを書いている。 ウェブページが立派だったので期待してたのだが、なんだかとんでもなく小さい宿だった。 久しぶりの海外だったので、部屋用スリッパも忘れて来ちゃった。 しまったな。

ICRA registration teamからメールが来ていたので、QRコードか?と期待するも、全参加者向けのアナウンスだった。


2023. 5.27.(Sat)
ICRA参加準備

出発前日になって慌てて参加者ガイダンスを読んでいるんだけど、QRコードってどこにあるの? Sylpheedじゃ表示されないよ…。

仕方ないのでregistration teamにメールを送った。 間に合うかな。 そして空港から宿への行き方をこれから調べる。

長女の部活見学

学校出入りの楽器屋さんが唄口の販売説明をしてくれるというので、保護者として参加。 ついでに練習風景を見学させてもらった。 音を聴くと色々言いたくなるのを堪えるのが大変だったかも。


2023. 5.26.(Fri)
あまり集中できない日

昨晩帰りが遅かったせいか、一日中頭に霞がかかったような気分だった。 会議では的を射ない発言をしちゃったような気がする。 申し訳ない。

ロボット関連記事いくつか

今朝はなぜか多めに引っかかった。


2023. 5.25.(Thu)
GLSLで反射と屈折

帰りの新幹線の中で なんとかできた。 周囲環境をキューブマップにするところのライブラリ化に悩む。

ICRA出張の準備をしていない

気付いたら出発が3日後だ。 もう何年も海外出張してないので、勘が鈍ってる。 とりあえず空港から宿への行き方確認しなきゃ。

「科学技術の未来予測はダメ」 指摘から20余年、「SF」は解決の糸口に?

記事


2023. 5.24.(Wed)
覚書:カプセルの慣性テンソル

I=diag( Ixx, Iyy, Izz )

Ixx=Iyy=ρVc (1/4r^2+1/12h^2) + ρ 2×1/2Vs (83/320r^2 + (1/2h + 3/8r)^2) = ρπr^2(8/15r^3 + 3/4r^2h + 1/3rh^2 + 1/12h^3)

Izz=ρVc 1/2r^2 + ρVs 2/5 r^2=ρπr^4(1/2h + 8/15r)

多面体近似と比較した限りでは合ってるみたい。

夜、京都に移動
ASTM announces legged robotics subcommittee

記事その1その2ASTMが何かをまず知らなかったのだが、The American Society for Testing and Materialsのこと。

一番目の記事によれば "ASTM's new subcommittee aims to develop standards and testing procedures to effectively evaluate the performance of legged robots, whether they be bipedal or quadrupedal."だそうだが。

Google・Apple・Amazon・MicrosoftのAIはゴリラのラベル付けを避けている

記事。 対応としては、無難かも知れんが正しいとは全く思えないんだよなあ。 末尾のVicente Ordóñez准教授の主張、問題にフタをするのではなく解決するべき、というのに同意。

壁際も掃かずに吸い込むロボット掃除機

記事。 餅は餅屋、掃除機は掃除機屋、というのが感想。


2023. 5.23.(Tue)
Zeoカプセルクラス続き

出勤の電車の中で多面体化続き。 難しくは無いが頂点インデックス対応付けが地味に面倒。 次はレンダリング。


2023. 5.22.(Mon)
Zeoにカプセルクラス実装へ

自分自身はこれまで使いたいと思う場面が無かったので考えてなかったが、職場で干渉判定にカプセルクラスを使いたいという面々が意外に多いようなので、帰りの新幹線の中で実装を始めた。内外判定は簡単。多面体化と質量特性計算でちょっと時間食う。

GLSL透過レンダリング

続けてやってる。 関数一つでこのあたり処理できるのはなかなか便利だな。


2023. 5.21.(Sun)
夜、京都に移動

移動中も結局鏡面反射レンダリングやってた。 本務の資料作りをしなきゃいけないのに。

キューブマップの続き

テクスチャ座標系とgluLookAtの関係でちょっと悩んだが、一面ずつ対応をチェックしていってなんとか完了。 擬似鏡面反射レンダリングが出来るようになった。


2023. 5.20.(Sat)
恐竜博2023

これに息子と行ってきた。 ズールの名前の由来がゴーストバスターズだというのは、良いのか学会。

見どころはいくつもあるのだけど、個人的には奇跡の赤ちゃん恐竜スキピオニクスが一番印象強かった。 気管、血管、内臓まで残っていたというもの。

常設展示の方ではこういう企画展もやっていて、こちらも面白かったよ。 世界三大珍獣というのは、ある日本人が個人的な所感を言っただけだったと初めて知った。

クラスのextern "C"

次のようなコードは許容されるのか?という疑問が生じた。

#ifdef __cplusplus
extern "C" {
#endif

#ifdef __cplusplus
struct my_struct_t{
#else
typedef struct{
#endif
  ...
#ifdef __cplusplus
  int foo(){ return 0; }
};
#else
} my_struct_t;
#endif

#ifdef __cplusplus
}
#endif

見づらいが、要するにCならば

typedef struct{
  ...
} my_struct_t;

C++ならば

extern "C" {

struct my_struct_t{
  ...
  int foo(){ return 0; }
};

}

と見えるようなコードにしたいわけだ。 Cの方は明らかに問題ないが、C++の方は、extern "C"しておきながら構造体がメソッドを持つC++風の書き方になっていて、これは良いのか?という疑問。

結論としては多分「良い」が答えで、理由は、extern "C"は構造体やクラスの定義には影響を及ぼさないから、らしい。 間違っていたら後日正す。

sizeofの型

sizeofの値をprintfで表示したい場合、書式指定子は何にすれば良いのかという問題。 今まで深く考えずに%ldにしていたが、どうもunsignedみたいだし、サイズは処理系に依存するらしい。

調べたらずばり答えを書いてくれてる人発見。 C99ならば%zuを使うべきと。

問題は、自分のライブラリはANSI C互換を条件にしてしまっていることだ。 で、さらに調べたらこんなやりとりもあったりして、どうやら%luが僕にとっての答えらしい。


2023. 5.19.(Fri)
ヒントン先生インタビュー記事

ちょっと遅れたけどリンク

もう金曜日なの?

一週間経つの早過ぎ。 あんまり物事が前進してないなぁ…。


2023. 5.18.(Thu)
ライブラリいろいろ修正しないといけないらしい

今西くんから大量の指摘。 勉強になる。 いつやるか?

人型ロボットベンチャーの動き

一つ目はTesla。 上岡さんから情報。 短期間でしっかり作ってきてるな。 歩き方がH5とWabian-2Lそっくり。

Sanctuary AIという会社も突如として出てきて、謎。 足まわりの動きが見られないが、双腕搬送時の体幹の動きを見る限りでは全身協調ちゃんとしている。 どうやっているかはちょっと読み取れない。

両者をまとめた記事

力レギュレーションと並進・回転インピーダンスの復習

出勤中に。 どちらも何年も前にやったことなのだが、暫くそういう真っ当な話から離れていたので勘が鈍ってる。 角軸ベクトルはθnなのかsinθnなのか、分野的にわりと曖昧なのかも知れん。

大型新人の入社前面談

対応のために出社。


2023. 5.17.(Wed)
GLSL続き

環境マッピングの勉強に入る。 キューブマップについてなんとか理解。

JRSJ論文賞選考小委員会

毎回さぼってしまっていたが、実に久しぶりに参加。 いろいろ余計な事言ってしまった気がする。 それでもしっかりまとめてくれた菅原くんの頑張りに感謝。

属・dllexportとdllimport

昨日の続き。 朝食前になんとか終わる。 RoKi-FDだけは脇坂くんの承認がいるのでプルリク投げる。


2023. 5.16.(Tue)
dllexportとdllimport

今西くんから指摘を受けて理解した。 今までZEDAで

#ifdef __BUILD_DLL
#define __EXPORT declspec(dllexport)
#else
#define __EXPORT declspec(dllimport)
#endif

みたいに定義していたが、異なるライブラリ間でこれを使いまわしたら正しく働かないということに今更ながら気づいた。 ライブラリごとに、名前を変えて同様のマクロ定義をしなければいけないということ。 帰りの新幹線の中でこの作業を始めた。

煩わしいのでmakefileの中でヘッダを自動作成するようにする。 ライブラリの名前を変数にしてあるので、それを参照すれば可能。 それにしてもそれに関連する作業が多かったので、帰宅までに終わらず。 続きは明朝。


2023. 5.15.(Mon)
フレームバッファとレンダーバッファについて

ちょっと混乱してしまったのだが、分かりやすく整理してくれてる記事を見つけた。

地球の歩き方・ロンドン

買った。

差動駆動型ロボットのモデル化

RoKiをどう拡張しようかという話。 平面関節モデルを作って車輪リンクと組み合わせちゃえば良いのかなと考えてる。

GLSLで配列を使う

GLSLの勉強続き。 マルチテクスチャ対応のため、フラグメントシェーダの中にサンプラの配列を作ろうと思った。 こんな感じ。

uniform int num_sampler;
uniform sampler2D sampler[8];
uniform float mix_rate[8];
...
  for(int i=0; i<8; i++ ){
    diffuse = mix( diffuse, texture2D( sampler[i], gl_TexCoord[i].st ), mix_rate[i] );
    ...
  }

ところが次のように言われる。

0:1(826): warning: sampler arrays indexed with non-constant expressions will be forbidden in GLSL 1.30 and later
0:1(838): error: unsized array index must be constant

つまり添え時は定数でなければダメだと。 そんな仕様とは…。 仕方ないのでループを全部書き下すことに。 要素8個くらいならまだ良いが、汎用性上げるのは大変だなこれ。


2023. 5.14.(Sun)
というわけでRoKi-GL更新

とりあえずGLSLでマルチテクスチャ使えるようにした。 シェーダをライブラリ化するのはどうすれば良いのかな?と考えたが、ソースを丸々マクロにしてしまえば良いと気付いた。

OpenGLマルチテクスチャ

最近はこれを読みながら、GLSLを少しずつ勉強している。 その都合で、RoKi-GLをGLEW拡張対応した。

glew.hはgl.hをオーバーライドしてしまうのだが、どうやらそのせいでマルチテクスチャまわりの動作がデフォだとおかしくなる。 具体的にはglActiveTextureがNULLになってしまう。 解決策は、GLコンテクスト(例えばGLUTウィンドウ)を作った後にglewInit()すること。 glActiveTexture()使わないプログラムではglewInit()しなくても何も問題出ないので、これに気付くまで手間取った。

もう一つ分かったこと。 glActiveTexture()は、テクスチャ作成する際には不要で、レンダリングする時だけ必要である。 ウェブで解説している記事でもここ誤解しているものが結構あるように思うので要注意。 ただし、GLSLでシェーダプログラミングするときは考え方が全く異なり、マルチテクスチャと無関係にテクスチャユニット使って切り替える(逆にglBindTexture()は使わない)。 これは混乱の元になると思う。

夜京都に向けて移動
「Winny」を観た

再開したのは、映画「Winny」を観たと書き残したくなったから。 東出昌大さんが良い芝居している。 最後に金子さんご本人のインタビュー動画も出てくるのが感慨深い。 「こんにちはマイコン」が出てきたのは演出ならやり過ぎだと感じたが、実話だったとしたら面白い。 あと、阿蘇山大噴火氏がご本人役で出演してて驚いた。 そろそろ上映終了してしまうので、ご興味ある方はぜひお早めに。

何度目かの日記再開

私用赤VAIOのCPUファンの音が大きくなったので、近くのPC修理屋に出したらそこからトラブル拡大して1か月くらい触れなかった。 そのせいで中断、そのままPC復帰しても再開する気力が出ず放置状態だった、という経緯。