第30回危念シェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

地獄

おかげさまで

シェル芸勉強会5周年

ということで

この5年を振り返って・・・

いる余裕がありません!

案件多し。

案件1

ソフトウェアデザインでダンシュウゲイシェルサイレン(集団シェル芸連載)が始まりました。

(私がついていけないほど変態です。)

案件2

あのシェル芸問題作が帰ってくる。

$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

ということで

やることがあるうちは昔話はしないほうがよいのでさっさと始めましょう。

自画自賛昔話はクソ

ご協力いただいた方々に感謝いたします。

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

とってつけたような2本立て

  • 某案件ネタ(HTML、ネットワーク)
  • パズル(脳みそに電極)

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる
  • manを見ながら考えましょう

ということで開始

第29回激しいシェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

 

にゃーん

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

豪華()三本立て

  • データの連結(真面目)
  • パズル(脳みそに刺激)
  • 巨大文字(そびえ立つクソ)

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる
  • manを見ながら考えましょう

ということで開始

第28回基準値を超える
シェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

 

「タイトルのネタが風化しているんですけど。」
「すぐに忘れる都民が悪い。」

近況

  • 某書籍発売
  • Pythonの本だけどシェル芸をやらないと先に進めない仕様
    • そういうものなんだからしょうがない

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

  • 原稿の編集
    • sed(普通の使い方)
    • awk

動機

  • 先ほどの書籍執筆の最後にこんなことがあった。
    1. 自分はレイアウトを見ながらでないと書けないのでLaTeXで原稿を書いていた。
    2. 提出はプレインテキストで
    3. 上田「シェル芸でやりますよ!」
    4. 地獄
      • sedとgrepのパイプライン16連結等
    5. 地獄を皆様におすそ分け ←イマココ!!

ということで

  • 地獄

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる
  • manを見ながら考えましょう

ということで開始

第27回sedこわいシェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

昨日、卒論の審査が終わりましたが

近況

  • 某書籍がだいたい書き終わりました
    • 3月末出版予定
  • たくさんの言語を使う無茶な本です。大丈夫か?
    • シェルスクリプト
    • Python
    • JavaScript(一部jQuery)
    • C言語
    • 他、HTML(Bootstrap), YAML, JSON
  • 乞うご期待

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

sed(変態)

動機

  1. 某Software Designで執筆陣が集まったときに
    ebanさんの薫陶を受けた
  2. 自分以外みんな使い始めた
  3. 置いていかれた

ということで

  • 自分自身を教育するためにsedの基本(ただし置換を除く)機能を調べて問題を作ってきました
  • 基本ってなんだっけ???
  • 解答はGNU sed限定です。特定方面の方ごめんなさい。

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる
  • manを見ながら考えましょう

ということで開始

第26回シェル芸勉強会及び
エクシェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

年末は31日まで営業中

近況

  • 読みました???
    • まさかここに来たのに読んでないことはないですよね?
      • ないですよね?
        • ないですよね?
          • ないですよね?
            • ないですよね?

以上。

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

拡張子が.pptx, .docx, .xlsxのファイルの扱い

と言ってもMicr○s○ft ○fficeの使い方ではありません

Micr○s○ft ○fficeのドル箱ソフトの
生成するファイルを
基本ダーターのシェル芸で
操作してもらいます。

  • 読み
  • 書き
  • 生成

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる
  • 今回はシェルスクリプトOK(ややこしいので)

ということで開始

第25回もう4年もやってんのか
シェル芸勉強会

 

千葉工業大学 未来ロボティクス学科 上田 隆一

最近、学科の先生たちが
「おたくの学科、シェル芸の人いますよね?」
と言われて迷惑しているらしい

近況1:
シェル芸勉強会4周年

  • 第一回: hbstudy #38 にて(2012年10月27日)
  • これまでの参加延べ人数
    • 961人
    • 今回でだいたい1000人

勉強会のフォーマット

  • 2ヶ月に1回開催
    • 基本、偶数月
    • たまにイベントに併設
  •  午後の3時間で8問を解く(当初は10問)
    • 間に10〜15分の休憩

運営の方針・手の内

  • 基本、皆様のおかげですので、あまりベラベラ話すものでもないですが、何かの参考になれば
  1.  「2ヶ月に1度」だけは必ず守る
  2.  省エネ運営・こじんまりと
    • 過度に組織化しない
    • ネット上での盛り上がりを期待
  3.  自分から無理に盛り上げない
  4. ゆるく

