0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Openmanipulator-xをProcessingで動かしてみたかった

Posted at

はじめに

こんにちは、しがない高校生をしているBasalteと申します。
今日は少しRobotis製品を触ってみたという記事です。
Openmanipulator-xやDiynamixelなどのRobotis製品は、製品の3DデータやROSのパッケージなどのオープンソースが数多く公開されています。
その中でもROSを使わない方法でOpenmanipulator-xを制御をしてみたかったので、Processingを使う環境を構築していきます。
まだ動いたわけではないので、自分用の備忘録として残しておきます。うまくいったらその時にまた更新します。

環境

・Intel MacOS sonoma
・Arduino IDE 2.2.1
・Processing 3.5.4
こちらの公式サイトに3.4.5で動作するという記載があったのでこちらを使用します。(最新は4.3)

Arduinoの構築(完了)

まず、Arduino IDEにボードを追加する必要があります。
左上のメニュー画面から、
Arduino IDE > perferences...
のsettingsの画面の下の方にURLを記述する欄があるので、こちらを追加します。

https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json

次に、OpenCR用のライブラリをインストールします。
左上の Tools > Board: > Board Manager...
するとライブラリのリストがたくさん出てくると思うので、OpenCRを選択してInstall

最後に
File > Examples... > OpenManipulator > Chain > Open_Manipulator_Chain
を選択して書き込むとモーターを制御する下準備は完了です。

ちなみにですが、OpenCRの電源を落とすときや違うプログラムをOpenCRに書き込むときは必ずアームに手を添えるか地面に降ろしておくべきです。急にモーターの制御が止まるとアームが地面などに落下して衝突するからです。

現状(12/2現在)

今のところ動いていないです。
エラーがいくつか出ているので今後解決していきます。
今は出ているエラーと解決した(?)エラーを備忘録しておきます。

Serial関連のエラー

Please, Set On Controller
[0] "/dev/cu.Bluetooth-Incoming-Port"
[1] "/dev/cu.URT0"
[2] "/dev/cu.usbmodemFFFFFFFEFFFF1"
[3] "/dev/tty.Bluetooth-Incoming-Port"
[4] "/dev/tty.URT0"
[5] "/dev/tty.usbmodemFFFFFFFEFFFF1"
Error, disabling serialEvent() for /dev/tty.usbmodemFFFFFFFEFFFF1
null

こちらのエラーは

connectOpenCR(5); // Inside the brackets depends on a laptop enviroment.

この(5)の部分がデフォルトでは(0)になっているので、これを上のログの中からOpenCRが接続されている番号に書き換えましょう。多分治ります。

描画関連のエラー

OPENGLを使うな、setup()の中でsize()を使うななどといった警告が出てきますが、
そもそも描画がされないのでなんとも言えない状態です。
Javaのバージョンの問題かOPENGLの依存の問題かなと思っていますが、あまり深く確かめられていません。

.objが読み込まれない(?)

この辺りは自分が知識がなく、よくわからないので突っ込みすぎる前に寝かせています。
今の所、次のようなコードで

/*******************************************************************************
* Get shape
*******************************************************************************/
void initShape()
{
  goal_link1_shape       = loadShape("meshes/chain_link1.obj");
  goal_link2_shape       = loadShape("meshes/chain_link2.obj");
  goal_link3_shape       = loadShape("meshes/chain_link3.obj");
  goal_link4_shape       = loadShape("meshes/chain_link4.obj");
  goal_link5_shape       = loadShape("meshes/chain_link5.obj");
  goal_left_palm_shape   = loadShape("meshes/chain_link_grip_l.obj");
  goal_right_palm_shape  = loadShape("meshes/chain_link_grip_r.obj");

  ctrl_link1_shape       = loadShape("meshes/chain_link1.obj");
  ctrl_link2_shape       = loadShape("meshes/chain_link2.obj");
  ctrl_link3_shape       = loadShape("meshes/chain_link3.obj");
  ctrl_link4_shape       = loadShape("meshes/chain_link4.obj");
  ctrl_link5_shape       = loadShape("meshes/chain_link5.obj");
  ctrl_left_palm_shape   = loadShape("meshes/chain_link_grip_l.obj");
  ctrl_right_palm_shape  = loadShape("meshes/chain_link_grip_r.obj");

  ctrl_link1_shape.setFill(color(200));
  ctrl_link2_shape.setFill(color(200));
  ctrl_link3_shape.setFill(color(200));
  ctrl_link4_shape.setFill(color(200));
  ctrl_link5_shape.setFill(color(200));
  ctrl_left_palm_shape.setFill(color(200));
  ctrl_right_palm_shape.setFill(color(200));

  setCtrlJointAngle(0, 0, 0, 0);
  gripperOff();

  receive_gripper_pos[0] = 0.030 * 1000 ;
  receive_gripper_pos[1] = receive_gripper_pos[0] * (-2);
}

以下のようなエラーに遭遇します。

User
Unsupported format: meshes/chain_link1.obj
Unsupported format: meshes/chain_link2.obj
Unsupported format: meshes/chain_link3.obj
Unsupported format: meshes/chain_link4.obj
Unsupported format: meshes/chain_link5.obj
Unsupported format: meshes/chain_link_grip_l.obj
Unsupported format: meshes/chain_link_grip_r.obj
NullPointerException

正直自分もよくわかっていないので、しばらくは大人しくROSを使う方法の構築をやってみます。
どなたかわかる方がいらっしゃれば教えていただけると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?