ROSを使用したCRANE+の動かし方 その3

こんにちは!長谷川です。
前回はROSのインストールについて説明しましたが、今回はROSの環境のセットアップとROSのファイルシステムについて説明したいと思います。
今回は、主に英語版Wikiのチュートリアルに従って進みます。日本語版Wikiのチュートリアルは情報が古いですが、英語版がわかりにくい場合、適宜参照すると理解の助けになると思います。

環境の確認

まず、端末(Terminal)を開き、[php]export | grep ROS[/php]と入力します。すると、以下のように表示されました。
ROS_CRANE_3_1
これはROSの環境変数を表示させる機能のようで、表示されたということはセットアップがきちんと行われたということみたいです。もしも何も表示されない場合は、ROSの環境変数が宣言されていないということで、[php]source /opt/ros/indigo/setup.bash[/php]と打ち込まねばなりません。前回「~/.bashrc」を編集したのは、これを毎回打ち込む手間を省くためのものだったみたいです。

ワークスペースの作成

次に、ROSのワークスペースを作成します。
今回使うROSはROS Indigo Iglooなので、ROS Groovyより後に出たバージョンです。よって、catkinというビルドシステムを採用しているみたいです。catkinの方の説明に従って進めていきます。以下のように入力していってください。
[php]
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
[/php]
ここで、「$」というのは、コマンドプロンプトのことです。つまり、「$ 」より右の一文を打ち込んだらEnterを押すことを繰り返してください。次に、[php]cd ~/catkin_ws/[/php]と入力し、作ったワークスペースに移動してから、[php]catkin_make[/php]と打ち込みます。
Enterを押すと、処理が実行されます。これは、ワークスペースをビルドしろという命令のようです。最後に、[php]source devel/setup.bash[/php]と入力します。
最後の命令は、ビルドの結果生まれたsetupファイルを読み込むためのものです。この命令により、環境がセットアップされます。逆に言えば、この命令をしておかないと、ROSの機能の一部が使えません。端末(Terminal)を開き直した際は、
[php]
$ cd ~/catkin_ws/
$ source devel/setup.bash
[/php]
という処理をしておかねばならないことがあります。毎回これを打ち込む手間を省きたい場合は、前回と同じように、
[php]echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc[/php]
と入力して、「~/.bashrc」を編集しておきましょう。

ROSのファイルシステムについて

ROSのソフトウェアは、パッケージという構成単位から作られています。パッケージは結構自由になんでも入れられるものらしく、ライブラリやツール、実行ファイルなどを入れることができます。パッケージを入れられる、メタパッケージというものもあります。そして、package.xmlという名前がついたマニフェストというものにパッケージの説明が書かれています。この説明の中でパッケージ間の依存関係も宣言されています。
ROSのソフトウェアにおいては、大量のパッケージが複雑に絡み合うことになります。そのパッケージごとの作業の際は、端末(Terminal)の階層をいちいち移動しないといけません。よく使う命令は「cd」だと思いますが、これの後ろにパスを入れるのがメンドクサイ。この他にも、初期設定されてるコマンドだけでは、色々とやりづらいことが出てくるみたいです。そこで、ROSにはファイルシステムに関するツールが色々用意されています。以下では、それらを実際に使ってみましょう。

まずは、「rospack」という命令を使ってみましょう。
端末(Terminal)に、[php]rospack find roscpp[/php]と入力すると、「/opt/ros/indigo/share/roscpp」と表示されます。
「rospack」に「find」というオプションをつけると、パッケージのパスを表示してくれる機能になるみたいです。あのパッケージどこにあったっけ?ってなっても、いちいちパソコン全体の検索をすることなく、ROSのファイルシステム内部に絞って検索してくれるので、便利ですね。

次に、「roscd」という命令を使ってみましょう。
[php]
$ roscd roscpp
$ pwd
[/php]
と入力します。
ROS_CRANE_3_2
roscdは、指定したパッケージのディレクトリへ移動できる命令です。何がいいかというと、パッケージを名前で指定できるのがすばらしい。「pwd」というのはUnixのコマンドで、現在のディレクトリの場所を表示させる命令なので、「/opt/ros/indigo/share/roscpp」と表示されるということは、きちんと目標のroscppディレクトリに移動出来ていることになります。

