転職して3ヶ月経過しました。
主にロボ界隈の皆さま、ご無沙汰しております。
@fudekunJPです。
随筆を書くために、数年の眠りから"はてなブログ"を叩き起こしております。
表題の通り、2024年1月1日付で転職しました。(今更感あるブログ→理由は後述)
転職先は、ロボットと直接的には関係無いのですが、コンピューティングとかネットワークの深いところを某日系企業の研究部門でやらせて頂けることになりました(よって、やること自体はあまり変わってないとも言えます)
前職での研究
ど真ん中ではない研究
元々、新卒時は、通信とかセキュリティの"システムエンジニア"に分類される職に従事していました。ロボ界隈でもそれに近いところで外部発表とかやらせてもらってました。
これについては、サービスロボットど真ん中な研究開発に従事している方から見ると随分間接的なこと言ってるなーとか思われていた節はあるかもしれません。
(セキュリティ警察は嫌われますからね)
RD??Xについて
前職で開発していた、OSSですが、私が辞めるということで公開停止(削除)となりました。個人的にはリードオンリーリポジトリとして残しておきたい気持ちがあったのですが。偉い人には、リードオンリーの意味が分からなかったようです。一悶着もふた悶着もあり、なぜかほぼ無関係な???部門なども出てきてお祭りになったところで時間切れ、削除と相成りました。。。
なお、特許とか商標に触れない範囲のもの(insiders ブランチ)で公開していたものはなんとか復活させたい。。。。本業との兼ね合いをどう作るかが腕の見せどころですね。
新職場での研究
深くは言えませんが、研究内容の成果は間接的には、サービスロボットでも利用されるというようなところでしょうか。今後、成果を外部発表していけるよう頑張ります。
なお、通勤の電車が都心に向かうのと逆方向なので快適に乗れること、非常に高い価値を感じます。
ロボットと僕
以下はチラ裏。こんなロボット好きも居たなと思って頂ければ幸いです。
ロボットとの出会い
中学生の時、高専のオープンキャンパスで3日間、LEGO マインドストームを触ってすっかりロボットの面白さに取り憑かれたのを今でも鮮明に覚えています。これをキッカケに、高専を受験したわけです。
その後、ロボット全然出てこないじゃないか!(3年生のとき、LEGOマインドストームを使った授業、4年生の時にメカトロニクスとかん授業はあった)とか、高専特有のキツさに心も体もすり減らしながら、5年生〜専攻科2年生にかけてロボット系の研究室入りを勝ち取ることが出来たので3年間、ドップリ好きにロボットを触れました。
才能が無い
多少は賢さに自信があったのですが、高専にはリアルに勉強しなくても、授業内容が頭に入ってるやつが3人くらいいた。いや、冗談ではなくマジで教科書をめくって内容を把握して、同級生の僕らにテスト前に講座してくれていた。(本当は、徹底的に予習や復習をしていたかもしれないが)
ロボット系の研究室配属後も同様です。 当時の僕は、天才達に対する劣等感を研究のエネルギーに変える力が無かったので
「さっさと就職して、このレースから降りたい」
という気持ちから、前職の地元システムインテグレーション的会社(SIer)に就職。
ETロボコン
北陸の端っこでシステムエンジニアになったので、もう生涯通してロボットに触れることは無いだろうと思っていました。が!
配属先の新人研修が ETロボコンでした。 ETロボコンはLEGO マインドストームを使った障害物競走部門+設計を評価して競い合う部門の二階建てな大会。
2010年当時は、PID制御でライントレースするだけでヒーローになれた。北陸地区はエントリー数は当時は少なかったのでトロフィー的なものまで貰えて、気が引けたが、会社の偉い人にも伝わって結果的にはそれも、2014年以降の活動に対して良かったのだと思う。 卒業研究のほんの一部の成果がこんな形でウケるとは思わなかった。
予定3ヶ月、実績30ヶ月の東京出張
2012年当時、システムインテグレーション的会社(SIer)は、こういう打診をよくしていた。 ※2024年の今、流石にこういうことはやらないと聞くが。。。
ともかく、東京に来た。業務内容は、研究開発部門(私が前職の退職前までお世話になった部門)のメンバーが考えたアルゴリズムや仕組みを、現実に合わせて作り込むといったところ。研究開発部門のメンバーと苦楽を共にする案件であったので、ロボット担当としてに再びカムバックする際、白羽の矢が当たったわけではある。
時に、参画当初、研究開発部門のメンバーが優秀過ぎて、私自身の技術が、必要レベルに全く追いついていない状態だった。併せて、予実が全く合わない出張は、スグに帰るだろうと思い、MacBook Airとちょっとした着替えだけを持って馳せ参じたたため余暇を持て余す状態。
このバックパッカー的環境は、結果的に良かった(当時は辛かったが)
とにかく、勉強した。出張直前に手に入れていたMacBook Airはプログラムをさせてくれるモチベーションをくれたし、他に暇つぶしも無かったからだ。
30ヶ月で北陸に帰るころには、なんでも屋さんとして一定の地位を確立するに至った。
そしてPepperとROS Indigoが来た
2014-16当時、情報技術は熱を帯びていた。深層学習しかり、データサイエンティストなんて言葉もアチアチの中であった。そこに来ての、見出しロボットキラーコンテンツ二つ。日系のシステムインテグレーション企業はどこもかしこも食いついた。 あれはなんだったのか?総括は必要かと思うが、自分が20代後半の遅まきでも、界隈に入るキッカケが出来たことに大いに感謝している。
日系のシステムインテグレーション企業が撤退戦を2018年頃、早々にするなか、前職場は踏ん張った。ロボットハードを直接的に対象としないという戦略は、本業っぽさを出せたのであろう。
また、細く長く研究が続けられたことによって、いろいろな成長があった。箱庭メンバーとの共同開発、日本ロボット学会のペーパー通せたことやROSConJPでの発表など。このような目立った結果は、前職ロボット研究開発プロジェクトを実施していた後半も後半である。この点、改めて感謝しかない。
何か新しいことをやるためには一朝一夕ではどうにもならないので長く場に居ることが大切なのかもしれない(なお、踏みとどまれなかった模様)。
最後に
このエントリー、2024年1月1日に上げようと思っていました。一方で、同日、能登半島で強い地震があり、北陸に帰省していたため公開せずにいました。
ROS Indigoを使うがためにRaspberryPi3に「Ubuntu 14.04」をインストールし、WiFiまで使えるようにする方法
まえがき
ROS Indigoを使うがためだけに、RaspberryPi3に「Ubuntu 14.04」を入れたい。
既報として、RaspberryPi3にUbuntu 14.04とROS indigoをインストール | RT MicroMouseにて、OS及び、ROSのインストール方法が整備されているのでこれに従いインストール。
この方法でRaspberryPi3でUbuntu14.04環境は手に入れることが出来るのだが、RaspberryPi3の売りの一つであるWiFiが使えない!!!!!!(少なくとも僕が試した内では。。。)
いろいろ試行錯誤の末、なんとかWiFiが動かせるようになったのでその手順をメモ。
(なお、特にROS Indigoにこだわりが無ければ、「Ubuntu Mate 16.04」のイメージが公開されているのでそれを使うのがいいと思う。) ubuntu-mate
前手順
RaspberryPi3にUbuntu 14.04とROS indigoをインストール | RT MicroMouseに従い、OSインストール。(ROSはまだインストールしない。)
WiFi接続に必要なファームウェアをインストール
sudo apt-get install linux-firmware wireless-tools wpasupplicant
RaspberryPi3用ファームウェアの用意
今回最大の肝。RaspberryPi3のWiFiの利用には、pi 3 - Configure WLAN for RaspberryPI3 using image created with Yocto - Raspberry Pi Stack Exchangeあたりを見ていると、linux-firmware-brcm43430が必要らしいということが分かる。Ubuntu14.04のリポジトリからsudo apt-get linux-firmwareしても上記のファームは入らないようである。
なので、とりあえず今回は、次のファームを「Ubuntu Mate 16.04」から引っこ抜いた。引っこ抜いたファームを、/lib/firmware/brcm/へとコピーする。(ダウンロードはぱっと探した感じ見つからない。)
* brcmfmac43430-sdio.bin
* brcmfmac43430-sdio.txt
cp brcmfmac43430-sdio.bin /lib/firmware/brcm/ cp brcmfmac43430-sdio.txt /lib/firmware/brcm/
WiFiの設定
- インターフェイスの設定。
sudo vi /etc/network/interfaces allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- アクセスポイントの設定。
sudo wpa_passphrase {SSID} {PASS} > sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
- 無線LAN起動
sudo ifup wlan0
- 遅くならないように、wlan0の設定を変更。
sudo vi /etc/rc.local iwconfig wlan0 power off
所感
とりあえず、WiFiは動くようになった。Bluetoothに関してはかなり難易度が高い模様。(挫折) Bluetoothが動く方法があれば教えてください。
Angular.jsで"緯度経度"の入力を補助するDirective、angular-geopickerを作った
前置き
35.689265,139.691763.......................長い、長すぎる。
ということで、Angular.jsの勉強を兼ねて、
需要はあまりなさそうだが、入力が面倒な"緯度・経度"の数値を簡単に入力するためのテキストボックスのディレクティブ、angular-geopickerを作ってみた。
デモページ
http://fudekun.github.io/angular-geopicker/

