コーヒーこぼした。

プログラミングとちょこっとハード

PepperのPython SDKを使って写真を撮る話

前回、Pepperに「こんにちは、pepperです」と言わせるところまで書きました。

imkitchen.hatenablog.com

今回はPepperの頭部についているカメラを使って写真を撮ってみたいと思います。

https://gyazo.com/75d44a662ead1056388c096b527a7abc

前回は ALTextToSpeech というProxyを用いて発話を行いましたが、今回は ALPhotoCapture というProxyを利用します。
どのProxyでも、インスタンスを作りコネクションを張ってメソッドを介してAPIを叩くのは同じです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from naoqi import ALProxy

# プロキシのインスタンス生成
photo = ALProxy("ALPhotoCapture", 192.168.100.30, 9559)

# フォーマットの指定(“bmp”, “dib”, “jpeg”, “jpg”, “jpe”, “png”, “pbm”, “pgm”, “ppm”, “sr”, “ras”, “tiff”, “tif”が指定可能)
photo.setPictureFormat("jpeg")

# 解像度の指定(0 = kQQVGA, 1 = kQVGA, 2 = kVGA)
photo.setResolution(2)

# 保存先を指定して画像をキャプチャ
photo.takePicture("/home/nao/recordings/cameras/", "image")

これを実行すればJPEG画像ファイルがPepper本体の "/home/nao/recordings/cameras/" に image.jpeg という名前で保存されます。


f:id:imkitchen:20151029145437j:plain
実際にPepperを使って撮った自撮り(自撮りとは言っていない)画像です。
アップロードする機能は実装していないのでscpで取り出しました。
そう、peppersshでアクセスできるのです。

カメラの性能はそんなに良くないので画質は粗いですが、アイディア次第で使い道はありそうです。

今回使用したALPhotoCapture APIの一覧はこちらにまとまっています。
ALPhotoCapture API — Aldebaran 2.1.4.13 documentation

ラーメン紀行 - ラーメン荘 おもしろい方へ

昨日研究室のメンバーで行ってきました。
「おもしろい方へ」は関西の二郎系インスパイア店では有名なラーメン荘の系列店です。
22時過ぎくらいに行くと店の前には常連と思しき猛者が集結していました。

僕は麺大盛の全増しを注文。
料金は通常と変わりません。


https://instagram.com/p/9YiwqCGwLr/

写真だともやしに埋もれていてわかりづらいですが太麺です。

汁あり麺はもやしの上にかかっているタレが食べ進めるにつれてスープに溶け込んでいくため、味がだんだん薄くなってくるのが難点です。
そこでアブラを増しにして、タレの染み込んだ背脂を別皿でもらいます。
薄いと感じた段階でこれをかけるとタレの味が復活するというわけです。

この店のロットは6杯なので6人ずつカウンターに通され、麺の準備ができると二郎系でおなじみの

「ニンニク入れますか?」

と訊かれます。
初めて行く方は素直にニンニクの有無しか答えませんがこれは

  • ニンニクの量は?
  • 野菜の量は?
  • アブラの量は?
  • からさ(タレの量)は?
  • 唐辛子は別皿で必要?

というハイコンテクストな問いかけです。
周りの客の注文と量の相場がつかめると思うので事前知識としても持っていると良いと思います(二郎系は店舗によって増しの基準が全く異なるので要注意です)。

ニンニクは増すとポテトサラダ並に盛られるのでほどほどにしておきましょう。
ブレスケアタブレットでなんとかなるレベルではありません。

個人評価:⭐️ x 4 (5段階)
ジャンル:二郎系ラーメン
説明:
ガッツリ食べたい人向けの店です。女子を連れて行ったりしてはいけません。
太麺で濃い味が好きな人にオススメです。

PepperのPythonSDKを使って「こんにちは、Pepperです」した話


\ハイビーム!!/
f:id:imkitchen:20151027235952j:plain:w256

研究室でレンタルしているPepperでコンテストに向けてアプリの開発をはじめました。

Pepperアプリの開発環境はほとんどの人がChoregraphという開発環境を使っているようです。
GUIで直感的に開発できて良いのですが、このChoregraphは機械的にXMLでアプリケーションを吐き出しますのでチームで開発するときにコード管理が困難です。差分を見ても何のことかわかりません。

Pepperを開発しているAldebaran社のコミュニティページを訪れるとChoregraph以外にもいくつか開発ツールが提供されていて、開発メンバーはその中でも比較的敷居の低そうなPythonを使って開発を開始しました。


SDKダウンロード

SDKのダウンロードにはAldebaranコミュニティのアカウントが必要です。お金はかかりませんが若干面倒です。
Python以外にはC++ SDKがあります。


https://gyazo.com/a2775d0a4d9f2ee93f7407652dfd5647

開発を始めてから知ったのですが、Pepperアプリは遠隔から操作するみたいです。本体に実行コードを配置して実行することも可能なようですが、基本的には開発環境からpythonを実行してネットワークを経由して制御します。

APIは同社のNAOというロボットと共通のようですね。そのためNAOqiという名前になっています。



ダウンロードしたファイルを解凍すると共有ライブラリとpythonスクリプトが雑多に入ったディレクトリができますので、下記のように配置したパスを `~/.bash_profile` などの端末の設定ファイルに追記して通しておきます。

export PYTHONPATH="$PYTHONPATH:$HOME/data/pynaoqi-python2.7-2.3.1.25-linux64"
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$HOME/data/pynaoqi-python2.7-2.3.1.25-linux64"

そして環境変数を反映。

$ source ~/.bash_profile

「こんにちは、Pepperです」

