コンテンツへスキップ

1

ラズパイからSlackへの通信をSlack APIのSlack Incoming WebHooksでやります。

目次

  • Slackとは
  • slackへの通知
  • やってみた

slackとは

slackとは、スチュワート・バターフィールドによって開発されたチームコミュニケーションツールです。基本的にはITっぽいLINEみたいなもので、大学やIT系の集団がよく使っており、コードを送ったりするときに便利です。 公式Slack 機能 、公式slack サインイン

APIについて

slackにはいろいろと便利機能が有るらしく、今回の通知機能もslackが提供していすサービス「Incoming WebHooks」「Outgoing WebHooks」を使用します。 公式Slack API

APIとは、

ソフトウェアからOSの機能を利用するための仕様、またはインターフェースのこと。一般的にAPIといった場合は、OSの機能を利用するための関数を指す。APIの概念が登場するまでは、OSの機能を利用するためのプログラムをそのつど開発していたが、APIの登場によりそれらの関数を呼び出すだけでOSの機能を利用できるようになった。最近では、Webサービスの機能を外部から利用するためのインターフェースもAPIと呼ばれる。

from API(エー ピー アイ)とは - コトバンク

APIを使うと、OS(windowsなど。人間やアプリケーションとハードウェアの中間で頑張っている)の機能を呼び出せるという事だと思います。

slackへの通知

今回は簡単のためにSlack Incoming WebHooksを使用します(前提として、slackにすでにサインインしているものとします)。Incoming WebHooksはslackが提供しているAPIの一つで、外部からslackへ送信する機能です。slack側から送信することはできないようです。

通知をするまでの手順です。

  • Slackアプリを作成
  • Incoming WebHooksを有効化し、各種設定をする
  • テスト

Slack Incoming Webhookの設定

ここからSlackn App Directory,検索バーからincoming webhooksを検索して選びます。投稿先のチャンネルを選び、追加します。私はあらかじめSlackでtestチャンネルを作っておきました。プライベートチャンネルも選べます。また、この画面下の方でアイコン画像の設定もできます。

なんやかんや設定して、保存します。

slackwebのインストール

ラズパイにslakwebをインストールします。pipとはPythonのパッケージをインストールするのを簡単にするツールです。apt-getと同じ感覚で使えます。Pythonパッケージに関するツールなので、今回のコードはPythonで書いていきます。ラズパイに以下のように入力すればインストール完了です。

$sudo pip install slackweb
デバック

一応slackwebはインストールできたものの、You should consider upgrading via the 'pip install --upgrade pip' command.というメッセージが出ているので指示に従いました。pip はpythonのapt-get見たいなものです。するとまたもエラー。

$pip install --upgrade pip
Collecting pip
 Downloading https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl (1.4MB)
   100% |████████████████████████████████| 1.4MB 207kB/s
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
inomata@inomata-desktop:~$ pip install --upgrade pip
Traceback (most recent call last):
 File "/usr/bin/pip", line 9, in <module>
   from pip import main
ImportError: cannot import name main

どうやら参考サイトによると、aptで入れたpipと今入れようとしたpipに互換性がないために怒られてしまっている模様。

$python -m pip uninstall pip
 Successfully uninstalled pip-19.0.3

これ、uninstallするのって19のほうなんですね。このあと

$ sudo apt install python-pip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
python-pip はすでに最新バージョン (8.1.1-2ubuntu0.4) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

こんな感じ。まあ問題はない。

この章の参考

やってみた

まずは動作テストです。コードはpythonで書きます。ラズパイにはPythonが標準でインストールされています。incomingSlackwebhools_test.pyを作成し、emacs(好きなエディタ)で開きます。

$touch incomingSlackWebhooks_test.py
$emacs incomingSlackWebhooks_test.py 
import slackweb
slack = slackweb.Slack(url="incoming設定ページでコピーしたURL")
slack.notify(text= "hello world")

slackで指定したチャンネルに「hello world」と届いていればOKです。

