週末報

Pocket
LINEで送る

日曜夜に週末やったことのまとめをするのが習慣化してきました。

火曜に名古屋で話をするのでスライド

スライドを作っててなんとか完成させました。ファジー学会の第1回「動きの様相から先を読む」研究会(名古屋工業大学にて)という場でお話しさせていただきます。今回は珍しく「貴様の研究について話してよかろう」と言われましたので、自分の昔の研究とか今の研究とかを遠慮なく吐き出します。

簡単な価値反復のサンプル

そろそろ後期の講義の準備に取り掛かろうということで作りました。後期に確率ロボティクスという講義を受け持ってるんですけど、ここ2年、数式を書き殴るだけだったのを反省して、Jupyter notebookベースで講義を進めようと準備しています。

某原稿と某原稿の手直し

世に出るのは8月。

その他

子供が「深海2017~最深研究でせまる“生命”と“地球”~」という特別展に行きたいというので、上野の博物館行ってきました。

こんなのもいました。深いところにいるんですね。別の生物の説明に、これより深いとタンパク質の分子自体が水圧で壊れてしまうと書いてありました。

・・・と書いていて、なんで自分、ロボット屋なのに真っ先にこれ↓を貼らないんだろう、と思って頭に「?」が・・・。URGが四つとアラウンドビューモニター用のカメラが周囲に取り付けられておりました。NISSANとシールが貼ってあってアラウンドビューの画像が映されてました。

うちの子が天井にカメラがあると思って、顔を上に向けて自分の姿を写そうとしてましたが、横についてるカメラを合成して作ってるから上向いてもダメよーと説明しました。違ってたりして。

生物には無駄なものがほとんどないなーなどと、つい見とれてしまいます。そういう意味では、やっぱりロボットを見てるより生物(人間を含む)を見てる方が、自分には幸せなようです。

寝る。

Pocket
LINEで送る

週末のまとめとか今週の告知とか

Pocket
LINEで送る

週末はだいたいウェブ工作員をしているというのがここ数週で、さすがにちょっとは子供連れて遊びに行った方が世間体的にとか思い出した・・・けど、旅行は地理や歴史の知識がついてからでないと無意味だとわりかし確信を持っているので、近所で遊んでればいいとか正直思っており。と言いつつ行くときは行くんだけど。

ROSをUbuntu 17.04にインストールするスクリプト

古いThinkPadに17.04をインストールしたので、16.04用のROSのインストールスクリプトからちょっといじって作りました。今度魔が差したらRaspberry Piでも試したいところです。

確率ロボティクスの講義資料まとめ

中部大学での3回シリーズのものをまとめました。3回目は今週の水曜ですが、火曜に下記のように疲れる仕事が入っているので前倒し。

火曜に古巣で

セミナーに登壇します。大丈夫でしょうか?自分のことが信用できません。

研究

新種のアルゴリズムと思われるものをROS上に実装して、自宅でロボットなしで動かしてみて入出力の確認をしました。明日アサイチで実機で動作確認予定。

家事

ひたすら家族をフィード。アラの味噌汁を完成度高く作れた。全員分のシーツを一気に洗濯して一気に干したら一気に乾いたので気持ちよかった。

シェル芸の問題

必要があるので少し考えました。乞うご期待。

 

現場からは以上です。

寝る。

Pocket
LINEで送る

Software Design, ラズパイマガジン, システム/制御/情報

Pocket
LINEで送る

こちらでは悪質な記事を書きましたが、最近立て続けに出版があったので真面目に報告いたします。

Software Design 2017年1月号

シェル30本ノックを6ページくらい書き、あと全編にわたっていろいろ関与しました。

ラズパイマガジン 2017年2月号

日経Linuxの4-6月号の再掲です。

システム/制御/情報

システム制御情報学会の学会誌に総説を寄稿いたしました。まだWeb上に情報がありませんが、

  • 上田 隆一:
    “確率ロボティクスの歩みと将来展望,”
    システム/制御/情報, Vol. 60, No. 12, pp. 503-508, 2016.

です。著者略歴で「シェル芸」という言葉を出しました。

以上、よろしくお願い申し上げます。

Pocket
LINEで送る

日記 —tamiyahack(仮)などなど

Pocket
LINEで送る

#tamiyahack(仮称)

研究室やその周辺で、タミヤの模型を改造して安価なロボットのレシピを公開するという企画に取り組んでおり。普通、小さくても5万以上はする自律ロボットが1万円以内で調達できれば楽で、しかも既製品で乱暴な少年相手の実績が極めて豊富なタミヤ製ならメンテがいらんなあというノリ。第一弾ができました。ただ、ちゃんとレシピを公開するまでは完成とは言えません。いや、GitHubに公開してプルリクエストが来るようになってやっと完成かと。