これからもゆるくお付き合いください

近況2:
ソフトウェアデザイン

1月号(12月発売)で何かが起こる

近況3: 執筆

本書いてます。シェルとPythonとCというごった煮感。

 

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

今回の問題

  • またパズルです!!!
  • 小さい問題が多いので別解たくさんおなしゃす!!!

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる

ということで開始

第24回◯◯o◯裏番組
シェル芸勉強会

 

(LLな皆様すみません)

 

千葉で一番大きな工業大学

上田 隆一

#llot (違う)

近況1

 

近況2

 

  • 今回は第24回
  • 1年に6回なので丸4年やった計算
  • 4年間の統計を取ろうと思ったけど今回の数字がないので次回になります。
  • ちなみにこれまでの参加人数の統計はココ。もうすぐのべ人数が1000を超えます。

今回の問題

パズル
問答無用

シェル芸とは

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

進め方

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす
  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる

ということで開始

ROS(robot operating system)を触ってみよう

 

千葉工業大学 上田隆一

本日の内容

あり合わせ or 他人の資料ですみません orz

 

 

ROSとは

 

  • 2007年からWillow Garage社にて公式に
    開発が始まったロボット用ミドルウェア
  • 主にUbuntu上で動く

ROSの主たる機能

 

  • 機能はいくつかあるが、主な機能はプロセス間通信
  •  

    • ロボットのプログラムを一つのプロセスに押し込まないで、複数のプロセスに分けて処理させる
      •  

      • 例: モータに指令を出すプログラム、センサの値を読むプログラム、センサからモータの出力を決めるプログラム・・・

プロセスを分ける
メリット・デメリット

  • 各プログラムで違う言語が使える
    • 例: モータの制御はC++で高速化、行動の場合分けはPythonで楽する
    • 別の言語で書かれたプログラムを連結しやすい
    • コンポーネント化しやすい

     

  • プロセス間のリアルタイム性は保証されない
    • これはしょうがない
  • 一貫性を保つのがむずかしくなる
    • 各プログラムのインタフェースはどうするのだろうか?

型の導入

 

  • ROSは、プロセス間通信に「型」を持ち込んでいる
    • 異なった原語でも型をつけてデータを渡せるようにすることで、整合性が保たれるようになっている。

     

  • 以上の仕掛けで、ロボットの世界ではROSの仕組みでつながり合えるオープンソースが出揃うことになった
    • ロボットでなくてもセンサやアクチュエータの制御に便利なので本日紹介

導入例

 

第23回梅雨でモワッとした
シェル芸勉強会

(全然モワッとしてないじゃないか)

 
 
立場を超えた存在だと妄想したいので所属は書かない

上田 隆一

近況1

 

OSunCを千葉工大でやります!!!

 

http://ospn.connpass.com/event/33412/

近況2

 

今回の問題

 

オープンデータを扱います

 

簡単な統計処理。簡単。

 

問題で使うためにデータを探していたら
立派なサイトがあった

 

期待して「データセット」をクリック。
データがザクザク出てくるに違いない。

PDFばっかり

 

何これ?俺がオープンデータというものを勘違いしているんですかね?確かにPDFはデータといえばデータだけど、PDFで文章を公開するのは単なる情報公開であって、オープンデータかというとちょっと違うと思うんですよね。エクセルでデータ公開しているところもありますが、何なんですかね?国民は必ず某社に安くないお賽銭を払うんですかね?これ、どこが受注したんですかね?コンサルとか入れちゃったんですかね?こういうデータはLinuxとかBSDのイメージのように白い素のHTMLのサイトに置いておけば勝手に検索エンジンに引っかかるようになるんですよ。お金ドブに捨ててませんかね?学者って諮問委員会とか呼ばれたりするんですけど、誰か異を唱えなかったんですかね?単なるエビデンス作りですかね?ああいうところ喜んで行く人(以下略)。まあいいです。俺もこんなところで遠吠えしてないで乗り込めばいいんですよ。こないだそういう会に行ったんですよ。オープンデータの件ではありませんけどね。一人ではどうにもならないんですよ。ああいやだいやだ。一度大学やめたんだからUSPでソート速いwwソート速いwwwwww!!!デュフフフブブッフッフォ!!!!ってやってた方が幸せだったかもしれないですよ。どこにも自分の求める天国なんて存在しないんですよ。たっちゃんのばか!もう知らない!