画像

incomingの方はすぐですね。同様にすればセンサーの値を取得して変数に与えたりできます。今で元にメスのジャンパーピンがないのでできませんが、何もしないと面白くないので以下のような日にちを伝えるプログラムdateForSlack.pyを作成しました。

# -*- coding: utf-8 -*-

import slackweb
import datetime

slack = slackweb.Slack(url = "incoming設定ページでコピーしたURL")
date = datetime.date.today()
slack.notify(text = "今日は"+str(date))
print("今日は"+str(date))

datetimeというのは実行したときの日付を取得するモジュールです。型変換して文字列にして出力しています。出力結果は以下のようになります。

$cd dateForSlack.pyがあるところ
$python dateForSlack.py

この章の参考

raspberry pi のpythonライブラリはpipよりart-getで入れるのが断然早い -からあげ

IPアドレスを調べるときの参考 ifconfigが非推奨に!? ifconfigコマンドを使わずにRaspberry PiのIPアドレスを調べる方法 -猿まね電子工作

ラズパイを繋いだときに、ホストアドレスからランダムに指定されるのがデフォルトのはず。固定アドレスにする時 Raspbian(jessie)の固定IPアドレス設定方法 -俺の技術メモ

雑談

参考のリンクを書く場所で迷っています。文章の邪魔をしないようにしつつ文章のすぐ近くに配置すれば情報元の対応がわかりやすいですが、一方でこの投稿でほしい情報がすべて手に入るのであれば対応がわかる必要がないから最後にまとめて書くのが親切かもしれない。いろいろなパターンでやってみるつもりです。

アフィリエイトをしばらくやっているけど、広告を改良しようと思っても毎回忘れている。個人的メモを兼ねたまとめ。 なお、このブログはwordpressで実践したことをまとめています。一部無料ブログでは貼り付けられませんのでご注意ください。
追記(2019/3/18) ドメインについて書くのを忘れていました。アフィリエイトをやるなら独自ドメインがあったほうがいいと思います。私はレンタルサーバ+独自ドメインでやっています。サーバというのはざっくりいうとPCで、ドメインというのはサイトの住所で、ユーザー目線ではURLの一部です (inopage.comというやつです) 。どちらも有料なので気を付けてください。

目次

  • アフィリエイトとは
  • Google Adsense
  • Google Adsense を登録する
  • Google Adsense を貼り付ける
  • AMPについて
  • Amazon アソシエイト
  • Amazon アソシエイトを利用する
  • 参考

アフィリエイトとは

アフィリエイトとは成功報酬型のインターネット広告です。

アフィリエイト商品を売る人をアフィリエイター、アフィリエイターと広告主を仲介する企業をASP(Affiliate Service Provider)と呼びます。 アフィリエイターは企業の広告をし、商品を売ることで報酬が得られます

このブログは部品等の資金稼ぎのために導入していますが、対策してないのでかなり雑です。文章間に広告が無理矢理入っている始末。

Google Adsense

Google AdSenseとは、Googleの提供しているコンテンツ連動型広告配信サービスです。ブログ記事でよく見かける広告はGoogle Adsenseです(多分)。

PPC(Pay Per Click)広告という方式で、クリック数で報酬が入るようになっています。Google Adsenseではクローラーが巡回し、内容に合った広告が表示されるようになっています。この報酬のメリットは初期コストが低いことデメリットはクリックして貰えないと報酬が貰えないことです。

このブログでは電気製品、ブログ、ゲームなどが出ているみたいです。「みたいです」というのも、管理者(私)が口出しできるのは広告の場所や大きさ、分野までなので出た広告を見てみないとわらないからです。

Google Adsenseには基本的な広告の他に、自動広告があります。自動広告はgoogleがページをスキャンして自動で広告を選んで貼ってくれます。