これは電子回路の教育用ですが、PCから指令を送れるのにも別の学生さんが取り組んでおります。

調べるといろんな人が個別にやっていますが、これは「シェル芸」のように何かの合言葉で繋がっていた方が面白い。調べたら、「タミヤハック(Tamiya Hack)」という言葉があると面白いなあなどと。叱られそうですが。

ネットで調べたらまだ誰も使っていない模様。

カンデル神経科学

全脳アーキテクチャの隅の隅にいる人間として、神経細胞の仕組みをちゃんと知っておかないと以後、非効率だということで読破を目指しており。木曜から200ページぐらい読んだ。化学は物理より微妙に得意だったのでなんとかなっている。

こういう勉強をしていて思うのは、コンピュータの外の方が膨大な世界が広がっているなあということ。当たり前なんだけど。

ここまで読んだ。理解しているとは言ってない。
ここまで読んだ。理解しているとは言ってない。

クラスタリングのお勉強

自分が「Lloydアルゴリズム」と呼んでいるものを最近の人(?)はK-means法と呼んでるらしい(違うかもしれんが)(そして人工知能ブームの犠牲者はクラスタリングのアルゴリズムのことを「人工知能」と呼んでいたりいなかったり)、というくらい、自分の知識が周囲の流行に置いていかれてたのを相当根に持って気にしていたので追いかけている。

今日読んでたのはこれ。難しい。どうやってクラスタからクラスタの分布のパラメータを計算するのかが書いてない。自明なんだろうか?なんとなく分かるが確証が欲しい。最後にサンプルコードのURLが書いてあったので予算申請の合間に動かしてみる予定。

寝る。

Pocket
LINEで送る

近況: 日経Linux、RoboCup2016(世界大会)出る、投稿論文通った他

Pocket
LINEで送る

おかげさまでいいニュースが多くて忙しくしています。現在は日経Linuxの6月号の原稿と、推薦をもらったので和文の投稿論文を執筆中です。どちらも3/31締め切り。死ぬ。

日経Linux4月号発売

今月の特集は「大門」だそうで、一体何のことでしょうか。都営線の地味な駅のことでしょうか。大門刑事でしょうか。それとも私の実家の方で作っている素麺のことでしょうか。Linuxとの関係は何なのでしょうか。(叱られるぞ。)

ファイル 2016-03-09 22 02 10

何の特集かは商品を手にとって是非ご自身の目でお確かめください。

あ、今月の私の連載は「ジャイロを使って比例制御でロボットをまっすぐ走らせる」です。

別冊も、あまりにもド直球なタイトルですが、中身が気になりますね。

CIT Brains @Homeが世界大会に出場します

私もお菓子配り係として参加している家事ロボット作るぞチーム「CIT Brains @Home」が、結成からわずか4ヶ月で世界大会に出ることになりました。皆様おめでとうございます。今年の世界大会(RoboCup2016)は、6月に東ドイツのライプチヒで行なわれます。秘密警察が怖いですが、西側のお菓子をたくさん持ち込んで民主化の起爆剤にする所存です。とりあえず税関でお菓子に法外な関税をかけられないように注意します。

真面目な話をすると、チームではスポンサーを募集しております。本来ならこちらから回ってお願いすべき話なのですが、万が一ご興味があれば@ryuichiuedaにお知らせくださいませ。家事ロボットは人の声を認識する、腕や台車部分を自動制御する、複数のPCをロボットに載せた状態で安定させて動かす等、様々な技術の検証や統合にとても良い課題です。もちろん、掃除以外もこなすルンバを作るという話ですので、今後の需要も非常に期待できます。チームの結成当初から一緒に戦っていただけるパートナーを探しております。

もちろん、ロボットにステッカーを貼ったりウェブサイトにバナーを貼ったりという、影響力はわずかかもしれませんが直接的な特典も検討いたします。

投稿論文通った

復帰後2本目の投稿論文の採択通知をいただきました。プレプリントをアップしました。こんなやつです。

内容は自分の博士論文を少し進めたもので、でっかいPCで数値計算で求めたロボットの行動規則がでかくてマイコンに載らないのでどうやって圧縮しようかという話です。マイコン制御の倒立振子を作って実機実験をやりたかったのですが、自分に作る腕がないので制御対象はシミュレーションの二重振子になりました。

その他

そろそろ4月のシェル芸勉強会の支度をしないと・・・

寝る。

Pocket
LINEで送る

SoftwareDesignで紹介した本の紹介

Pocket
LINEで送る

本当は仕事したいんだけど眠くて眠くてブログくらいしか書けません(洗濯機待ち)。SoftwareDesignのかまペの部屋で本を3冊紹介したのですが、写真にちっちゃく写っただけなので、ここで紹介しておきます。