なお、roscdもrospackも、$ROS_PACKAGE_PATHの中のディレクトリ以下にあるROSのパッケージのみを探し出します。ここに何が登録されてるのか知りたいときは、[php]echo $ROS_PACKAGE_PATH[/php]と入力します。
ROS_CRANE_3_3
「/home/turtlebot/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks」と表示されました。「:」は区切り文字です。つまり、「/home/turtlebot/catkin_ws/src」と「/opt/ros/indigo/share」と「/opt/ros/indigo/stacks」が登録されているということになります。このディレクトリ以下にあるものなら、名前だけで検索してくれるようですね。

roscdのお話に戻りましょう。roscdはパッケージのサブディレクトリ(パッケージに含まれているディレクトリ)に移動することもできます。
[php]
$ roscd roscpp/cmake
$ pwd
[/php]
と入力してみましょう。「/opt/ros/indigo/share/roscpp/cmake」と出てくるので、roscppのサブディレクトリcmakeに移動できたことがわかります。
ちなみに、roscdを引数なしで実行すると、$ROS_WORKSPACEに登録されているディレクトリに移動します。
ROS_CRANE_3_4
ここでは、「/home/turtlebot/catkin_ws/devel」に移動したことがわかります。
また、[php]roscd log[/php]と入力するとROS のログファイル保管フォルダへ移動しますが、まだROSプログラムを一つも実行していないので、ここには何もないみたいです。

次に、「rosls」という命令を使ってみましょう。
[php]rosls roscpp_tutorials[/php]と入力すると、「cmake package.xml srv」と表示されました。roslsという命令は、Unixコマンドのlsと同じように、指定したディレクトリのファイルの一覧を表示させるものです。lsと違うところは、後ろにパスではなく、ファイル名をそのまま入れられることです。今回は、roscpp_tutorialsというパッケージの中に含まれるファイルの一覧を表示させたということですね。

最後に、タブ補完という機能をご紹介します。
タブ補完とは、パッケージ名を書きかけの状態でTabを押すと、自動で可能な限り不足分を補ってくれる機能です。その書き出しから始まるパッケージがいくつかある場合は、それらに共通する部分だけを埋めます。その場合はもう一度Tabを押すと、該当するパッケージの一覧を表示させることもできるので、その一覧を参照して不足分を埋めることが可能です。

以上、ROSの環境のセットアップとROSのファイルシステムについて説明しました。
次回は、ROSのパッケージの作成とビルドについて説明したいと思います。

Arduinoに挑戦! No.4

こんにちは。
ネコ店長は痛めていた腰が治り絶好調に働いている今日のアイルです。

1月15日

この日はランプをつくるためのテキストと回路を作りました。
ここではArduinoだけでなく、パソコン上で走らせるProcessingというのが必要だったのですが、
この日は開発環境が整っていなかったので、Processing用のテキストをとりあえずArduinoに入力しました。(後日Processingに入力)
それがこちらになります↓

Processing 1

Processing 2

Processing 3

Processing 4

Processing 5

Processing 6

これをチェックしたところ、直せと表示されたのですがどこを直したいいのか場所が見つからず断念してしまいました。
困ったものです。。。

次にArduino用のテキストを入力

Arduino スケッチL

Arduino スケッチL2

Arduino スケッチL3

チェックしたら、回路を組み立てます。
図6-2と本体の+と-が逆なので注意します。

2015-01-15-17-32-34_photo

ランプを作る材料がなかったのでとりあえずここで今回は終了です。

センサを使って暗くなると点いて、明るくなると消えるLEDなどが作れそうかな、なんて思いました。
すでにありますけどね(笑)
電子工作が好きな方は「すでにあっても改良して自分好みの素敵なものを作りたい」
という気持ちから作られているみたいです。
わたしはまだそこまでに至っていませんが(笑)

このように新しいことに挑戦する機会を与えてくださった社長と支配人、
エラーが出るたびにその箇所を探してくださった山本さんにこの場を借りてお礼申し上げます。

以上4項に渡って読んでいただきありがとうございました。
このブログで初心者のみなさんに「わたしでも出来そう」「こんな世界があるんだな」
そう知っていただけたら幸いです。