自動広告のメリット

  • かなり楽! 掲載したい各ページに同じコードを 1 つずつ設置するだけで、自動広告を表示できます。 広告の掲載と最適化が自動的に行われますので、手作業にかかる時間を節約できます.
  • 増収が見込める レイアウト、コンテンツ、既存の Google 広告に基づいてページを分析してくれます

自動広告のデメリット

  • 予期しない位置に広告が出る 段落に注意しないと広告によって読みづらくなります。スキャンを意識した構成にしなければなりません。

詳細は公式を参照してください。 自動広告について -AdSenseヘルプ

Google Adsenseを登録する

このサイトで登録して、アドセンスアカウントを取得しましょう。このあたりは何もスクショ取ってませんので丸投げです。 Gogle Adsense

このあと、審査がはいります。長い人は1ヶ月以上掛かります。このブログに導入した2019/2ごろに調べたところによると、審査が厳しくなったとのことです。内容や記事数などが基準になるという噂。以下参考までに当時のことを書いておきます。

  • 1度目落ちたとき
  • この記事は10記事くらい。多くは1記事2000文字行かないくらいでした。

  • 受かったとき
  • オリジナル文章の文字数が重要なのではと考え、以降6000文字程度の記事を1つ書きました。この時点で11記事くらいでした。このときの投稿はこれです。

Google Adsense を貼り付ける

受かったら広告を貼っていきます。基本的にHTMLを書き加えるので、wordpress内部にカスタムHTMLとして挿入すれば表示はさせるはず、ですが正直毎回入れるのは面倒。なので、一括で全体に表示できる方法をやります。プラグインWordPress Ad Manager & AdSense Ads – Ad Inserterというのを使っています。

広告に限らず、PHPやHTMLをいじらないといけないことがよくあると思いますが、元コードに直接やって居るときに操作をミスすると突然全く動かなくなる、表示すらされなくなる事故が起きる危険がありますので、直接手を加えるのはおすすめしません。そこで登場するのがプラグインです。この Ad Inserter は、対応するタブにコードを書き加えるだけでheaderやfooterを編集できるので便利です。画像のプラグインをインストールして有効化します。

次にGoogle AdSenseのページからコードを取得します。

  • 自動広告

Google AdSenseの「自動広告を設定」を押すとコードが出てくるので、それをコピーします。

次にwordpressの設定/Ad Inserterを開き、設定(歯車マーク)をクリックしてheaderを開きます。コードをコピペしてsave settingで終了です。

これによってすべてのページのheaderに自動広告のタグが貼り付けられました。しばらく待つと広告がでます。私はsaveし忘れて表示されずに慌ててたので、時間は全然計ってません。たぶん30分くらいじゃないかと。

  • その他の広告

広告ユニットを開きます。今回は「テキスト広告とディスプレイ表示」で作ってみます。「テキスト広告とディスプレイ表示」を選択 わかりやすい名前をつけます。広告サイズは推奨のままで行きます。広告のスタイルはサイトのデザインも考慮しつつテキトーにきめます。 最後に保存すると、コードが出てきます。これをコピーします。

次にwordpressの設定/Ad Inserterを開き、bookにコピペして保存します。このとき、コードの一番下に<p>スポンサーリンク</p>と書くことをおすすめします。

自分のページを別なタブでひらいて上のAdInserterを開くと、ページ内のどこがどういう名前か確かめることができます。

外観/ウィジェットから、Ad Inserterでメインサイドバーを選択します。すると右側のメインサイドバーの一番下にAd Inserterと言うのができますので、先ほどコピペした先のbook(私はbook5)を選択します。わかりやすいようなtitleを記入。

すると、自分のページのメインサイドバーに表示されるであろう枠が表示されています。

しばらく待つと表示されると思います。お姉さんの笑顔がまぶしいですね。

AMPについて

自動広告のページにAMP自動広告というのがあります。AMP(Accelerated Mobile Pages)とはGoogleとTwitterで共同開発されている、モバイル端末でウェブページを高速表示するためのプロジェクト、またはそのためのフレームワーク(AMP HTML)のことです。

公式Accelerated Mobile Pages Project – AMP

