dynamicsoar's log

主に研究関係のメモ

シェルスクリプトで「カレントディレクトリ以下全てを検索してマッチするファイルを圧縮」「圧縮形式をgzipからxz(など)に変更」

まえがき

数値計算結果など、大量のファイルを自動的に逐次圧縮したい、ということが自分はよくある。しかもそれらが複数のディレクトリにまたがっていて、「エクスプローラから右クリック」なんていちいちやっていられない、自動化したい、ということもよくある。そういう場合にはシェルスクリプトが便利。

bash(たぶん sh ならなんでも)を使うので LinuxMac, Win の場合は Cygwin などの利用を想定している。

ファイルを検索して圧縮

「カレントディレクトリ以下を全て検索し、拡張子が xyz のファイルを見つけて、それらに対して逐次 gzip -9 -q を実行」は、

$ find . -type f -name "*.func" -exec gzip -9 -q {} \; &

で行ける。xargs を使った方が速いんだとかそういう議論はあるようだが、よくわからない(検証もしてない)。

圧縮形式の変更

「すでにある .gz ファイルを .xz に圧縮し直す」になるともっと複雑。一度ディスクに書き出すのはまだわかるが、パイプを使って直接(つまりメモリのみ経由して?)xz にするのは全然わからない…が、エキスパートが提供してくれている:

pipe - How to convert all files from gzip to xz on the fly (and recursively)? - Unix & Linux Stack Exchange

念の為引用しておくと、Stéphane Chazelas さんによる最初の回答:

find . -name '*.gz' -type f -exec bash -o pipefail -Cc '
  for file do
    gunzip < "$file" | xz > "${file%.gz}.xz" && rm -f "$file"
  done' bash {} +

これで行けた。具体的には、一行目に #!/bin/bash をつけて gz2xz.sh などの名前で保存し、chmod で x 可能にすることで実行し、うまく作動することを確認した。Windows でうまくいかない場合、改行の形式がおかしい可能性がある。Notepad++ の Edit > EOL Conversion で UNIX に変えるなどして、CR+LF を LF にするとうまくいくかもしれない。

圧縮に関するコメント

圧縮形式については、gzip/bzip2/xz/zstd あたりのどれを使うか、というところは、どうやらファイルの種類によって最適なものが変わるようなので、たまに自分でテストしてみることをおすすめする。

ベンチマークでよく言われているのは、「bzip2 は圧縮率は gzip と xz の間くらいだが、解凍(展開)が遅い」ということで、確かにそういうケースもあったが、逆にあるファイル形式では「bzip2 が gzip よりも高圧縮で速度は同程度・xz と圧縮率がほぼ変わらず圧倒的に速い、かつ解凍も別に遅くない」ということがあった。オプションは、基本的にはデフォルトから変えても圧縮率は10%も変わらないかな、という印象(流石に-0とか-9みたいに極端に振ると結構変わることはあるが)。それよりも速度が結構変わることがあるので、そちらに注意したい。zstd はデフォルトの -3 だと異常に高速で圧縮率は gzip 並(かそれ以下かも)、というかなり速度重視感がある。急いでいるときは良いと思うけどまだ本格利用はしたことがない。

なお 2018-08現在、Cygwin をデフォルトでインストールすると xz と zstd は(bzip2もだったかも?)確か入ってこないので、追加する必要がある。軽いのでインストール自体はすぐ終わる。おそらく MacLinux でも xz はあっても zstd はないことが多そうなので、必要なら自分で入れる必要がある。

Opening ports in Windows Firewall solved the ANSYS licensing problem

Key words

ANSYS, FlexNET Licensing error

Environment

  • Windows 7/10, Pro/Enterprise, 64 bit
  • ANSYS 19.0/19.1
  • Floating license

Problem

We have a PC which is set up as a server for ANSYS (19.0) and it wa confirmed that the ANSYS Workbench and everything (e.g. Fluent, Mechanical) are working fine in the server PC.

Then, I installed a client software (19.1) on a different PC. During the installation, I typed in the correct port numbers (both 2 of them) and the host name as the server PC *1.

However, I got an error dialogue saying something like:

License server machine is down or not responding. (-96,491)

Solution

