こんにちは、B3の堀内です。私は春学期、ypspur-coordinatorというプログラムを使ってロボットを動かしていました。その経験を通して今ではある程度ロボットの扱いに慣れてきました。今回は今勉強しているROSを使い、ypspur_rosやurg_nodeというノードを起動することでロボットを動かしていきたいと思います。上に挙げたような既存のノードだけではつまらないので、今回はROSのノード作成の勉強も兼ねて独自のノードもシステムに組み込んでみました。
作成した独自のノードについて軽く説明します。 ① sensor_avoid_nodeというノードの主な役割は、urg_nodeから送られてくるLiDARでスキャンした距離情報を元に壁を検知し、ロボットが壁にぶつからないように速度指令値を計算し、それをypspur_rosに送ることです。 ② sensor_mapping_nodeはLiDARでスキャンした距離情報を元に地図作成に必要なxy座標を計算し、csvファイルに保存します。 ③ robot_spin_nodeはロボットを90度回転させます。 ④ robot_15second_nodeは15秒経ったら他のノードに15秒経過したことを知らせます。
次にこのシステムを実際に中野キャンパスの11階で動かしてみることにします。 今回動かすのは下の画像のロボットです。
ロボットがどのように動くのかを上の図で説明します。 まず、図の青の地点から15秒間ロボットを直進させて緑まで行きます。次に、その場で90度右に回転させます。回転するのは黄色の部分をスキャンするためです。その後、その場で90度左に回転させて元の向きに戻します。最後に、赤まで直進させてから止まります。 このようにロボットを動かして得られた座標により作成した散布図がこちらです。上の図とほぼ同じような形ができているのがわかると思います。
実際にこのように自分で作成したノードの起動までやってきて、浅かったROSの理解が少し深まった気がします。これからもROSを勉強してさらに理解を深めていきます。