☆お知らせ☆
みなさまの次はあるの?という声にお答えして新シリーズをスタートさせることが決定いたしました。
記事として載せるのは少し先になってしまうかもしれませんが
また暖かく見守っていただければ幸いです。

ROSを使用したCRANE+の動かし方 その2

こんにちは!長谷川です。
前回はROSそのものについての解説をしましたが、今回はROSを実際にインストールしてみましょう。
長くなると思いますが、環境が整わないとCRANE+を動かすこともできないので、ご辛抱ください。

使用PCの環境

この連載で使用するPCのOSはUbuntu 14.04 64bit版(日本語環境)です。インストールの仕方については、ここでは割愛させていただきます。一つ注意点を述べておきますと、他OSの仮想マシン上でUbuntuを走らせている場合、インターネット接続やUSBポートとの接続などに影響が出ることがあります。そのため、チュートリアル通りの作業でROSを動かしたい場合は、仮想マシンを使わず、直接Ubuntuをインストールすることをお勧めします。元々入っていたOSを残したい場合は、デュアルブート環境にするとよいでしょう。

ROSのインストール

ROSのインストールは、ROSのWikiとその日本語版に従って行います。どんどん更新されていくページなので、英語版と日本語版で違いが出ることがありますが、英語版が最新なので、それに従ってください。日本語版は理解の助けにしてください。
まず、「Install」のリンクを押します。現時点では「ROS Indigo installation instructions」のページに飛ぶので、「Select Your Platform」でUbuntuを選択します。すると、インストールの仕方が書かれたページに移動します。
なお、これはROS Indigo Iglooのインストールページです。Indigo IglooというのはROSのバージョンの名前で、Ubuntu 14.04に対応したROSになります。この一つ前のバージョンはROS Hydroというのですが、Ubuntu 14.04に対応していません。対応しているかいないかは、「1.2 Setup your sources.list」の所にバージョン名が上がっているかどうかで確認できます。今回は「Ubuntu 14.04 (Trusty) 」と書かれているため、大丈夫です。
ROS_CRANE_2_1
さて、「1.1 Configure your Ubuntu repositories」からやっていきましょう。貼られてるリンクをクリックして出てきたページを読んで、レポジトリの構成を行いました。コマンド打ち込みでもできるんでしょうが、私にそこまでの能力はないので、GUIを活用させてもらいましょう。デスクトップの左のプログラムバーから「システム設定」を開き、「ソフトウェアとアップデート」を開きます。
ROS_CRANE_2_2
この、main, universe, restricted, multiverseに全てチェック入れろってことみたいですね。ダウンロード元は「日本のサーバー」でも「メインサーバー」でも大丈夫だと思います。

次に、[Ctrl]+[Alt]+[T]キーで端末(Terminal)を開きます。そこに、
[php]sudo sh -c ‘echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'[/php]
と打ち込みます。Enterを押すと、パスワードを聞かれるので、打ち込みます。この時、端末には打ち込んだパスワードが表示されません。何文字打ち込んだかも表示されないので、打ち込んでも表示されない!とかあわてなくても大丈夫です。打ち終わったらEnterを押します。パスワードが間違っているともう一回聞いてくるので、入力し直しましょう。次に、
[php]wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O – | sudo apt-key add -[/php]
と打ち込みます。Enterを押すと、色々表示されます。「OK」と表示されて、コマンドプロンプトが表示されたら、[php]sudo apt-get update[/php]と打ち込みます。
ROS_CRANE_2_3
Enterを押すとパッケージの更新作業が始まります。途中でパスワードを要求されたら入力し、コマンドプロンプトが表示されるまで待ちます。
ここまででインストールの下準備は完了して、次はいよいよインストールです。「Recommended」って書いてあるものをやるのが無難なので、[php]sudo apt-get install ros-indigo-desktop-full[/php]と入力します。途中でパスワードを要求されたら入力してください。コマンドプロンプトが表示されたら、[php]sudo rosdep init[/php]と入力します。次に、[php]rosdep update[/php]と入力します。この処理が終わると、ROSが使用可能になります。