タイアップアフィリエイトみたいになってますが、リンクが楽なんだと言い訳しときます。微々たるものです。

サイバネティックス

言わずと知れたロボット屋にとっては必読の古典です。SoftwareDesignの写真にあるのは、大学に復帰する時に記念に買ったハードカバーの古本(確か60年代に製本されたもの)です。

内容は非常に多岐に渡るのですが、私は自分のやっていることに引きずられて「動くもの(生物、機械)の情報学の本」という認識でいます。実際はもっと広いです。

個人的には、ウィーナー先生にはいろんなものが見えすぎており、文章に悲観的というか醒めているのが滲み出ているところが好きです。こういう人好きです。

異端の統計学 ベイズ

数学の本でなく読み物です。頻度主義とベイズ主義の抗争のドロドロの物語が記述されています。「統計には未だに宗教論争というか哲学的な論争がある」というのは、あまり専門の学科以外での統計の講義では強調されない(混乱の原因になってないだろうか?)ので、そいういう話を補充するにはちょうど良いかと。

デクステリティ 巧みさとその発達

これもロボット屋は読むと良いかと。「動物がどうして体を上手に使えるのか」に迫っていく本です。私が助手の時に、優秀な学生さん(今や有名な人ですが)が主宰した勉強会で読んだ本です。

これも内容は非常に濃いのですが、個人的に好きなのは「体はセンサの届く範囲に合わせて進化している(かなり昔に読んだのでちょっと正確でない表現かもしれません)」という部分で、今やっている研究の大きなヒントになっています。

ということで、意図せず値段の安い順に並べてしまいましたが、アフィリエイトが嫌いだったら自身で検索して購入していただければと。

しかし、自分、すぐ忘れちゃう人なので、人に「読みましたよ!」とか話題をふられると困るかも。そういう時は、素直に教えを乞います・・・。

寝る。

Pocket
LINEで送る

日記 —自己位置推定の実機実装

Pocket
LINEで送る

必要に迫られ、およそ10年数ぶりに実機用のパーティクルフィルタのコードを書いています。売るものではないので公開してますが、ロボットの場合、ハードウェアが違うとコードがそのまま使えないのであまり反響はありません・・・が、ロボットは日経Linuxの連載で使っているRaspberry Pi Mouseで市販品なので、ちゃんとお化粧して教科書書いて小銭を稼ぐ使ってもらうのが目標です。

リポジトリを見ても、「ああC++だなあ(逃げよう)」ということくらいしか分からんのでここに何やってるか書いておくと、次の写真のような環境で、ロボットに地図をもたせて、地図のどこにロボットがいるのか自分で把握させるコードを書いています。センサ情報はロボット前面の四つの赤外線センサから得られます。また、ロボットがどれだけ動いたかはモータへの指令から求めることができますが、壁に接触しながら動くと訳の分からん挙動を示すので大変です。

スクリーンショット 2015-08-09 20.14.35

ロボットは次のような地図を持っています。ロードした地図をテキストで描画する確認用プログラムの出力を示します。シェル芸でしょうか。いいえ、C++です。

uedambp:map ueda$ ./main ./map | head -n 15
+---+---+---+---+
|       |       |   
+   +   +   +   +
|       |       |   
+   +   +   +   +
|       |       |   
+---+   +---+---+
|   |           |   
+---+---+---+---+

この出力をFacebookに貼りつけたら「Rogueみたい」というコメントを書き込むおじさまがたがたくさん釣れたんですが、さあなんのことやら。

今日と明日はロボットのいる大学に行けないのでロボットへの行動指令とセンサの値のログを採取して開発中ですが、とりあえずそれっぽいものができましのでgifアニメをはりつけます。

animation

作っているコードはパーティクルフィルタというものです。地図の上にロボットの分身(ブツブツ)をばら撒いて、行動とセンサの履歴が説明できない分身を殺しまくって、説明できるやつを増やしてロボットの実際の位置に分身の位置を寄せていきます。

上の実行例は実際のロボットの位置を書き込んでないのですが、最終的にはロボットの最後の位置近くにブツブツが固まりました。

まだなんのことかサッパリ分からんと思いますが、続きは某所での講義で。分かってる人には「壁にぶつかったあとのパーティクルの挙動のモデル化が難しかったけど適当な方法でもうまくいった」とお伝えします。

寝る。

Pocket
LINEで送る

GlueLangのif文相当の処理をまたいじったがこれで最後にしたい

Pocket
LINEで送る

眠いです。

GlueLangのif文及びその周辺、またいじりました。

やっぱり波括弧やめた

前回、複合コマンドをこんなふうに書くようにしましたが・・・