これはGoogleが推奨しているもので、SEOも表示速度を判断材料の1つにしているといううわさもあります。このブログは大学生を対象にしているので、スマホに特化させようと思い、AMP化しようとしてみました。そのときのことについて書き残しておきます。

これはネタバレなんですが、AMP化しないことにしました。AMPとはざっくり言うと、サイトを読み込むときに不要なものを読み込まないような作りみたいです。それで、このブログは数式も表示しているんですが、AMP化HTMLを読み込むときに、数式を綺麗に表示するためのプラグインが読み込まれないらしいんです。それに画像も表示されませんでした。数式を表示するにはMathMLというHTMLの数式版に書き換えたりしないといけないんですが、それをする労力とAMPのメリットが釣り合うかと考え、断念することにしました。

Amazon アソシエイト

このAmazonアソシエイトはamazonが提供するアソシエイトプログラムで、商品が売れたとき、自分が紹介した商品の値段の何割かが報酬として受け取れます。何を隠そうこのページの収入の本命はAmazonさんです。以下が紹介料率です。


Amazonアソシエイト・プログラム紹介料率表から転載。

以下のリンクからサインインしてください。申込画面はこれまたスクショしてなかったので丸投げです。頑張ってください。

amazon アソシエイト

Amazon アソシエイトはちまたの噂ではgoogle Adsenseよりも審査基準が厳しいみたいです。合格時のこのブログについて参考までに書き残しておきます。なお私はamazon prime 会員です。

  • 2度落ちたとき 10記事くらい。多くは1記事2000文字行かないくらいでした。1記事増やして再度申し込み、落ちました。
  • 合格したとき オリジナル文章の文字数が重要なのではと考え、以降6000文字くらいしたところ、受かりました。このときのサイトはこれです。(確かjupyter)。Google Adsenseとほぼ同時期に受かってます。二日後くらいに合格のメールが来ました。

Amazon アソシエイトを利用する

アソシエイトのページからやる場合と、ツールバーからやる場合が有ります。いずれにせよHTMLコードが表示され、wordpressのカスタムHTMLとして貼り付けるようになります。商品リンクの表示は「テキスト」、「画像」、「テキストと画像」の3つから選べますが、「テキストと画像」はなぜか画像が表示されないので使わない方がいいかも知れません。 プラグインもありますが、HTMLを貼り付けするだけなので全く問題なく使えてます。私は部品や参考本の紹介として使っているので今のところ「テキスト」を使うことが多いです。

商品リンク/商品リンクから商品検索をします。 出てきた商品の横のリンク作成を押すと、作成画面へ移動します。

テキストでリンクを作成する場合、テキストのみのタブを選択し、各種項目を適宜変更します。リンクテキストは表示される文字で、リンク先ページは商品紹介ページか出品一覧ページから選べます。 最後に、HTMLを取得します。

HTMLはテキスト+リンク+文字の大きさなどその他情報がすでに入力されていて、URL、短縮URLはリンク先の情報しかありません。特に目的がないときはHTMLをそのままコピーします。wordpressにもどり、カスタムHTMLとしてコピペします。プレビューはこんな感じ。

  • ツールバーから

自分のamazonアカウントでログインすると一番上にツールバーが表示されています。表示されていない場合は先ほどのアソシエイトのページから、ツール/アソシエイト・ツールバーでアソシエイト・ツールバーの設定はこちらから表示をオンにします。

以降は ページから と同様です。

amazonにログインして商品を検索染します。ツールバーの「テキスト」、「画像」、「テキストと画像」のうちテキストを選びます。出てくるURLをwordpressでいつものようにクリップのようなマークでリンクにすればOKです。

「画像」、「テキストと画像」を選んだ場合はHTMLがそのまま出てくるので、ページからで紹介した方法と同じようにカスタムHTML表示にしてコピペすればOKです。

追記(2019/3/18) 新しく投稿したら、Google consoleでインデックス登録とサイトマップの更新を忘れずに。

