ROS勉強会(ラズパイマウスハッカソン)に参加しました

Pocket
LINEで送る

本日のROS勉強会はラズパイマウスを使ったハッカソンということで、参加してきました。

SLAMの動作確認のためにLinuxのGUI環境(普段はそんなもん使わない。CLIオンリー。)を仮想マシンで作らなければならなかったり、ネットワークがつながらないマシンの修理係などをやったりとちょくちょく中断しましたが、13時から18時まで、とにかくひたすらコードを書きました。書いている途中の写真がない・・・。

モニタがない状態でLANがつながらないと終わりなのでモニタ持参

成果は次の2点でした。

終わったあとは主催の皆様と人形町の肉寿司に行きました。こちらも食うのに夢中で写真がありません。

以上、勉強会帰りの人のブログ的なテイストでお送りいたしました。参加側に回るのは本当に久しぶりです。主催者の皆様ありがとうございました!

アフィリエイトで恐縮ですが、持参したモニタはこれ↓です。

寝る。

Pocket
LINEで送る

第2回 ラズパイマウスで京急VVVF音(ドレミファインバータ)

Pocket
LINEで送る

以前、ラズパイマウスのブザーで京急し、それを日経Linuxに掲載する暴挙を成し遂げたことがあったのですが、今度はステップモータの音で京急することにしました。

注意: 「京急する」はサ行変格活用の動詞で、意味は京急に励むことです。

次のビデオが結果です。音と速度が比例して加速していますが、わずかなのでわかりづらいかもしれません。

ビデオのとおり、完璧とはいかないまでも、おおかた京急でした。おそらく、ホームに赤い電車でなく、ラズパイマウスが到着しても誰も違いに気づかないのではないでしょうか。

コードはこのような殴り書きですので、後日京急する暇があったら京急して整理します。

寝る。

Pocket
LINEで送る

最近のラズパイマウスまわりの情報

Pocket
LINEで送る

最近、ラズパイマウス本の宣伝をしてませんが、ラズパイマウスの開発やラズパイマウス上で動くソフトウェアはどんどん増えてますので、情報を並べておきます。

本の情報はGitHubに掲載しています。

質問お待ちしております!!

ゲームパッドとラズパイマウスをつなぐROSパッケージ

弊研究室の岡崎氏が管理しています。

Hector SLAM + ナビゲーションのパッケージ

同じく岡崎氏作のHector SLAMしながらナビゲーションするパッケージ。千葉工大のOBの前川氏のパッケージからあまりいじっていないそうです。

岡崎さんは現在、移動ロボットでは標準的な構成となるgmappingとナビゲーションメタパッケージをラズパイマウスに移植中です。

イベント等

終わったものや募集が定員に達したものばかり挙げますが・・・。これからもあるかもしれません。ありがとうございます。

オプション(ハードウェア)

色々開発中のようです。どれがもう売っててどれがまだなのかよくわからんのでアールティさんのページでご確認を。

↓こちらはモータの実際の回転量を計測できる基盤(コネクタ)です。

迷路走行用ROSパッケージ

こんな感じで走ります。分岐点でどこを曲がるかは、その時のセンサの値次第です。

学習モジュール

ロボット学会のネタなのでまだ詳細を発表できませんが、今こんなものを作っています。

こういう制御のプログラムでロボットを動かして・・・

ロボットが別の学習プログラムで動きを真似をします。真似してる動作は簡単ですが、学習プログラムもアホみたいに簡単です。

シミュレータ

忘れてました。こちらも色々開発が進んでいるようです。実機と同じようにデバイスファイル(に見せかけたダミーファイル)でセンサ、アクチュエータを通信できるように改造してほしいという依頼を出しています。

Pocket
LINEで送る

日記 — graph-based SLAMの解説文(書きかけ)、OS不具合尻拭いスクリプト、ますとどん、今週はシェル芸勉強会

Pocket
LINEで送る

今週末のことを重要なことから。

graph-based SLAMの解説書