次に環境設定を行います。[php]echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc[/php]と入力した後、[php]source ~/.bashrc[/php]と入力します。
一文目は、bashのセッションが新しいシェルを起動する度に、ROSの環境変数が自動的に追加されるよう、設定を書きかえるためのコマンドです。つまり、端末を起動するたびにROSの設定が自動的に行われ、すぐにROSが使えるようにするためのコマンドみたいです。コマンド自体がやっていることは、「~/.bashrc」というファイルの末尾に「source /opt/ros/indigo/setup.bash」という文を付け加えているだけなので、間違った文を付け加えてしまった場合は、~/.bashrcをエディタで開いて修正することができます。
二文目は、設定の変更を今開いている端末に反映させるためのコマンドです。
最後に、[php]sudo apt-get install python-rosinstall[/php]と入力します。これでROSのインストールの全作業が完了です。お疲れ様でした。

以上、ROSのインストールについてお話してきました。
次回は、ROSの環境のセットアップとROSのファイルシステムについて説明したいと思います。

ROSを使用したCRANE+の動かし方 その1

はじめまして!
アールティでアルバイトをしております大学2年生の長谷川と申します。
これから、何回かに分けまして、ROSを使用してTurtleBot2用ロボットアーム「CRANE+」を動かす方法について解説していきたいと思います。ROSを知らない、使ったことがない方でも、この解説を最初から読んでいけば、最終的にはCRANE+を動かすことができるようになるように解説していきたいと思っています。よろしくお願いします。
CRANE+全体像500

ROSとは

ROSとは、Robot Operating Systemの略で、ロボットベンチャー企業Willow Garage社が中心となって開発・公開している自律ロボット用ミドルウェアのことです。大きな特徴としては、使用が無料であること、オープンソースであることなどが挙げられます。日々開発を行っている世界中のプログラマーによるROSコミュニティも形成されており、何らかの原因でプログラムがうまく動かず、自分では解決できないような場合は、ROS Answersなどで全世界のユーザーに対し質問をすることもできます。多くの場合、自分の抱えるトラブルについてはもう質問されており、それに対する回答を見ることで、トラブルを解決することができます。

ROSを使うメリット

前の章ではROSとは何かについて解説しましたが、ROSを使うメリットはどこにあるのでしょうか。
例えば、あるカメラつきのロボットがあって、カメラでとった画像を認識して動くようにしたいとします。この時、カメラで画像撮影→画像認識→ロボットの駆動を繰り返すプログラムを一つにまとめて作ったとしましょう。これでもロボットは動きますが、カメラやモーターがコンピューターのどこに接続されているのかなどのハードウェアに依存してソフトウェアが設計されているため、ハードウェアが変わってしまうとソフトウェアのハードウェアに依存する部分を書き直さないといけなくなります。つまり、ソフトウェアの再利用性が低いというわけです。
ROS_CRANE_1_1
では、さっきのプログラムを、カメラで画像を撮影する部分と、画像を認識する部分、ロボットの駆動の仕方を決める部分、実際にロボットを駆動させる部分に分け、それぞれがデータの受け渡しを行うようにした場合はどうでしょうか?直すのは、カメラで画像を撮影する部分と、ロボットを駆動させる部分だけになりますよね。また、同じような動作をするロボットでは、画像を認識する部分やロボットの駆動の仕方を決める部分は共通になるので、この部分を多くの人と共有すれば、他の人はその部分を利用するだけで同じようなロボットを作れるということになります。このような、ロボットのソフトウェアレベルでのモジュール化を行い、再利用性を高めようとするのが、ROSをはじめとするロボット用ミドルウェアです。
ROS_CRANE_1_2
中でもROSは、更新情報が公式ホームページからアクセスできる範囲にまとまっており、ユーザーのコミュニティがしっかりと形成されているため、他の人が書いたプログラムを最大限活用することができます。これは、ソフトウェア開発においては大きな時間短縮効果があります。

以上、ROSについての説明と、その利点についてお話してきました。
次回は、ROSの動作環境について説明した後、ROSのインストールの仕方について説明したいと思います。

ROBOTIS社製品の価格改訂

いつもご利用ありがとうございます。
弊社で取り扱っているROBOTIS社の製品の価格が円安の影響で変更になりました。
それにともない、ROBOTIS社の製品を使った以下のロボットの価格も変更させて頂きます。

