RTミドルウェアを用いたメディアアート制作およびウェブサイトによる支援
RTミドルウェアを用いたメディアアート制作およびウェブサイトによる支援
Post date:
Sat, 2016-10-29 13:47
概要
初心者のRTミドルウェアを使用したメディアアート制作を支援するために、具体的な制作事例を公開したウェブサイトを作成しました。
コミュニティ活動
現在はこちらでコミュニティ活動を行なっています。
http://media-rt.weebly.com/
作品概要
- Magicalight
- 以下の機能を持ったLEDキャンドルを制作しました。
- 自然の火のように揺らぐ
- 息を吹くと点灯/消灯する
- 複数のMagicalightと連動する
開発環境
- 言語:C++
- OpenRTM-aist-1.1.1
- OS:windows 10(64bit)
- Visual Studio 2015 Express
- RaspberryPi Model B
作品紹介
- 作品紹介スライド
- デモムービー
発表スライド
発表スライド from Shintaro Nakazawa
ダウンロード
・コンポーネント、マニュアルなどは下のURLからダウンロードできます。
https://github.com/mediart-C/Magicalight
更新履歴
- 2016.10.29 : プロジェクトページを作成しました。
- 2016.10.31 : ソースコード、マニュアル、紹介スライド、デモムービーを公開しました。
- 2016.11.2 : マニュアルを修正版に更新しました。
- 2016.11.14 : コンポーネント及びマニュアルの修正版をアップロードしました。
- 2017.01.06 : RTミドルウェアコンテスト2016での発表資料を追加しました。
問合先(メールアドレス):
mediartcommunity@gmail.com
Last modified:
Wed, 2017-11-29 11:14
Comments
作品紹介スライドを見ることができません。
返信遅れてしまい申し訳ございません。
芝浦工業大学の中沢です。 このたびはご迷惑おかけして申し訳ございません。 また、ご指摘いただきありがとうございます。 スライド修正致しました。
対応していただいてありがとうございます。 スライドはこちらでも見れるようになりました。
度々すみません。ソースコード、マニュアルを読んだのですが以下の点が気になりました。
Miyamoto Nobuhiko様
返信が遅れてしまい申し訳ございません。
コメントありがとうございます。芝浦工業大学の中沢です。 以下にお答えいたします。
・GitHubにZIPでアップロードしていることについて
各ファイルのダウンロードを容易にするために圧縮しております。 また、コンポーネントに関しましては、圧縮されていないものをダウンロードしたとき、不具合が発生してしまったため、圧縮いたしました。
・AnalogInputのonExecute関数内でusleep関数を使用していることについて
本コンポーネントでは、アナログデータを受け取るときのサンプリング感覚を定め、重さを軽減するためにusleep関数を使用いたしました。
・LEDStateManagerについて
ご指摘ありがとうございます。 コメントを参考にプログラムを改善したいと思います。
返信していただいてありがとうございます。
コンポーネントのソースコードをZIPファイルでアップロードしている事についてですが、そのままソースコードをアップロードした場合にどのような問題が発生したのでしょうか?
onExecute関数内でusleep関数を使用していることについてですが、実行コンテキストの実行周期を設定すれば指定した間隔でデータを取得することはできます。あえてusleep関数を使う理由があれば教えてください。
返信遅れてしまい大変申し訳ございません。 芝浦工業大学の中沢です。
・発生した問題について
そのままソースコードをアップロードすると、それらをダウンロードしたあとにVisual Studioでビルドが通らなくなるという問題が発生しました。 その問題は各コンポーネントを圧縮し、ダウンロード後さらに解凍することで解決いたしました。
・usleep関数について
お恥ずかしながら実行コンテキストの実行周期を設定するという発想に至りませんでした。usleep関数を使うことに関して拘りはないので、ご指摘のように実行周期を変更させていただきます。丁寧なコメントありがとうございます。
返信ありがとうございます。
多分、ビルドが通らなかったのはGitHubにアップロードする際に改行コードが変わったせいだと思います。 Git for Windowsを使用している場合はインストール時に設定があったと思うのですが、以下のどれを選択したのでしょうか?
宮本様
遅れてしまい申し訳ございません。 芝浦工業大学の中沢です。
先ほどGitHubで検証してみたところ、宮本様にご指摘いただいた通り改行コードの問題でした。 なので「Chechout as-is, commit as-is」を選択し、「git config --global core.autocrlf false」でGit for Windowsの設定を変更したところ、正常にアップロードできました。 ご丁寧に教えて頂きありがとうございます。
内容を確認させていただきました.
マニュアル,動作している動画,コンポーネント分割ともにレベルの高い作品と感じました.
非常に細かい点で恐縮ですが,3点コメントさせていただきます.
・全てのコンポーネントにおいて,Deactivate 状態時に何も処理がないのですが,動作を停止する等の処理は不要な動作仕様でしょうか
・ThresholdSwitch で,メンバ変数名が I, j, k などになっていますが,保守性を上げるためにもぜひ意味のある名前付けをして欲しいです
・PWMFluctuationsで,MaxBrightness 以上の輝度を出せてしまっているように見えました.下記のような数式が期待値ではないでしょうか?
【誤】rand()%MaxBrightness+MinBrightness
【正】rand()%(MaxBrightness-MinBrightness+1)+MinBrightness
返信遅れてしまい大変申し訳ございません。 芝浦工業大学の中沢です。 ご指摘いただいた以下の点についてお答えいたします。
・Deactivate時の処理について
大変申し訳ございませんが、Deactivate時の処理が抜けてるコンポーネントがございました。後日修正版をアップロードさせていただきます。
・ThresholdSwitch内の変数について
かしこまりました。後日修正版をアップロードさせていただきます。
・PWMFluctuations内の数式の件について
ご指摘いただいた通りでございます。現在修正を行っていて、テストが終了し次第アップロードさせていただきます。
この度は多くのご指摘ありがとうございます。至らぬ点が多く非常に申し訳ないです。 すべてのコンポーネントの正常起動が確認でき次第アップロードさせていただきます。