NAOqiをpythonで読み込み「こんにちは、pepperです」を発話させるコードは次のようになります。

from naoqi import ALProxy

tts = ALProxy("ALTextToSpeech", "192.168.100.30", 9559)
tts.setLanguage("Japanese")
tts.say("こんにちは、pepperです")

IPアドレスを第二引数に指定する必要がありますので胸のボタンを押して本人に教えてもらってください。

faq.mb.softbank.jp

他言語対応なので他にも色々な言語を選択することができます。

ドキュメント

Pythonを使った開発に関する記事はQiitaに結構あったような気がしますが、PepperAPIはバージョンアップのたびに頻繁に消えたり増えたりするので古いものは参考にしない方が良さそうです。

僕らはこちらを参考に開発しています。
Overview — Aldebaran 2.1.4.13 documentation

次はカメラを使って写真を撮るところまで書きたいと思います。

オープンソースカンファレンス Tokyoで「このはください」してきた話

オープンソースカンファレンス 2015 Tokyo/Fallに行ってきました。

例年、京都と東京で開催されるOSCですが、基本的に東京の日程で都合が合うことはなかったので京都を逃すと「あ〜今年は行けなかったか〜」という感じです。そんなわけで2012年の京都開催以来行けてませんでした。

今日は就活の選考でたまたま東京に行くことになったので、面接終了後に会場である明星大学へ。

到着


f:id:imkitchen:20151025230637j:plain:w512
f:id:imkitchen:20151025230628j:plain:w512

受付ではConoHaの紙袋がもらえました。


BSD Daemon, tux, geekoと美雲このはが戯れてます。

あと、特定のブースにスタンプが置いてあって全部集めるとペンケースがもらえます。
ピンクしか残ってませんでしたが、、、


気になったブース

f:id:imkitchen:20151025233528j:plain:w512

GMOインターネット ConoHa

真っ先にGMOさんのConoHaブースに向かって「このはください」と言ってきました。


「娘はやらん!」と言われましたがステッカーとファイルがもらえたのでまあよしとしましょう。

f:id:imkitchen:20151025231829j:plain:w256
前に記事に書いたConoHaのAPIを叩く話。imkitchen.hatenablog.com
APIを簡単に叩くライブラリとかないですかねぇ」と相談したら、「ConoHaはOpenStackベースなのでインスタンスの制御などはOpenStackのAPIが使えるよ」ということを教えてもらいました。

今は公開しているnpmパッケージの開発が停滞中ですが、OpenStackのクライアントライブラリを探してきて利用料金取得とかだけ実装すれば良さそうです。

さくらインターネット

クラウドVPSで有名な起業といえばもう一社はさくらインターネットさんですね。


f:id:imkitchen:20151025231242j:plain:w256
さくらVPSは個人的に学部の時から使っていて「ちょっとネームサーバの設定画面が使いづらいですねぇ」と遠慮ない意見を伝えたところ、現在鋭意改善中とのこと。期待大です。

学生ですと言ったらインターンの案内ももらいました。データセンター研修とか最高にそそられる。

話の最後に頂いたさくらクラウド2万円分のクーポン。毎回太っ腹だ。


f:id:imkitchen:20151025231029j:plain:w256

Hinemos

NTT Dataさんが主導で開発しているサーバ監視システムの一つです。OSSなので誰でも利用することができます。osdn.jp

参加企業さん同士の連携もばっちりで「ConoHaにはすでにHinemosのイメージがあるのでポチッと導入できるよ」と教えてもらいました。
サーバ監視系システムもどんどん導入の敷居が低くなってきていい感じです。

最後に

やっぱりOSC最高です!

株式会社Donutsのライブコーディングイベントに参加してきた話

東京から大阪へ向かう夜行バス車内からブログ更新中。
さすがに日帰りで東京はしんどい。

さて、何しに東京まで行ってたかというとRailsライブコーディングという株式会社Donutsのイベントに参加するためです。

6月くらいにサポーターズという逆求人系企業のイベントでDonuts人事の方とお話したことがきっかけ。

DonutsはMixChannelという動画共有サービスとTokyo 7thシスターズというゲームアプリが有名で、その他にも多分野にわたってサービスを展開している企業です。

僕個人としては学部の友人がこの会社に就職したので、その時にDonutsのことを知りました。
最近はtechyなつぶやきをしてるとTwitterFacebookに新卒募集のインフィード広告が出現するので知ってる人も多いと思います。

オフィス見学

一応就活生向けイベントなので、はじめに自己紹介と会社説明があり、オフィスを見学させてもらいました。

オフィスのインテリアとか大好きなので、何かと機会を見つけてはインターンやイベントに参加して社内見学してる節があります。

Donutsはオフィスというかスタジオって感じでした。撮影の許可とってなかったので写真は一枚もありませんがここに載ってます。
http://www.donuts.ne.jp/jobs/office.html

ライブコーディング

イベントの趣旨はDonutsの新卒2年目エンジニアがコーディングをしていくのをみんなで見ながら、各々手を動かしたり質問したりやって欲しいことをリクエストしたりするというものです。

参加者にはRails初心者から自称Railsマスターまで幅広くいて、どちらも退屈しないようDonutsのサービス開発手法とかデプロイ環境とかそのあたりのことを中心に話してくれてました。

驚いたのはChatOpsの話になったときに、さらっと実演してたところですね。

まさかライブコーディングで本番のデプロイを見れるとは……

懇親会では恒例の酒とピザが出てきて、他の参加者と参加したインターンの話などしてました。

また、面白そうなイベントあれば行きたいですね。

スポンサーリンク