このページの本文へ

週替わりギークス第150回

ROSでデプスカメラを動かし、物が近づいてくるのを認識させてみた

2019年11月20日 17時00分更新

文● きゅんくん 編集● 上代瑠偉/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回の記事では、ROBOTISさんからいただいた2XLという1個に2軸入っている面白いサーボをROSで動かすことができた。

 今回は、2軸の2XLと1軸のXL2個を繋げて4つの軸をジョイパッドで動かしたあと、アームロボットをインタラクティブに動かす(手などが近づいてきたら逃げるアームを作りたい)ために、「Intel RealSense Depth C amera D435i」というデプスカメラをROSで動かし、物が近づいてくるのを認識させたいと思う。

今回完成したプロトタイプ。
Intel RealSense Depth Camera D435iで撮影したソファーとトミカを持った手。ソファーと手の間に距離があるのがわかる。

 デプスカメラとは、奥行きの情報を取得する深度センサーがついたカメラのことで、物同士の距離などがわかる。デプスカメラについて、今回はROSを使って撮影するところまでで、インタラクティブにするところまでは至っていない。次回インタラクティブを進めていきたい。

サーボを3つ、4軸動かせるようにした

 まずは、サーボを3つ、4軸動かせるように「basic.yaml」を書き換え、「joy_pan_tilt_4.py」という4つのサーボを動かすコードを用意したいと思う。

前回XLを動かしたときのシステム図。

 1軸のサーボXL(2個)と2軸のサーボ2XL(1個)を、デイジーチェーンで繋げる。

XLを2個繋げたときのように2XLとXLを繋げる。

 basic.yamlは「catkin_ws/src/dynamixel-workbench/dynamixel_workbench_controllers/config」の中にある。サーボの名前やサーボの個数が書いてあるので、これを4個に変更する。

 具体的には下記のようにした。#で「Return_Delay_Time」をコメントアウトしているのは、これがあると2XLが動かないからである。「id1」と「ID: 1」でややこしい名前になってしまっているのが気になるが、後で軸の回転方向を変える可能性が高いので、「pan, tilt」などにしたくなかった。良い名前付けのアイデアのある人はそれに変更していただきたい。

 ちなみに、basic.yamlを呼び出しているコードは「catkin_ws/src/dynamixel-workbench/dynamixel_workbench_controllers/launch」の中の「dynamixel_controllers.launch」の10行目にある。

 # You can find control table of Dynamixel on emanual (http://emanual.robotis.com/#control-table)
 # Control table item has to be set Camel_Case and not included whitespace
 # You are supposed to set at least Dynamixel ID
 id1:
 ID: 1
 # Return_Delay_Time: 0
 id2:
 ID: 2
 # Return_Delay_Time: 0
 id3:
  ID: 3
 id4:
 ID: 4
 Collapse

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!