雑記

なんでも世の中の1/3のサイトはwordpressで作られているとのことです。もしwordpressに重大なエラーがあったり攻撃されたりした場合、世界中のサイトの1/3が動かなくなるというわけですね。あるいは、wordpressの学習だけに力を入れて脆弱性を調べれば儲かるかもと考えている怖い人が世界中にいると考えられます。セキュリティについても無関心ではいられませんね。

参考 WordPress(ワードプレス)とは? -wordpress超初心者講座
追記(2019/3/18) ドメイン、Google consoleでの更新について追記しました。

参考

目次

  • やった事
  • 目的
  • ラズパイとは
  • ROSとは
  • 環境構築1 Ubuntu
  • 環境構築2 ROS

やった事

Raspberry Pi 3 B+ に Ubuntu MATE と ROSをインストールし、ROSで動作確認を行いました。PCはWindows10です。

目的

これは Web X IoT メイカーズチャレンジ のハッカソンの一環としての活動で、機能の1つである通知機能をやったので、もっといろいろやってみる準備をします。 =>webIoTメイカーズチャレンジに参加前編

一方でゼミでROSをやっていて、全然解らなくてヤバいので家で勉強しようかとも思っています。というわけで、

  • ROSが使える
  • Webとの通信ができる

上記2点を満たした環境を用意しようと思います。調べてみるとRaspbian(ラズパイで一番スタンダードであろうOS)でROS環境を作るのは大変そうなので、Ubuntuでいきたいと思います。ラズパイに向いているのは軽量なMATEらしいですので採用。

Raspberry Piとは

ラズパイとは、内蔵ハードディスクなどを搭載しない代わりに、SDカード又はmicroSDを起動および長期保存用のストレージに利用する、「ワンボードマイコン」と呼ばれるハードウェアです。ラズベリーパイ財団より安価な教育用のシングルボードコンピューターとして開発されました。

つまり、PCほどの計算の能力はないけど、PCみたいに使えるIoTに向いた機械です。標準でネットにつなげたりするので初心者に優しいらしい。今回私はRaspberryPi 3 model B+ を使います。一番新しい奴です。

ラズパイ本体の他にいくつか用意するものがあります。

  • SDカード(ubuntuMATE、ROSを入れるなら32GB以上)
  • ディスプレイ(HDMLが接続できるTVでOK。PS4をやってるやつとか)
  • 有線ネットワーク(raspberryPiは3はwifiでもいける)
  • キーボード
  • マウス

RSコンポーネントRaspberry Pi 3 B +マザーボード

Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品

アイトランク iTrunk Raspberry Pi 3用USB電源アダプター PSE認証 5V 2.5A Raspberry Pi 3 Model B/B+ Raspberry Pi 2 Model B Raspberry Pi Model B+ B Plus適用

この章の参考

ROS とは

ソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しているオープンソースのソフトウェアです。特徴として以下をあげます。

  • ソフトウェアプラットホームである
  • ミドルウェアである
  • フレームワークである

ソフトウェアプラットホーム

情報プラットホームのエコシステムの4要素としてハードウェア、OS、アプリケーション、ユーザがあります。 「情報プラットホームのエコシステム」というのはわかりにくい言い回しですが、これは俗な言い方をすれば「技術が流行る」ということです。

現在私たちはスマホを持ち、アプリをインストールして使って居ますが、このようにスマホが流行るとよりよいアプリが開発されてさらに利用される、というような循環が生まれます。

ロボットが身近な存在になり、 ユーザーや開発者が増え、市場が活発になれば様々な技術が生まれて行く。このようなサイクルを作るために必要なものがロボットソフトウェアプラットホーム です。

ROSの機能

技術を流行らせるためにはソフトウェアを使い回せるようにしたり、開発者がロボットのすべてを知らなくても一部だけのソフトウェアを作ればいいようにしたりする必要があります。