Dynamixel Arm ¥649,000
Dynamixel Arm 充電器&電池セット ¥25,000
Turtlebot2用ロボットアーム ”CRANE”(クライン) ¥49,800
Turtlebot2用ロボットアーム ”CRANE+”(クラインプラス) ¥49,800

よろしくお願い致します。

Dynamixel Arm Dynamixel Arm 充電器&電池セット Turtlebot2用ロボットアーム ”CRANE”(クライン) Turtlebot2用ロボットアーム ”CRANE+”(クラインプラス)

RaspberryPi2入荷!

今月はじめに発売されたRaspberryPi 2 Model Bがアイルに入荷しました!
RPi2-1
RPi2-2
ARM Cortex A7プロセッサ(4コア900MHz)と1GB RAMを採用するなど、スペックは大幅に強化されています。
RPi2-5
基板形状は前のB+と同じです。表面実装部品の配置が換わり、いくつかの市販されているB+用ケースでは干渉があるみたいですが、少し削る程度で対応可能だそうです。
アイルで現在取り扱っている3Dプリンタ製のケースにはぴったり収まりました!
RPi2-4RPi2-3

MicrosoftからもWindows10と開発環境を無償提供とのアナウンスがあり、IT界隈注目の的です。

なお、強い光を当てるとリセットされるというバグがあるとの情報が入っているため、弊社では確認中です。

アイル店頭では5616円(税込み)にて販売中!在庫少な目なのでお早めに!

対応ケース、USB電源も入荷予定!


Raspberry Pi 2 Model B購入はこちら!

Arduinoに挑戦! No.3

こんにちは。
秋葉原は晴れて暖かい日が続いていますが、みなさまいかがお過ごしですか?

1月14日

この日は“スイッチを押すと点いて離すと消えるの”を作りました。
図5-4のように組み立てて

2015-01-14-10-54-16_photo

テキストを打ち込み

Arduino スケッチF

アップロードします。そして以前作ったスイッチの回路を追加します。
またテキストを打ち込み

Arduino スケッチG

Arduino スケッチG2

アップロードします。

このようにスイッチを押すと点灯し、もう一度スイッチを押すと消灯させることができました。

次に光センサを使ってLEDの明るさを変えてみます。
まず図5-6のように回路を組み立ててテキストを入力します。

Arduino スケッチH

慣れてきたのかミスなく成功!これをアップロードします。
次にLEDピンなどを設置します。

2015-01-14-15-56-31_photo

新たにテキストを入力。

Arduino スケッチI

アップロードします。

動画の通りセンサを隠すと光が弱まり、隠さないと強く光るようになりました。

次に光センサーからの情報を見える化します。
テキストを入力して

Arduino スケッチJ

これをアップロード。
するとPCの画面上にだーーーっと数字が流れてきます。
試しにセンサを軽く隠すと数字が小さくなります。
速すぎてスクリーンショットや写真と撮るレベルではないので割愛させていただきます。

この次の“モーターを動かす”というのは、モーターがなかったので行いませんでした。

いかがでしたか?
このシリーズは残すところあと1回です。
次回はとっても長いテキストに悪戦苦闘します(笑)
次回もお楽しみに!

ネコ店長ストラップ発売します。

 現在アールティの実店舗Robot Aisle(ロボット アイル)の店頭で皆様をお迎えしているおなじみネコ店長ですが、このたびそのネコ店長キャラクタグッズとしてLEDが光る基板アクセサリのストラップを発売する事になりました。

ネコ店長ストラップ表

 表のデザインはネコ店長がお手玉をする絵になっていて、スイッチを入れるとLEDが光が左右に動く様に点滅します。光の移動はだんだんと速くなっていき最後は… どうなるのか動画をご覧下さい。

 裏側にはLED以外の部品と電池ホルダ、またシルクで当社ロゴなどが入れてあります。

ネコ店長ストラップ裏

 可愛いネコ店長のお手玉をぜひ楽しんで下さい。Robot Aisleで販売開始しています! Webショップでも発売中、この黒い基板は初回限定バージョンになります。テスト用ボタン電池(CR2032)1個付き。また足裏の肉球部分に半田を盛っていてさわった感触もいい感じになっていますよ。

 さて、ここからはちょっと技術的なお話です。今回はマイコンを搭載してLEDのアニメーションをしています。使用したマイコンはAtmel社のAVRマイコンATtiny13Aです。LEDの接続はチャーリプレクシングというマトリックス式にしています。これによって少ないピン数でLEDを駆動する事が可能です。今回はI/Oピン3本で5個のLEDを駆動しています。

