Thought about system by Hiroyasu Ishikawa

We are uncovering better ways of developing system.

LogicoolのボタンにWindowsキーとの組み合わせショートカットキーを割り当てる

Logicool*1のマウスにWindowsキーを割り当てることができたので記録しておく。

Logicoolのマウスやキーボードの設定はSetPointというソフトウェアで設定する。このSetPointの「ボタンの割り当て」に「キーストロークの割り当て」という機能がある。しかし、Windowsキーを割り当てようとしても割り当てることができない。このクソ仕様を回避する手順を以下に示す。

(1)SetPointを使ってキーストロークを割り当てる。割り当てるキーは任意で良い。(以下の例ではTabキー)
(2)OKボタンをクリックするなどして、設定を保存する。
(3)SetPointを終了する。タスクバーにあるSetPointのアイコンを右クリックすると終了できる。
(4)SetPointの設定ファイルをテキストエディタで編集する。設定ファイルは私の環境で「C:\Users\{ユーザー名}\AppData\Roaming\Logitech\SetPoint\user.xml」にあった。編集する箇所は後に述べる。
(5)SetPointを起動する。スタートメニューから「Logicool」、「マウスおよびキーボードの設定」の順に選択すれば良い。

編集する箇所は、割り当てたキーストローク(下記例ではTabキー)で検索するとそれらしい場所が見つかる。
このHandler*2を置換する。「*{組み合わせたいキー}」でWindowsキーと任意のキーを組み合わせることができるらしい。
「*{Tab}」としておけば、Windowsのタスクビューのショートカットキーを割り当てることができ、大変便利である。

置換前

<Handler Class="KeystrokeAssignment">
   <Param DisplayName="Tab" LParam="983041" Modifier="0" VirtualKey="9"/>
</Handler>

置換後

<Handler class="KeyStroke">
  <Param KeyName="*{TAB}"/>
</Handler>

*1:海外ではLogitech

*2:XML要素

JavaScriptのスコープ

JavaScriptでは、varを付けないで変数を宣言するとグローバルと見なされる。

例:2が2個出力される。varを付けていれば2と1が出力される。

count = 1;

function getCount() {
  count = 2;
  return count;
}

document.writeln(getCount());
document.writeln(count);

ここで1つ疑問。そもそも一般的にvarを付けない形式で実装する習慣なのかどうか。
全てにvarを付けるようなスタイルが一般的になっていないのだろうか。今度調べてみよう。

Markdownでハイライト

はてなブログもMarkdownで書けるようになっていた. GitHubでも使うし,Redmineでもプラグイン入れて書けるし,最近のスタンダードって感じだな. コードのハイライト,忘れるので備忘録.

 ```{language}

動かない, Pepper

昨日は話をさせたので、本体を動かしてみようかと. が,動かない.

from naoqi import ALProxy
motion = ALProxy("ALMotion", "x.x.x.x", 9559)
motion.wakeUp()
motion.setStiffnesses("Body", 1.0)
motion.moveInit()
motion.moveTo(0.5, 0.0, 0.0)

同僚の話によると周りに物があるからダメなんじゃないかと言うことでなるべく何も所に手で移動させて見たがだめだった. うーん.次は遠隔操作ではなく,プログラムを転送して実行してみるか….

今日はここまで.

はじめてのPepper開発 with Python

所属する会社にPepperが届いて数週間、若手がPepperを弄っているのを横目で見ながら自分も触ってみた。

環境

環境はGUIベースのChoregraphe(コレグラフ)というものでなく、Pythonで。
なぜかというと、他の人がGUIベースでやっていたから。あまのじゃくである。

インストール

PythonSDKをダウンロードするには、Pepperと紐付いたアカウントが必要。
SDKくらいID登録すれば誰でも入手可能可能なようにならないのだろうか。
アルデバランのサイトのDocumentを見ればインストール方法は書いてある。
Pythonの実行環境が必要なのは無論。

Aldebaran Robotics | Humanoid robotics & programmable robots

いつものHello

いつものHello, Worldをば。

from naoqi import ALProxy
tts = ALProxy("ALTextToSpeech", "x.x.x.x", 9559)
tts.say("Hello, World!")

声のピッチとスピードを変更

声色を変えて、内線案内。

from naoqi import ALProxy
tts = ALProxy("ALTextToSpeech", "x.x.x.x", 9559)
tts.setParameter("pitchShift", 1.5)
tts.say("\\rspd=80\\組込み技術センターの内線は3213です")
tts.setParameter("pitchShift", 0)


最後に

tts.setParameter("pitchShift", 0)
しないと、通常の声色も変わったままになってしまうので注意。