ROSでは機能(モジュール)を小さな単位(ノード)に分割し、ノード間で厳格なプロトコルのもとで異なる言語でも通信する仕組みになっています。それによって、C++で書かれたモジュールとPythonで書かれたモジュール間で通信するような事を可能にしています。

また、パッケージ管理、デバッグ用ツール、開発ツールなどが整っているので開発がしやすくなっており、誰でも公開できるようになっています。

という訳でROSはミドルウェアとフレームワークの側面をとったロボットソフトウェアプラットホームです。(という風にまとめましたがどうでしょう)

この章の参考

Ubuntuとは

ラップトップ、デスクトップ、そしてサーバーに利用することができるOSで、無料で提供されています。一般のコミュニティによって開発されており、Linuxの派生のDebianから派生して作られました。カノニカル社が支援しており、Linuxとしては資金的にも人員的にも非常に手厚い支援によって開発されています。 半年ごとにリリースされていて開発が早い一方で、長期補償板(LTS)も存在します。最新のアプリケーションを利用する事も、安定した環境で作業する事も出来ます。また、Ubuntu Japanese Teamによって日本語環境が整えられています。インストール後すぐに使える、GUIでデスクトップでマウスで操作できる、など初心者にも使いやすいOSです。

今回入れるのはUbuntuの派生の一つである Ubuntu MATE です。メモリ消費が軽いのでラズパイ向きです。

この章の参考

環境構築1 Ubuntu MATE

起動まで

ラズビアンでROS環境を作るのは大変そうなので、ubuntu の中でラズパイに向いている ubuntu MATE 環境を作ります。このとき、

ラズパイ公式 Downloads

でダウンロードしたのを使うと、ラズパイ3 model B+ではOSが動きません。虹&雷マークで固まってしまいます。

雷マークは電圧不足のマークですが、電源を変えてもダメでした。調べてみるとシステムファイルの不具合でも発生するとのこと。ラズパイはB B+でハードもファームウェアも違うらしい。なのでいろいろ設定が必要みたいです。 下のサイトが最高に神なので乗せていきます。ありがとうございます。このサイトの添付に3B+でも動くように修正されたimgファイルがありますので、これを使います。

RaspberryPi 3B+にROSを導入する - Isao HARA

このページのubuntu MATE からダウンロードした「ubuntu-mate-16.04~.img.xz」を解凍します。このとき解凍は7-zipをインストールして使いました。


「ubuntu-mate-16.04~.img」をSDカードに書き込みます。このSDカードがラズパイのメモリになります。書き込みにはWin32 Disk Imagerをインストールしました。microSDをセットして起動すると、

出ました。ついに!(ここまで調べるのになんやかんや2日)

ここからはubuntu上での作業です。言語等の説明は省略します。ただ、wifi設定は後でやるのが無難だと思います。wifi設定に失敗するとユーザーが登録されなくなるのではじめからやり直す事になります。左上の アプリケーション/システムツール/MATE端末 で指示を出していきます。この端末はよく使うので右クリックしてデスクトップに追加しておくと良いと思います。

更新

まずはいろいろ更新 //コメント

sudo apt apdate //最新のパッケージを取得
sudo apt dist-upgrade// 最新のパッケージの更新と不要なパッケージの削除
sudo apt autoremove//依存関係で必要なくなったパッケージの削除

初回の更新なのでこれだけで1時間くらい掛かりました。

日本語入力

日本語設定をします。システム/設定/ユーザー向け/言語サポートででたウインドウの「言語のインストールと削除...」を押してインストール、「システム全体に適用」そのあと再起動します。もう一度言語サポートを開いて「キーボード入力に使うIMシステム:」のドロップダウンリストから「fcitx」を選択して再起動します。

インターネットブラウザ

インターネットブラウザのChromiumをインストールします。 私はいつもネットにつなっているか試すとき猫で検索をかけるんですが、あらかじめ入っているfirefoxというブラウザがcrashしたという通知が出ました。新しくChromiumを入れます。Chromium は Google Chrome のベースらしいです。コマンドのsudoというのは管理者権限のようなものです。

