アイトラッカーを使ったプログラムをROSで動かしてみた。

2021年11月18日

こんにちは、B3の小川です。アイトラッカーを使ったプログラムをROSで動かしてみたときの話についてです。 アイトラッカーはTobii Eye Tracker4Cを使いました。TobiiのアイトラッカーはWindowsにしか対応していないものもあるので、注意してください。アイトラッカーからは画面の左上を(0,0)とし画面の右下を(1,1)としたdouble型の視線座標を取得することができます。 img ROSで動かすのでTopic通信が利用できるように「視線座標を取得してPublishするノード」と「視線座標をSubscribeしてOpenCVで画面を描画するノード」の2つのノードを作りました。 実行結果としては、右上見たら右上にテキストが描画され、左下を見たら左下にテキストが描画され……といったように意図通りの動作をしてくれました。実行中にROSのrqt_graphというコマンドを使ってノード間のTopic通信を可視化してみました。 img 左のtobii_publishが「視線座標を取得してPublishするノード」で、右のopencv_subscribeが「視線座標をSubscribeしてOpenCVで画面を描画するノード」です。ノード間の矢印の上に書かれているnumber_yは視線座標のy座標のことです。僕は、number_x(視線座標のx座標)が書かれた矢印とnumber_y(視線座標のy座標)が書かれた矢印があるはずだと思っていたので、この結果は意外でした。おそらくnumber_xのやり取りをnumber_yが上書きするようになってしまったのだと考えています。 僕は現在、シミュレータの中でロボットアームを動かすことを1つの目標にしているので、Gazeboの使い方を勉強しています。Gazeboの勉強がある程度できたら、Unityの勉強をしようかと検討中です。 それでは。