I edited (with Run as admin Notepad++) the file at C:\Program Files\ANSYS Inc\Shared Files\Licensing\ansyslmd.ini where I changed the hostname to the actual IP address. No success. I ping-ed to the server PC and there was actually no problem (even hostname is resolved nicely).

Then, after some googling, I added the ANSYSLMD_LICENSE_FILE and ANSYSLI_SERVERS to the environmental variables (as PORTNUMBER@HOSTNAME ) but this did not help at all.

Then I googled a lot and came to think the port may be the problem. In fact, when I opened the Windows Firewall settings, it says "Inbound connections that do not match a rule are blocked." This is understandable since it's the university PC, and I guess we cannot (at least easily) change this policy. Therefore, I created a rule in the server PC that allows the inbound connection to the ports from the private network, and this worked like a charm.

Procedure

  1. Open the Control Panel (In Win10, Windows-X is easy).
  2. System security > Windows Firewall > Advanced settings (left column): new window should open
  3. If you see "Inbound connections that do not match a rule are blocked." in the Private Profile, this may be the cause.
    1. In the left column, left-click "Inbound Rules"
    2. Then right-click the "Inbound Rules" and choose "New rule..."
    3. Select "Port". Press "Next >"
    4. Type the ports of your choice in the "Specific local ports" (you can use comma for multiple ports) and press "Next >"
    5. Choose either "Allow the connection" or "Allow the connection if it is secure" (in my case, the second one didn't work, though if it works preferable, I think). Press "Next >"
    6. Untick the "Public" at least. Untick one of the others if you can (might require trial & error). Press "Next >"
    7. Type in the name (e.g. "Open ports for ANSYS") and press "Finish".

*1:By the way, if you have not, you can set them up using "Client ANSLIC_ADMIN Utility 19.1" or simply editing the text file at C:\Program Files\ANSYS Inc\Shared Files\Licensing\ansyslmd.ini

amazon で買った adobe cc 36ヶ月版のコード(1年分コード3つ)は1つずつ連続で引換えれば期間は3年間になる

買うと「3年分のコード」ではなく「1年分のコード」が3つ送られてきた。どうすればいいかの手順。自分は教職員版だったけど通常版でも同じだと思う。

  • Adobe ID でのログイン後のコードの引き換えでは、入力欄は1つしかない。ここに「1年目」のコードを入力する。
  • クレジットカードで自動更新にする?とか言われる。とりあえず「自動更新しない」を選択。
  • Adobe ID のホーム画面というのか、「プランおよび製品」タブへ行く*1
  • お支払の詳細 > コードを引き換える でダイアログを開き、ここに「2年目」のコードを入力する。この記述が(5秒位ググっただけだと)どこにも見当たらず、どうなるかは博打だったが、問題なく期間が2年間に延長された。
  • 同様に、「3年目」のコードも入力。無事、3年間に延長された。

振り返ってみると、「任意の時点で、引き換えコードを入力すると、現状の契約終了時点から1年間延長される」ってことだろう。「コードを入力した時点から1年間」ではない。実際、いま3月なのに契約切れるのは前回初めて引換えた(んだろう)5月になっている。つまり、いつでもいいからとにかく最安のときに買って即引き換え、でいいってことか…

*1:教職員版でなく通常版なら、そもそも最初からここで入力しているのかも?

動物飛行の安定性や制御に関係する研究をいくつか紹介してみる(後編=文献紹介)

Books(本)

動物飛行かつ制御に特化した本はなさそう。制御の本としては、航空系のものが参照されている事が多いので、省略。

動物の飛行(主に力学)

動物飛行の入門書としては、David E. Alexander によるものが3冊出ていて、僕は最初の1冊目 Nature's Flyers は熟読し *1、2冊目 On the Wing は買ったけど積読、3冊目 Nature's Machines は出たことしか知らない。おそらく今なら、3冊目を読むのが良さそうかな?この人は論文の数はそんなに多くないけど本は良質なのでオススメ。

昆虫については、やや古いけれど、Robert Dudley の Biomechanics of Insect Flight は外せない。昆虫の研究室のどこに行っても大体これはある、という印象。僕も昔は結構読み込んだけど、anatomy のところはツマンネと思って飛ばしたりしていたので、再読に次ぐ再読が必要だなと思っている。

飛行と遊泳の流体力学(空気力学・水力学)

まず飛行に限らず、遊泳を含む、「流れの中の生物」という文脈では、古典的ながら名著とされるのが最近お亡くなりになった Steven Vogel による Life in Moving Fluids, 2nd ed. だ。これはもう、世界中の飛行・遊泳の研究室に置いてあるんじゃないだろうか。トピックが多いぶんだけど個別の内容の掘り下げは浅く、かつ、今となっては古いことにも十分注意する必要がある。それでも読みやすいし、最初に読むならむしろ「広く・浅く」というところがポジティブにはたらくかもしれない。

似た方向性の本で、僕がわりと最近知ったものとして Mark W. Denny の Air and Water (ISBN 978-0691025186 ) 、改定込みの和訳 『生物学のための水と空気の物理』(ISBN 978-4860434502 ) というのがある。原著は1993とそんなに新しくないが、翻訳している下澤先生 *2 がかなり手を入れている模様なので、読むなら和書の方がいいのかもしれない。ただ、あまりにも高い。僕はひとまず図書館で借りてみて、たしかに知らない内容も含んでおり面白いが、1万円以上という価格は個人での購入を考えてはいないのかなと思った。これなら原著買うわ。あと疑問点もいくつかあった気がする(当時ツイートしたと思う。後で貼り付けるか)。

他に、日本語で比較的新しく、入門的なものはこれかな: エアロアクアバイオメカニクス 生きものに学ぶ 泳ぎと飛行のしくみ | 森北出版株式会社 。もっと詳しいのは東昭による著作群だけれど、流石に古いので、参考程度(ただし同じ著者の Biokinetics of flying and swimming, 2nd ed, AIAA はちゃんと読み込んでいないので、LEV などについてもフォローされているなら良いかも。いや英語だけど)。

空気力学について、もっと詳しく知りたいなら、Shyy et al., An Introduction to Flapping Wing Aerodynamics, Cambridge University Press (ISBN: 978-1107037267 ) へ進もう。ただしこのくらいになるとレビュー論文を読むのとどっちがいいのという話になってくるのでお好みではある。というより、こういう本ってだいたい、単体の論文やレビュー論文をさらにまとめただけ、って感じのものが多いよね…。

バイオロギング

和書がたくさん出てるのでググって、どうぞ(なげやり)。 図書館にもたくさん入ってそうなので、まずは借りてみるといいのではないでしょうか。

Review articles(総説)

同じく、動物飛行かつ制御に特化したレビューってあるのかというと…。昆虫なら調べたらありそうかな?ちょっとすぐには思いつかない。飛行全般や、空気力学については幾つかわかるので、思いつくものを並べてみます。

鳥→Altshuler とか、Bret とか。

コウモリ→ Anders とか

昆虫→Saneと…あれ、意外と思いつかんな。

こないだのProcBとInterface Focusの特集号をチェックし直そう→自分

遊泳にまで手を広げるとちょっと終わらないので飛行に限定しよう。

Research articles(論文)

個別の論文は当然数が多すぎるので、現時点で僕の論文管理ソフト *3 に入っているものにひとまず限定しよう。

WIP

昆虫

WIP

ていうか鳥と昆虫にわけるのは微妙かなー。コウモリも外せないがよく知らないし…。むしろ安定性と制御でわける?そもそも流体と明確にわけれるのかっていう話ではある。

*1:この本が、僕が生物飛行の力学という世界に入るきっかけの一つだった。あまりに楽しめたので著者にメールしたことを覚えている。ちゃんと激励っぽい返事が返ってきた。

*2:北大名誉教授でコオロギのセンサとかやってたぽい、かなりガチのバイメカ屋さん。僕はお会いしたことはない。

*3:Papers 3.

動物飛行の安定性や制御に関係する研究をいくつか紹介してみる(前編=イントロ)

経緯

Twitter で、制御が専門だけど鳥に興味があるという方がいた。

というわけで、自分の専門ではないけれど鳥を含む動物の飛行、特に羽ばたき飛行関係での、安定性や姿勢制御の文献をいくつか列挙してみたい。

僕の専門は動物飛行の力学 (biomechanics of animal flight)、特に流体力学 (fluid dynamics)。これに一番近い制御は、姿勢の安定性・機動性に関係するところあたり。なので、基本的にはここから離れるとあまりよくわからない。文献や研究の網羅性・話の信憑性もそういう濃度分布を持っていると思って読んでほしい。

分野の概観

漠然と「動物の飛行にまつわる制御」とだけ言ってしまうと、実際には scope をどこにとるかでだいぶ違う話が含まれうると思う。おおまかには「羽ばたき運動や姿勢の制御」と、「飛行方向や軌道の制御(航法・誘導)」とにわけるとわかりやすいのかなと思う。

羽ばたき運動や姿勢の制御

ある個体が羽ばたき飛行をするための制御を block diagram 風に考えると、おおむね、

  • 感覚器(センシング)
  • → 神経系(信号処理&指令)
  • → 筋骨格系(力・トルクの伝達)
  • → 翼・翅などの運動 (kinematics)
  • → 空気力・慣性力、およびこれらに伴うトルクの発生
  • → 胴体全体の動力学を解いての自由飛行
  • (→ センシングしてフィードバック)

という感じになるかと思う。もちろん、これら以外の恒常性、たとえば体温の制御とかの生理学も重要。飛行は単位時間のエネルギ消費の大きな運動なので。

見ての通り、かなり扱う範囲が広いので、実際の研究は、これらの中でもざっくり「センシング・神経(+生理)」と、「翼運動から先の力学」とにわけられると思う。筋骨格系はこれらの中間かなと。後者(力学)をやってる人は工学系・物理系の人が多くたまに生物出身もいる、という感じ。一方、前者は生物学系の出身者がほとんどだと思う。これには、興味の違いもあるだろうけど、バックグラウンドやスキルの違いも大きいだろう。

前者の人たちが主に調べるのは、たとえば、羽ばたき運動そのものがどのような電気信号・筋肉の収縮・関節まわりの運動によって起こるか (neuromuscular mechanism) といった話。かつ、外界の刺激(e.g., visual, acoustic, or odour cues) に応じてこうした神経・筋肉の挙動がどのように変わるか、というセンシングも含まれる。実際には刺激としては視覚刺激が非常によく使われていると思うけど、これは飛行だからということと、操作しやすい変数だからなのかもしれない。こっちの人たちにとっては、「翼運動から先」の、要するに力学の部分は、ブラックボックスだったり、簡易的なモデルで表現することが多い。胴体を棒の先端などに固定する tethered flight という状態にして、自由飛行 (free flight) をさせないことも多い。これはもちろん、その方が神経活動や筋電位なんかを調べやすいからというのが大きいだろう。もっとも、力学の方でも tethered flight にすることは多いのだけれど。

僕自身の専門は、後者の力学の方になる*1。羽ばたき運動や羽ばたき中の翼の変形の計測・羽ばたきによる空気力(いわゆる揚力・抗力)やトルクの測定や計算、がまず基本としてある。さらにこれによる胴体の移動も調べる。飛行軌跡の計測とか姿勢の計測とか。当然、大気の乱れ等による外乱(擾乱)を受けた際の飛行姿勢の安定性についても調べる。羽ばたき運動(翼の角度)や尾羽根の角度を制御変数として、こうしたものが変わった時の空気力・トルクの変動を求めて、静安定を調べるのが基本、になるのかな。

ただ、もうすこし研究の実際をいうと、空気力を求める人と、そこから先の安定性・制御をやる人たちもやっぱり違う。これは工学屋ならわかると思うけど、要は流体系か制御系かで別れてるって感じだと思う。たとえば、制御の研究はシミュレーションをすることが多いようだけれど、彼らが空気力を求めるために使うのは基本的に簡易化された「軽い」シミュレーション (blade element)。一方、流体屋の場合はそれなりに「重い」シミュレーション (computational fluid dynamics, CFD) を行う。CFDの方は計算にかなり時間がかかるので、制御屋さんがやりたいような実時間で長めの計算というのは難しい。まぁ、それでも力技で羽ばたき20周期とか50周期とかそれくらいをやれないことはなくて、後輩との共著で僕もやったりはしたことがある。ただもちろんケース数が極端に制限されてしまうといったことになはる。

UoM Flight Lab の例

なお、ここまでで「研究者グループが違う」みたいな話を何度か出したけど、もちろん実際には case-by-case で異なる。たとえば、University of Monta Flight Laboratory は鳥の飛行の力学や進化の研究で世界トップレベルの研究所のひとつだけれど、筋電位を測ったり筋肉自体に歪ゲージ (strange gauge) を貼り付けて変形を計測したり、といった神経・筋骨格系のところから、高速度カメラでの羽ばたき運動撮影、およびレーザによる空気の流れの計測、といったところまで幅広くやっている。また、発生段階に応じた運動(つまり、ヒナが孵化して1日目、2日目、…で運動がどう変わるか?ということ)を調べてもいる。さらには、これらすべてを進化という文脈でまとめあげている。つまり、飛行にまつわる「ティンバーゲンの4つのなぜ」の全てをやってしまっている。もちろん、ここまで手広くやっているところはとても少ない…というか、鳥をここまでキッチリやってるところは世界でも数拠点しかない、と言った方がいいだろうが。

おまけ: 進化の話とは具体的にはどういうことか?鳥の飛行が *2 どう進化したかについては、樹上説 *3 と地上説 *4、という2つがあるのは聞いたことがあると思う。このラボのグループはこれらにかわる第3の説を提唱した。それが Wing Assited Incline Running, WAIR というもので、ざっくりいうと「鳥が木に登る(駆け上がる)ときに、補助として羽ばたきを使ったのが飛行の始まりではないか」というもの。実際に、ある種の現生鳥類では、生後すぐの翼がまだできあがっていない時点の個体よりも、翼が成長した数日後(数週間後かも)の個体の方が、登れる坂の最大の角度が急である、というようなことを実験的に調べている。

誘導・航法

隣接する分野として、誘導・航法 (guidance, navigation) がある。NASAの管制室なんかでよく出てくる GNC ってのが guidance, navigation & control [[en.wikipedia]]. こっちは更に専門から離れるので、自分ではやったことがないしあまり詳しくない。ていうか航法と誘導の違いがよくわかっていない。航法は自分の位置と方位を知ることで、ある場所へのホーミングが誘導、てことかな?まぁそのレベルの知識です。共同研究者でこちらがむしろ専門の人(バイオロギング屋さん)がいるので、自分でやろうという感じもあまりない。こっちは具体的には何かって言うと、たとえばわかりやすいのは渡り。あとは餌場までの飛行だとかそこからの帰巣なんかも。伝書鳩なんかもこれ。最近は新学術で 新学術領域研究 生物移動情報学 っていうのができていて、それなりに盛り上がってきているのかなという印象。

長くなったので、ここでいったん切ります。

*1:具体的には、修士の時に昆虫を単一の剛体とみなした6自由度動力学ソルバをスクラッチで書いたので少しだけわかるけれど、それ以降はほぼノータッチ、という程度。

*2:「翼が」ではない。

*3:Arboreal theory; 木の上から滑空したのが始まり。

*4:Cursorial theory; 地面を走りながら羽ばたいたのが始まり。

セキレイが昆虫(蚊)を捕まえる高速度撮影動画の何がそんなに嬉しいのかを解説する

前提

動画

まずはこのツイートの動画を見てほしい:

僕の反応

これを見ての僕の興奮気味のコメントがこれ:

解説

この動画の何がそんなに素晴らしいのか、ということの解説を、以下ですこし試みてみる。

被食-捕食 (predation-prey interaction)

これはそのまま、蚊(らしい)をセキレイが食べる、という関係。動物の生態学・行動学の大きなテーマの一つとして基本的に重要。…専門から遠いのでぜんぜん語れないなーってのがバレバレですね。

ビジョン・認知・神経生理&制御

これは何を言いたいかというと…。動画で、画面の左上から昆虫がすーっと入ってくる。するとあるところで鳥はその存在に気づく。おそらくは視覚的に…*1。なんでこのときに鳥が気づいたと観察者(僕)が思うかというと、このときに鳥が頭をスッと左に振ったから。そしてすぐに離陸体制に入ることから、空中を移動する物体がただのゴミではなく獲物だと既に認識しているのだろう。

ここでスゴイのは、昆虫の移動にちゃんと合わせて捕食に成功しているということ。昆虫の動きは、概ね、画面の左上から右下にスーッと来て、少しホバリング気味になって、食べられる直前にはまた右下に動いている。で、鳥の方は 何とかして この動きにしっかりと追随して、最終的には見事にクチバシで捉えている。

つまり、おそらく、(A) 昆虫の動きを予測して (B) 自分の運動を制御している。離陸から捕食まで、羽ばたき1回とあまりにも早いので、主にはフィードフォワードだろうけれど、フィードバックも併用しているかもしれない。というより、時々刻々予測と制御を繰り返している…?(以下で言及)

GRF (leg thrust)

これは上のツイートで言ったとおり、地面反力および蹴り出しのこと。なんだけど、制御と絡めてみると…画面上でちょうど昆虫が鳥の真上にきてややホバリング気味になったところで蹴り出し始めている。しかしその後、蹴り出しの途中で昆虫は画面右下に動き始める。で、これは2次元画像だけからではハッキリわからないんだけど、もしかしたら、左の脚の蹴り出しタイミングを極わずかに遅らせて、右へのロールと言うかヨーというか、のトルク*2を微妙に発生させているかもしれない。それによって昆虫の飛行方向(未来位置)へと指向している可能性がある。

UPDATE 2018-03-08

左右非対称羽ばたき

まず非対称かどうか以前に、蹴り出しと羽ばたきのタイミング(神経生理・制御的にはコーディネーションというのかな)が面白いし研究対象になっている。ちょっと文献は省略するけど、モンタナのグループがずっとやっているし最近も論文が出ていた(積読)。

で、今回のケースで、まずそのタイミングがどうなのかというと、翼はたたんだ状態から始まるので、蹴り出しの開始に合わせて翼は打ち上げ始めている。蹴り出しの最中で打ち下ろしに切り替わり、脚が伸び切ったあたりで打ち下ろしが終わる、と同時にこのときにはもう昆虫を捕食している。速い。

さてここで、昆虫が画面で右(鳥にとっても右)に動いていることを思い出して再度動画を確認すると、明らかに打ち上げは左翼の方が右翼よりも速く、かつ、より上方まで振っている。その後、打ち下ろしの終了時点では、左右の翼端はだいたい同じ位置にまで下りている。つまり、左翼の方が右翼よりも、羽ばたき振幅も羽ばたき周波数も大きい、ということ。すると左翼の方が空気力が大きいはずだ。鳥の重心位置からそれぞれの翼の風圧中心までのモーメントアームが概ね等しいとすれば、鳥の重心まわりの回転を考えると、右へのロールと言うかヨーというか、のトルクが発生することになる。つまりこれも、昆虫の移動方向に適合しており、追尾の役に立っている可能性がある。

しかしここでひとつ問題がある。動画を再度よく見ると、翼の打ち上げ開始時点では、昆虫はほとんど空間上で静止しているのだ。すなわち、この瞬間の情報だけから判断して、左右非対称な翼の制御ができるのか?という疑問が湧く。これには2つの可能性があると考える。ここではひとまず、無風に近いと仮定する。

  1. 昆虫がホバリングする 前の 情報(飛行軌跡ないし速度ベクトル)を利用している。つまり、「左上から右下に来たので、一旦ホバリングっぽいけどまだ右下にいくやろ」という予測をしている、という可能性。これ、カルマンフィルタ的な予測って言って良いんですかね(違ったらすいません。勉強します)。
  2. 動画をもう一度よく見ると、このホバリングっぽいことをしている瞬間の昆虫は、動画の見た目上とはいえ、体が右に傾いている というか、向かって左の翅がやや上、向かって右の翅がやや下にあるように見える。実際には翅は細かく振動というか羽ばたいているのだろうけれども。とすると、昆虫にはたらく揚力ベクトルは、時間平均すると概ね「右上」を向くはずだ。上下方向(≒鉛直方向)については重力とほぼ釣り合うだろうが、すると右方向の成分が残る。したがって、右方向に加速する。…という予測が成り立つかもしれない。つまり、何を言いたいかというと、鳥は「昆虫が(向かって)右に傾いている」という情報から、「これから右方向に移動するだろう」という予測を立てて、それに適したフィードフォワード制御を行った可能性がある、ということ。

実際にはこれらの両方を組み合わせているのかもしれないし、他の情報も使っているのかもしれない(ちょっとすぐには思いつかないが)。

非定常空気力

んー、今の場合は、非定常かどうかというのはそんなに関係なかったか。それよりも羽ばたきが左右で非対称で、空気力もアンバランスだよねっていう方が大事。まぁ確実に非定常空気力を使ってはいるんだけども。

Alula 展開してない

Alula (小翼羽)ってのは、ヒトでいうと親指にあたる(らしい)部分についている羽根のこと*3。普段は翼面にペタッと張り付いているのだけれど、こういう高機動をするときにはしばしば展開されて、飛行の役に立っているっぽい。具体的なメカニズムとしては、飛行機で言うところの vortex generator (VG) 的な機能だとか、slot/slat/前縁フラップ的な機能であるとか言われていて、決着はついていない。最近も Sci. Rep. に論文が出ていて、VG だと主張していたが、実験があまりにも incomplete で僕は全然納得していない。否定するわけじゃないけど inconclusive でしょ、ってこと。あと展開が active なのか(意識して展開しているのか)、passive なのか(風圧や慣性力で展開「される」のか)、というところも結論は出ていない。僕は主には active だと思うけど、全ての種・全ての飛行状態でそうか、と言われると、全然わからん。

んで、今回の話に戻る。再度動画を見ると、alula はどうも両方の翼で展開されていないように見える。僕の考えを言うと、これは捕食までが早すぎるから、だと思う。羽ばたきがたった1回しかできていない。Alula が必要ないと判断したのか、動かしている暇がなかったのか、はわからないけれども(←これがどっちなのかって判別するの超難しそう。EMGしても何もとれないわけだし。脳の方を調べるのかな?)。つまり、僕の意見としては、もしこれが最初の1回目の羽ばたきで捕食できず、3-4回とかもっとかかっての捕食だったら、途中で展開していたのじゃないかと思う。

UPDATE 2018-03-08: 補足

というわけで風は少なくとも強くはなかった模様。5 m/s というのは気象情報として、だと思うけど、現地ではもっと弱かったのだろう。風洞で過ごした経験から(というかパワーカーブ的に言って)、5 m/s というのはこのサイズの鳥にとってはそこそこの風速ではある。

ただいずれにしろ捕食まで羽ばたき1回しかない(時間にして 1/10 s 程度かそれ以下だろう)わけで、2-3 m/s 程度の風速であれば影響はかなり小さいだろう。

最後に注意

以上のことは全部、カメラ1台だけの動画から得られる情報を基にした、妄想(といって悪ければ、推測)にすぎない。本当に認知がどうなって、コーディネーションがどうなって、力学がどうなって…というのを調べるのは、もちろん、とても、大変。

とはいえ、最初の取っ掛かりというか、仮説としては、概ね上のような感じで立てても悪くはないのかなと思う。ちなみに僕ならカメラを2台にしてステレオ撮影をするところから始めるだろう。…その前に出不精を何とかしてフィールドに行かないといけないが。

*1:あ、蚊だったら音もあるかもしれないか。いま気づいた。

*2:ローカルな座標系をどうとるかによってロールと呼ぶかヨーと呼ぶかは異なるけど、胴体軸を基準にした胴体座標系で考えるなら、主にはヨーでいいかな。ロールも少し入るとは思うので厳密に区別しなくていいとも思うけど。あと、特にホバリングの場合などでは胴体座標系ではなくストローク面座標系を使うこともあるのでそこんとこは注意。

*3:ほとんどの鳥にあるらしいが、ハチドリにはない。

Rhino の Curve Network (NetworkSrf) で NoAutoSort するとき、rails のクリック順には意味がある

まず、最初にクリックした rail が edge になる。そこから断面をぐるっと一周するようにクリックする必要がある。さもないと、 "Unable to use this curve network." と言われる。

また、どうやら断面の方も片側から順番にクリックして選択していかないとダメな模様。途中で戻ってくるとやっぱり Unable ... になる。

マニュアルに書いとけよ…(書いてなかったと思うが書いてたら悲しい)