sudo apt install chromium-browser

以上です。

本来ならリモートデスクトップしたいんですが、うまくいきませんでした。出来たら追記します。RDPできるとコピペができます。

この章の参考

以前使って居たラズパイでは画面サイズがおかしくなりました。画面の大きさはディスプレイによっては合っていないことがあります。以下を見ました。メモとして張っておきます。

環境構築2 ROS

参考に挙げた本によれば、2019年現在(次のROS LTSまでは)Ubuntu 16.04 Xenial Xerus(LTS)(またはLinux Mint 1.8x) + ROS Kinetic Kameがいいらしいです。

以下を順番に実行しました //コメント

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' //関連サーバのURL追加
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116//ROS関連サーバの公開キー。サーバ更新のたびに変化するのでwikiで確認してください
sudo apt-get update  //ubuntuのアップデート さっきやったからやらなくていいかも
sudo apt-get upgrade 
sudo apt-get install ros-kinetic-desktop-full //rosのインストール 関連ライブラが含まれる
sudo apt-get install ros-kinetic-rqt*//グラフィカルユーティリティーツールrqtに関連するすべてのパッケージのインストール 上で基本的なqrtの機能はインストールされるためやらなくてもいい
sudo rosdep init //ROSのメインコンポーネントを利用したりコンパイルする際に、ROSのOSに依存したライブラリやツールをインストールするツールであるrosdepを初期化
rosdep update 
sudo apt-get install python-rosinstall //ROSパッケージをインストールするときに役立つrosinsrallのインストール
source /opt/ros/kinetic/setup.bash //環境変数の読み込み
mkdir -p ~/catkin_ws/src //ROS専用のビルドシステムcatkinのワークスペースcatkin_wsを作成、初期化
cd ~/catkin_ws/src
catkin_init_workspace 
cd ~/catkin_ws/ 
catkin_make //ビルドコマンドcatkin_make。ビルド関連ファイルはbuild、実行関連ファイルはdevelに作成される
source ~/catkin_ws/devel/setup.bash //catkinビルドシステムの環境設定ファイルの読み込み

このあとROSの動作確認のために

roscore

してエラーをはきました。

reboot //再起動

再起動してからroscoreしたら動きました。成功の場合、最後に

started core service [/rosout]

と書かれた文が表示されます。ROSを使うときはorscoreは動かしっぱなしにするので端末を複数開いて使います。 Ctrl+Cで終了することができます。

source のコードを毎回書くのは面倒なので、いくつか設定します。エディタにはemacsを使いました。

emacs ~/.bashrc

で開いて、以下を付け加えました。今回はショートカットコマンドと環境設定の自動読み込みだけ追加します。

# 環境変数
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash

# コマンド
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catin_ws && catkin_make'

変更を反映するために一度端末を閉じてからもう一度開いて

source ~/.bashrc

これで自動で読み込まれるようになりました。ラズパイを起動してすぐにroscoreでもオッケーです。

最低限のエディタ

その前に、エディタが入っていないので、ひとまず最低限のエディタの用意をします。ひとまず知ってるエディタemacsをインストール。好きなのを使ってください。

sudo apt-get install emacs24

ROSのテスト

roscoreが起動できればどのサイトでもオッケーみたいでしたが、つまらないのでROSに入っているシミュレーションツールを動かしてみます。

roscore //すでに起動している場合は不要
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

この状態で←↑→↓など矢印を押してみると、カメが動きます。楽しい!!

これでデータの流れを可視化します。

rosrun rqt_graph rqt_graph

このカメ、矢印上で前進、右で120度右、左で120度左を向きました。動かしにくいので設定をいじりたかったんですが、やめました。

この章の参考

雑談

私はすべてのSNSで亀のアイコンにしているんですが、ROSのシミュレーションも各バージョンで毎回カメでなので運命を感じざるを得ませんね。
追記(2019/3/20)Amazonリンクを増やしました。