データってなんだろう?

 

シェル芸に足を突っ込めば一部だけど見えてくるかも

シェル芸とは

 

マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力のこと。

進め方

 

  • 1問に15分強
    • 問題に対するアプローチを考える
    • それを実現するコマンドやオプションがないか調査
    • 手を動かす

     

  • チーム分け(6人くらい)
    • 玄人は教える
    • 素人は教わる

ということで開始

移動ロボットの
ナビゲーション技術

 

千葉工業大学 上田隆一

本日の内容

 

  • 自身の背景
  • 研究室
  • 移動ロボットのアルゴリズム
  • 自身の研究

自身の背景

 

ソフトウェアでロボットを動かす人

 

上田研究室

 

  • 15名
    • B3: 13名、B4: 2名

     

  • 「自律ロボット研究室」
    • ロボットの状態認識・行動決定を研究
    • 機械学習も道具として少し扱う
    • RoboCup@Home
      • 学科で連携。上田研の貢献はまだまだ

最近の活動

 

3年の皆さんは使う道具(ハード/ソフト)の評価中

cnn

「トイプードル」だそうです。

移動ロボットの
ナビゲーション

 

  • ナビゲーション: 航海術
  •  

  • その昔、課題となったこと
    • どこにいるか知りたい
    • 正確な地図を知りたい
    • 安全で短い経路が知りたい
Chasing the light.jpg

遭難したらおしまい

By George Grie投稿者自身による作品, [1], CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=3298445

ナビゲーション技術

  • 自己位置推定
  • SLAM(simultaneous localization and mapping)
  • 目的地までの経路探索

 

最近(ここ20年)の考え方

 

  • 確率論(ベイズ推論)の導入
    • 自身の分かっていること/分かっていないことを
      確率分布で表現

    • センサが良くなるまでのつなぎ扱いになることも

確率分布の記述

 

  • ガウス分布
    • カルマンフィルタ(1960年〜)

     

  • 格子地図
    • 状態空間を切って格子一つ一つに確率を記述

     

  • パーティクルフィルタ
    • 確率分布から標本抽出した標本の分布で記述

 

よく使われるアルゴリズム

 

 

  • graph-based SLAM
    • 精度行列(情報行列)に移動履歴やセンサでの
      観測履歴を登録し、後で最も精度行列を操作して
      ロボットの経路と地図を得る
    •  

  • visual SLAM
    • 画像の重ね合わせ
    • 画像どうしの相対姿勢からカメラの経路を推定
      (visual odometry)
    •  

ROS

 

  • ロボットのためのプロセス間通信の仕組み
    • 仕組みも重要だが使いこなすにはオープンソース活動の理解が必須
      • GitHubやLinuxのパッケージの利用
      • コミュニティーへの貢献

RoboCup@Homeでの利用(参考: インストーラのコード)

自身の研究

 

  • 海馬とナビゲーション
  • 情報不足な中での行動決定

海馬とナビゲーション

 

  • 哺乳類の海馬
    • 記憶や空間情報を扱う
    • 移動ロボットのアルゴリズムとの関連性を調査中
    • 海馬モデル検討会@ドワンゴ

CajalHippocampus (modified).png
By original: Santiago Ramón y Cajal (1852–1934)
derivative = Looie496File:CajalHippocampus.jpeg from: Santiago Ramón y Cajal (1911) [1909] Histologie du Système nerveux de l’Homme et des Vertébrés, Paris: A. Maloine, Public Domain, https://commons.wikimedia.org/w/index.php?curid=3908039

自身の成果

「Particle Filter on Episode」

 

  • Monte Carlo Localizationを記憶(時間軸)の上で実行
    →学習アルゴリズムになる
    • 記憶を無限に蓄えられたら生物はどんな学習をする?
      という思考実験から
    • 7月に上海で発表

情報不足な中での行動決定

PFC(probabilistic flow control)法

 

問題

pfc_problem

PFCで得られる行動

実機実験(改良中)

 

対称・ほぼ自己位置推定できない環境でのナビゲーション

 

本日のまとめ

 

  • 移動ロボットの分野には確率論が流入し続けている
    • 機械学習の導入でさらに確率・統計の扱いが重要に

     

  • 移動ロボットを始めるならROS
    • 文化的な背景を知るとなじみやすい

     

  • 上田個人の研究
    • 応用例を増やしたい