ネコ店長ストラップ基板の回路図
ネコ店長ストラップ基板の回路図

 プログラムはArduino IDEを使って開発しました。私の開発・公開しているbitDuinoというATtiny13用のサポートファイル集とチャーリプレクシングで6LEDまで使えるbitDuino用のライブラリを使用しています。書込み用端子も出ているので、これらを参考にハックする事も出来ますよ。(具体的な方法まではサポート出来ませんので、ご了承下さい。)



スケッチ:nekotencho2.ino

#include <bit6LED.h>

byte led[5] = {1,0,3,5,4};
byte spd=10;
byte countMax=1;
byte count;

void effect(){
  start6LED();
  byte i,j;
  for(j=254;j!=255;j--){
    for(i=0;i<5;i++){
      setLEDValue((led[i]),j);
    }
    delay(2);
  }
  stop6LED();
}

void setup() {
  init6LED(1,3,4);
  count = 0;
}

void loop() {
  byte i;
  count++;
  if(count == countMax){
    count = 0;
    spd--;
    countMax++;
    if(spd == 0){
      spd = 10;
      countMax = 1;
      TurnOffAllLEDs();
      effect();
      delay(1000);
    }
  }
  
  for(i=0;i<4;i++){
    TurnOn1LED(led[i]);
    delay(spd<<5);
  }
  
  for(i=4;i>0;i--){
    TurnOn1LED(led[i]);
    delay(spd<<5);
  }
}

Pepperきました!

開発者版のPepperが来ました。
申し込んでからはや○ヶ月、長かったなぁ…。

Pepperはこういう箱に入ってやってきます。
P1130131

開梱の儀。
P1130135

プロとして、きちんと安全講習会を実施。これは大事なことです。
自分の身を守れないものは他人の身を守ることはできません。
プロとして、またロボットを作る、運用する者として、安全をきちんと守れる訓練は必須です。

Pepperクラスになると、一般の使用者とちがって、開発者はどんなことが起こるかわからない危険性と隣りあわせだと言うことを肝に銘じて接して欲しい大きさですね。

ちょっと荒いけど、講習等で参考にできそうなところを書いてみます。

20150204pepper

最低限やること

  • 基本中の基本:マニュアルを確認する

    たいていの場合、マニュアルの最初は「安全について」になっています。きちんと最後まで読みましょう。
    最低限、チェックすべきは「緊急停止の仕方」「緊急停止時、および解除時に何が起こるのか」です。
    緊急停止時は突然動き出したり、電源が切れて倒れたり、いろんなことが想定されます。
    Pepperには「緊急停止時/解除時に何が起こるのか」が書いてありません。ロボットなれしてない方がどうするのか、ちょっと心配です。今度メーカーに聞いておきます。

  • ひも状のものを回りにおかない
    電源ケーブルは充電が終わったら必ず抜きましょう。思わぬ怪我の元です。
    洋服もひらひらしたものはだめです。巻き込まれます。手袋、マフラー、ズボンにしまってないシャツ、スカート、エプロン、だめです。
  • どうやったら安全な場になるかを考えて、確保する。
    まずは、ロボットの動く範囲を確認する。Pepperなどの場合は腕を広げた範囲と倒れたときの大きさを最低範囲と思えばよいです。
    Pepperは意外とスピードが速いのですが、バランスも悪いので、うまく動作作らないと倒れますから、激突はあまり心配しなくても大丈夫ですが、開発者は思わぬ動作をすることになる場面が多いので、できるだけ離れます。
    作業としては、ロボットと壁の間に入って作業するようなことをしないのは大前提です。
    大学なんかでよく見かけますが、ロボットを前において、壁にもたれて地べたにべったり座って開発とかやったらだめです。

    また、逃げ場を必ず作ってください。

    もう一つポイントとしては、一人で動作作成をやらない。これ、意外と知られてないですが、プロは基本にしてほしいことです。一人が何かあっても、助けにも行けますし、これほど大きくなると一人でモーション作るのは実は不可能に近いです。

    動作させるときは必ず「どこどこ動かします!」と誰も聞いてなくても、独り言のように思えても、大きな声で回りに知らせること。これで防げるひやりはっと事故はけっこうあります。

  • 緊急停止ボタンの位置確認
    位置を確認するだけでなく、押し具合も確認。
    周囲に声をかけながら動作することを訓練。
    実地訓練でやってもらいましたが、これは何度いわれても、声を出さない、返事があってから動く、ができないスタッフたち。訓練してないと声でないんですよねー。ということで今後何回か訓練をやることを心の中に誓いました。(どのくらいの頻度でやるとよいかはちょっと実験だな。)
    ちなみに、人型ロボットにおいて、ほとんどの場合、ほんとの緊急時には緊急ボタンなんて押せません。(実体験)
  • ロボットは壊れても直せますが、人間の怪我は直せませんので、ロボットから逃げる、これが一番です。

    でもこれも訓練してないとできません。科学館でも何十人のスタッフにも指導してきましたが、思わず手が出てしまうのが人間のようです。

  • 各部の名称と動き方の確認
    これは実はロボット屋だからできる訓練なので、一般の方には難しいかも。
    どこがはずれるのか、どこが手を怪我しやすいか、どこを触れば安全か。一つ一つ教えました。