確率ロボティクスの日本語ドキュメント・サンプル充実プロジェクトとして、先週はコードのサンプルをjupyter notebookに書くということをやっていましたが、今週は数式で解説するための文章を書いてました。うん。10年仕事が遅い。

まだ書きかけで粗いですが、世界で一番簡単に理解できるようにするつもりです。

Raspberry Pi3にUbuntu 16.04 Serverをインストールするときの便利スクリプト

3月以来、device treeのアドレスがアレでOSをアップデートするとクラッシュするというアレな感じになっている https://wiki.ubuntu.com/ARM/RaspberryPi のラズパイ3用Ubuntu 16.04イメージですが、今度はアップデートでwlan0が見えなくなるというアレな状況になりました。いくらサポートしてないからと言ってなんなんでしょう。

ということで、これらの不具合を回避しながらカーネルをアップデートするためのシェルスクリプトをGitHubのryuichiueda/raspimouse_book_ubuntu_initに置きました。このリポジトリにある after_os_install.bashです。ここにも同じコードを貼りつけておきます。 https://wiki.ubuntu.com/ARM/RaspberryPiのイメージをmicroSDに書き込んでOSを立ち上げてsshでログインし、すぐに適用します。

#!/bin/bash
# (c) 2017 Ryuichi Ueda
# This software is released under the MIT License, see LICENSE at https://github.com/ryuichiueda/raspimouse_book_ubuntu_init.

tmp=/tmp/$$

### purge of the cloud-init ###
sudo apt -y purge cloud-init

### remove the bug on the device tree address ###
cat /boot/firmware/config.txt                                           |
sudo tee /boot/firmware/config.txt.org                                  |
sed 's/device_tree_address=0x100/device_tree_address=0x02008000/'       |
sed 's/device_tree_end=0x8000/#&/'					|
sudo tee $tmp-config 

sudo mv $tmp-config /boot/firmware/config.txt

### stop network device update ###
echo linux-firmware-raspi2 hold |
sudo dpkg --set-selections

### update ###
sudo apt update
sudo apt -y upgrade

### install WiFi tools ###
sudo apt -y install wireless-tools wpasupplicant

sudo reboot

このコードを読むと分かりますが、ファームウェアの自動アップデートを止めていますのでご注意ください。このリポジトリにある他のシェルスクリプトは、ラズパイマウス本の各パートのコードをラズパイにインストールして、各章を飛ばしてしまうためのチート的なものです。

ますとどん

遊んでます。

今のところ謎論理を展開する変なおじさんおばさんがいなくて非常に開放的です。多分、スキル的に彼らがやってくるのは当面先の話でしょう。Twitterでよく絡んでいる人たちも、束の間の自由を楽しんでいるご様子でした。自分が小難しいことをTwitterでたまに言ってしまうのは、変なおじさんおばさんを見てイライラして、そっちの側に回ってしまうという一種の集団ヒステリーなんだなーと反省しました。

 

このサービスについていろいろ評論している人がいますが、もし何かあるなら自然淘汰されるだけなので、ブックメーカーが賭けをしない限り、なんの意味もないと思います。そういう人たちは自分の仕事に集中していないだけなので、気にすることはないと思います。管理者さん頑張れ。

今週末はシェル芸勉強会

今回は募集が早すぎたような気がして、ドタキャンが多い予感がします。どうなることやら。内容は「普通のsed」にしました。普通とは。

寝る。

Pocket
LINEで送る

日記 —Kindle版ラズパイマウス本、確率ロボティクスのjupyter notebook

Pocket
LINEで送る

ここ数日の報告を2点。

Kindle版ラズパイマウス本

出ました。

 

確率ロボティクスのjupyter notebook

MCLにもgraph-based SLAMにもコメントをたくさん入れました。数式もsympyで入れようとしましたが、ごちゃごちゃしたので別紙に書きます。これも真面目にやると時間がかかるのでおおごとになってきました・・・

Pocket
LINEで送る

「Raspberry Piで学ぶ ROSロボット入門」を安価に楽しむ方法