uedambp:SRC ueda$ cat hoge 
#!/usr/local/bin/glue
import PATH

{
	echo 'abc'
	echo 'def'
} >>= rev
uedambp:SRC ueda$ ./hoge 
cba
fed

こうしました。やっぱりHaskell, Python系の書き方にしようとしているのに波括弧はあまり合わんという判断。波括弧が最終行の最後にあったら認識しないようになってましたし・・・(アカン)。doの次の行からがサブシェル扱いされます。最初の行のインデントがオフサイドラインになります。

uedambp:GlueLang ueda$ cat huge.glue 
#!/usr/local/bin/glue
import PATH

do
	echo 'abc'
	echo 'def'
>>= rev
uedambp:GlueLang ueda$ ./huge.glue 
cba
fed

procにもdoが必要に

これに伴い、procで2行以上書くときにもdoが必要ということにしました。イコールの後に一行で書くときは不要です。

uedambp:GlueLang ueda$ cat hoge.glue 
#!/usr/local/bin/glue
import PATH

proc hoge = do
	echo 'abc'
	echo 'def'

hoge >>= rev
uedambp:GlueLang ueda$ ./hoge.glue 
cba
fed

if文の表現

んで、最終的にif文に相当する表現は次のようになりました。前回の

#!/usr/local/bin/glue
import PATH

{
	false
	echo 'hoge'
} !> {
	echo 'foo'
} !> {
	echo 'bar'
}

は、

uedambp:GlueLang ueda$ cat hoge.glue 
#!/usr/local/bin/glue
import PATH

do
	false
	echo 'hoge'
!> do
	echo 'foo'
!> do
	echo 'bar'

となりました。

ただ、この書き方だと前回言ったようにサブシェル内のコマンドが全て条件文になってしまう(if文というよりもtryみたいになる)ので、ちゃんと条件と条件が満たされたときに実行される部分を分けたいときは、

uedambp:GlueLang ueda$ cat if1.glue 
#!/usr/local/bin/glue
import PATH

test 1 -eq 2 ? do
	echo 'first subshell'
	echo '1 = 2'
!> test 1 -eq 1 ? do
	echo 'second subshell'
	echo '1 = 1'
!> echo 'third command'
###実行###
uedambp:GlueLang ueda$ ./if1.glue 
second subshell
1 = 1

と書いてもらうことにしました。?の左側に条件、右側に条件がtrueのときに実行される部分を書きます。別にサブシェルを使う必要のないときは、

uedambp:GlueLang ueda$ cat if2.glue 
#!/usr/local/bin/glue
import PATH

test 1 -eq 2    ?  echo '1 = 2'
!> test 1 -eq 1 ?  echo '1 = 1'
!> echo 'third command'

となります。ちょっとスッキリしませんが、if文自体あんまり使うことは無いはずなので、これでよしとしたいです。

実は「?」は、「!>, >>, >>=」と同じグループの演算子なので基本的にこれはif文でなくコマンドを接続しているだけです。ですので、

uedambp:GlueLang ueda$ cat if3.glue 
#!/usr/local/bin/glue
import PATH

test 1 -eq 2 ? echo '1 = 2' !> test 1 -eq 1 ? echo '1 = 1' !> echo 'third command'

と書いても動きますが、さすがにインデント入れないと可読性皆無になりますね。

ところで、だれかGlueLangの開発についてこれてますかね???

あかん。孤立気味だ。

寝る。

Pocket
LINEで送る

GlueLangのif文相当の処理をガラッと変えてみた

Pocket
LINEで送る

今日は息抜きにGlueLangをいじっておりました。といっても言語の開発なので、処理系のバグと、スクリプトのバグの両方に気をつけなければならず、なかなかイライラするものですが・・・

機能追加1: 複合コマンド

続きを読む GlueLangのif文相当の処理をガラッと変えてみた

Pocket
LINEで送る

確率ロボティクス復刊。ドサクサに紛れて昔話4(売り切れと、関係ないけど失踪と)

Pocket
LINEで送る

また昨日に引き続き、確率ロボティクス復刊記念、自意識過剰独白です。

確率ロボティクスは確か半年くらいかかって初版が売り切れました。値段や学術書であることを考えると売れた方でした。しかし、ご存知の通り増刷はありませんでした。なぜかというのはこの時が2008年だということを考えて理解する必要があります。私が知った内側の話はしませんが、マイコミさんは外から見てるとウェブの方に舵を切っている最中でした。会社の名前もその後マイナビになったということは、まあ、そういうことです。リーマンショックも・・・もしかしたら関係していたかもしれません。

続きを読む 確率ロボティクス復刊。ドサクサに紛れて昔話4(売り切れと、関係ないけど失踪と)

Pocket
LINEで送る