20150204Pepper2

うちのPepperは、POSレジ業務ができるようになったら、ロボットアイルに配属です。
もうほとんどプログラムはできてるので、実機でしかできないモーションの確認とか細かいところの詰めをやってます。
皆さん、よろしくね!

NAOは絶賛発売中。
Pepperをアールティで販売できるようになるのはもうちょっと先かな?

Arduinoに挑戦! No.2

こんにちは。
節分にあたる今日は風が弱くいつもより快適なアイルです。
みなさんは恵方巻き召し上がりましたか?

1月8日

この日はとりあえず書籍に載ってる図の通りに組み立ててから、
書いてある通り打ち込んでArduinoに入れればOKみたいなので、やってみることに!

開発環境は支配人が整えてくださいました。ありがとうございます。
ちなみに開発環境というのはワードやエクセルと同じようなものです。

Arduino アイコン

このマークを押して開き

Arduino スケッチ画面

ここにテキストを打ち込んでいきます。

『Arduinoをはじめよう』ではじめに挑戦すること・・・それは“LEDを点滅させる”です。
まずLEDを指定の位置に差し込みます。

2015-02-03-14-56-36_photo

ArduinoにLEDを挿してスケッチに書籍どおりテキストを打ち込みます。
はじめて打ち込んだテキストがこちら↓

Arduino スケッチA

チェックしてミスがあるとここで教えてくれます。
注意されるのはスペルミスや全角になってしまっているところが中心です。
打ち込んだらチェックしてArduinoにアップロードします。

結果は・・・ 点滅しました!!!

早速点いてる時間消えてる時間を変更してみました。それがこちらです↓

いかがですか?
高校でHP作りを経験していたため、知らないものをひたすら打ち込むという作業は全く苦ではありませんでした。
でもこれからこのC言語を理解しなくてはなりませんね・・・

さあ次の課題に挑戦です!
次は“プッシュボタンでLEDをコントロール”できるようにしてみます。
前回と同じように組み立てて

2015-01-08-13-44-48_photo

2015-01-08-13-41-51_photo

テキストを書き込みます。ミスを直したものがこちらです↓

Arduino スケッチB

アップロードして・・・ 点きました☆

次は“ボタンを押すとLEDが点灯し、ボタンから指を離しても点いたままにする”というのを作りました。
一つ目のテキストがこちら↓

Arduino スケッチC

このテキストだとバグが起きやすいそうです。二つ目の少し改善したテキストがこちら↓

Arduino スケッチD

こちらのテキストもまだバグが起こりやすいそうです。そしてさらに改善したテキスト(完成版)がこちら↓

Arduino スケッチE

Arduino スケッチE2

これら三つのテキストを順にアップロードして比較しましたが、見た目は何も差がありませんでした。
どうやら、一つ目でも二つ目でも、運よくバグは起きなかったようです(ほっ)。