こんなことができる。
使う側
- このテキストボックスにフォーカスすると、地図(Open Streat Mapより)がポップアップする。ポップアップした地図上で緯度経度の値が欲しい場所をクリックすると、テキストボックスにはクリックした場所の緯度経度を入力することがきできる。
- クリックした場所には、マーカーが表示される。マーカーはドラッグ&ドロップで移動可能で、テキストボックスの入力はマーカーの座標に追従して変化する。
実装側
- 小数点以下の桁数が指定できる
- デリミタが指定できる
- 10進数、60進数の指定ができる
今後
できたらいいな。
- 住所とか郵便番号とかへの変換
- 日本測地系への変換
- MGRSへの変換
Raspberry PiにPidoraをインストールしてみる
Raspberry Pi Model Bを購入した。
前々から、外付けHDD(2TB)がほとんど使われていない状況が続いておりせっかく買ったのに勿体ないと感じていた。(MacBook Airに買い換えてから持ち運ぶ度にいちいちUSBケーブルをつなぐのが面倒になった。。。)
そこで、Raspberry Piを使って外付けHDDをネットワークドライブ化しようと画策。ついに秋葉原の千石電商にて購入するに至った。
以下、備忘録。
環境
イメージの書き込み:Mac OS X(10.9.3)
SDカード:microSDHCカードをアダプタを使って利用(Transcend製、Class4)
ネットワーク:有線LAN接続(既存DHCPをIP固定で利用)
OS選び
Raspbian or Pidoraかで小一時間悩む。
NOOBS (New Out Of the Box Software)というものがあって、それを使えば複数のOSをSDカードにしまっておいて起動時に選択ができるようになる模様。しかし、今回は手元のSDカードが小さいため単一のOSに絞ることにした。
最終的にはCentOSになれていることもあってPidoraを採用。
以下からPidoraのイメージをダウンロード。
http://www.raspberrypi.org/downloads/
イメージを書き込み
ダウンロードしてきたZIPファイル(Pidora-2014-R1.zip)を解凍。
$ cd Pidora-2014-R1
$ ls
Pidora-2014-R1.img Pidora-2014-R1.img.md5sum
ddコマンド(ファイルの変換とコピーを行うコマンド)でSDカードへイメージファイル(Pidora-2014-R1.img)を書き込む。
ddコマンドはSDカードをアンマウントしてから実行する。SDカードのマウント位置はdfコマンドで確認可能。
イメージの転送が終わったらSDカードをアンマウントして取り出す。
$ df
$ diskutil unmount /dev/disk1s1
$ sudo dd bs=1m if=Pidora-2014-R1.img of=/dev/rdisk1
Password:
2177+1 records in
2177+1 records out
2283643904 bytes transferred in 440.678777 secs (5182105 bytes/sec)
$ diskutil unmount /dev/disk1s1
起動
完成したSDカードをRaspberry Piのスロットルに挿入。続いて、「LANケーブル」、「HDMIケーブル」、「マウス」、「キーボード」が接続されていることを確認した後、電源を投入。(Raspberry PiはminiUSBで給電開始で起動。スイッチはない。)
初回はGUIで設定することにした。いろいろ画面に従って操作。
確認
クライアントからSSHでログインできることを確認する。
DHCPへのアクセス情報からMACアドレスを取得。IPアドレスを固定。
ログインができることが確認できた。
セキュリティ設定
鍵認証の設定
#Pidora側
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
#クライアント側(公開鍵・秘密鍵が作ってないときは作成する)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tatsuya/.ssh/id_rsa): <<パスフレーズなしでログインしたいので何も入力せずEnter>>
$ scp ~/.ssh/id_rsa.pub <Pidoraのユーザ名>@<PidoraのIPアドレス>:~/.ssh/id_rsa.pub
#Pidora側
$ cd ~/.ssh
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
rootログイン無効、パスワード認証無効、ポート番号変更
$ sudo vi /etc/ssh/sshd_config#PermitRootLogin yes
↓【変更】
PermitRootLogin no
PasswordAuthentication yes
↓【変更】
PasswordAuthentication no
#Port 22
↓【変更】
Port <新しいポート番号>
ssh再起動
$ sudo service sshd restart
確認
接続確認完了。
#クライアント側
モジュールアップデート
SDカードが遅いせいか2時間近くかかった。。。
$ sudo yum -y update
とりあえず使いはじめる段階まで持ってきた。
W杯、本田△。。。