Pocket
LINEで送る

先月30日に発売された「Raspberry Piで学ぶ ROSロボット入門」ですが、やっぱりロボットが高くて手が出しにくいという反応をいただいておりますので、なくても楽しめるように、いくつかロボットなしのプランを提示します。ついでに本書の内容もどんなものか匂わせます。

もちろん、実機があるのがベストです。

Travis CIとの格闘を楽しむ

本書はロボットを動かすための本ですが、テストがたくさん盛り込んであり、Travis CIも裏の操作対象のような位置付けになっています。また、ロボットがなくても、テストが通るかどうかで、コードが正しいかどうかは、完全ではありませんがだいたい分かります。ということで、勉強だけならTravis CIでテストを通すことを目標にしてコードを書くことができます。

また、講義では、ロボットを1人1台ではなく、教室に数台だけにしておき、テストを通した人から実機を試すという運用も考えられます。これはテストを扱っているからこそ可能になることです。また、私も職業柄、当然講義を持っておりますので、ちゃんと講義や実習が成立するように考えて書いておりますです。

実機を作る

これはかえってコストがかかるかもしれませんが、少しずつ部品を揃えて試していくこともできます。ハードウェアの使用はこちらに公開されていますので、挑戦してみるのも良いかもしれません。

シミュレータと接続

最後、ラズパイマウスのシミュレータで試すという方法もあります。ただ、本書のコードとシミュレータのつなぎこみには少し手間がかかります。少しだけ付録で説明しましたが、ちょっと本書を読み進めないと難しいかと。

ということで、シミュレータの作者にどんどんissueを投げていけば、そのうち答えが出てくるものと予想されます(ひどい)。

また、シミュレータは、入出力口を全てROSのインタフェースで持っています。が、実機はデバイスファイルがインタフェースなので、そういう点ではシミュレータは不完全です。ここをデバイスファイル(もちろん普通のファイルでも可)でブリッジできればシミュレータとして完全なのですが・・・。この点は気になっているところなので、こちらでも働きかけを続けます。

おわりに

3つ挙げたうちの後ろの2つは大変ですが、最初の項目のように、本書は一つのロボットを多人数でシェアしても大丈夫な構成になっています。また、ロボットは持っている人のところで動かして、あとはテスト環境でソフトウェアを書くということもできるようになっています。

ということで、ぜひ一読いただければと。

Pocket
LINEで送る

Raspberry Piで学ぶ—の最初の訂正

Pocket
LINEで送る

出版前に訂正第一号が出てしまいました。

本の中で、「プログラマ向けで絶版になってないソフトウェアライセンスの本が見当たらない」ということを迂闊にも書いてしまったのですが、調査不足でした。電子書籍でありました。早速読みましたが、プログラマ向けにちょうど良い内容でした。

この本、GitHubで正誤表を管理しようとしてたので、早速反映しました。

本の中身はもう修正できず「いい本がない」と言ってしまったので、こちらでなるべくフォローさせていただきます・・・。

Pocket
LINEで送る

「Raspberry Piで学ぶ ROSロボット入門」という本を書きました

Pocket
LINEで送る

ロボットにラズパイを載っけてROSで動かすという流行りもの全部乗せの節操のない本を書きました。3月30日に出ます。以前の日経Linuxの連載をまとめて、原型を留めないほどROS化したものです。本日校了ということで、9月から12月までは執筆、1月からは書き直しや校正と、充実した地獄が終わりました。

 

 

まさか自分がROSの本を書くとは思っていませんでした。私のROSに関するコントリビューションは、たまにROS Wikiを翻訳するくらいです。あんまりROSのコミュニティーに仁義が切れてないのは、別のコミュニティーをやってる身としては褒められたものではないという認識なのですが、日経Linuxの内容を強化する上でROSが避けられず、自分も真正面から扱うことにした次第です。

本の中ではこんなことをしています。

内容は大学の講義や実習を想定しています。4月からの講義にはギリギリですが、ぜひ本を手にとっていただければと。

Pocket
LINEで送る