忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[1]  [2]  [3]  [4]  [5]  [6
USBラズパイなるものが発売されるらしいけど、一体ラズパイエミュレータと比べて何の利点があるのだろう・・・
一本9800円も払うんだったら普通にラズパイ買うだろうし、謎です。この製品を貶したいのではなく、ただ純粋に疑問です。



それはさておき、Dynamixel XM430-W350-RをOpenCM9.04-C+OpenCM 485拡張ボードに接続して動作確認しようとしたのですが、かなり詰まる部分があったのでメモしておきます。


まず、OpenCM9.04を使うにあたりOpenCM IDEを使って動作確認しようとしたのですが、これが何故か上手くいきませんでした。サンプルコードのDXL_BUS_SERIAL1を拡張ボード用にDXL_BUS_SERIAL3に変更してもピクリとも動きません。ボーレートを変更しても関係ないようです。Dynamixel 2.0のプロトコルに対応していないのか、XMシリーズが駄目なのかは謎です。


一旦RoboPlusでOpenCM9.04のファームウェアを修復後、RoboPlus 2.0 Managerで確認してみました。

まず、Dynamixel XM430-W350-R、OpenCM9.04-C、OpenCM 485拡張ボードを以下のように接続します。USBケーブルはPCと接続してください。





拡張ボードの電源は以下のスイッチでオンオフができます。
オンにするとXM430-W350-RのLEDが一回点滅します。
点滅しなかった場合はバッテリーが壊れている可能性があります。ちなみに画像に映っているバッテリーですが、一度も使っていないのに既に壊れています。








R+ Manager 2.0を起動後、アップデートするかどうか聞かれた場合はアップデートしてください。

アップデート後は、R+ Manager 2.0起動後に以下の画面が表示されます。






ProductからDYNAMIXEL Xを選んで○を押してください。




次に以下の画面でUpdate & Testを選んでください。







Nextを選んでいくとポート番号の選択画面に移行するため、適切なポートを選択してください。
OpenCM9.04-Cを直接接続した場合はROBOTIS Virtual COM Portと表示されるのでわかるとは思いますが、USBダウンローダーLN-101で接続するとUSB Serial Port(1.0)としか表示されないので分かり辛いかもしれません。






その後Nextを押していくとOpenCM9.04-Cと接続します。
本来であればXM-430-W350も表示されるはずですが、設定を変更しないと表示されません。

Control Tableで、Dynamixel ChannelをEXP Board(XH/XM)に変更してください。




それからBand Rate (Bus)を57600bpsに変更してください。




この後に、一旦Update & Testを×ボタンで終了後、OpenCM9.04-Cをリセット、OpenCM 485拡張ボードの電源を落として再起動、再度Update & TestによりOpenCM9.04-Cと接続すると、Device一覧にXM430-W350が表示されます。




表示されない場合はOpenCM9.04-cのリセットボタンを押して再起動、拡張ボードの電源を入れ直すなどで接続できるかもしれません。



Control Table画面でXM430-W350-Rの状態を確認できます。
Torque EnableをONにした後、Goal Positionの値を操作することでモーターが動作します。










独自のプログラムでXM430-W350-Rを操作する場合は、Dynamixel Protocol 2 Libraryというライブラリがあるようなのでこれを使います。Dynamixel SDKというライブラリもあるようなのですが、XMシリーズが動くかどうかは不明です。libdynamixelは大丈夫みたいです。と言うかなんでこんなに乱立しているんだ。



とりあえず、CMake設定ファイルを以下のように作成します。ファイル名は適当に変更してください。


cmake_minimum_required(VERSION 2.8)


set(DX2LIB_ROOT ${DX2LIB_ROOT} CACHE PATH "set DX2LIB_ROOT ")

if(NOT DX2LIB_ROOT)
message(FATAL_ERROR "Please set DX2LIB_ROOT.")
endif()





project (DXLTest)

include_directories(${DX2LIB_ROOT})
link_directories(${DX2LIB_ROOT})

add_executable(DXLTest DXLTest.cpp)
target_link_libraries(DXLTest dx2lib_x32.lib)cmake_minimum_required(VERSION 2.8)


set(DX2LIB_ROOT ${DX2LIB_ROOT} CACHE PATH "set DX2LIB_ROOT ")

if(NOT DX2LIB_ROOT)
message(FATAL_ERROR "Please set DX2LIB_ROOT.")
endif()





project (DXLTest)

include_directories(${DX2LIB_ROOT})
link_directories(${DX2LIB_ROOT})

add_executable(DXLTest DXLTest.cpp)
target_link_libraries(DXLTest dx2lib_x32.lib)


















DXLTest.cppには、とりあえずライブラリを展開したフォルダのSampleCode\VC\smpl1(template).cの中身をコピーします。

ただ何故かエラーが出るので、DXDEVICEIDをTDeviceIDに変更します。



DXDEVICEID dev;

TDeviceID dev;
















後は適当にモーターを操作するコードを追加します。



TErrorCode err;

//トルクをオンにする
DX2_WriteByteData(dev, 1, 64, 1, &err);
Sleep(1000);
//90度の位置に回転
DX2_WriteLongData(dev, 1, 116, 3072, &err);
Sleep(1000);
//-90度の位置に回転
DX2_WriteLongData(dev, 1, 116, 1024, &err);
Sleep(1000);
//トルクをオフにする
DX2_WriteByteData(dev, 1, 64, 0, &err);














詳細については仕様を見ながら試すしかなさそうです。
そう考えるとlibdynamixel使った方が良かったかもしれません。
libdynamixelだと以下のようになります。



DynamixelV2 m("\\\\.\\COM3", 1000000));
m.TorqueEnable(1);
Sleep(1000);
m.MovePosition(1, 1024);
Sleep(1000);
m.MovePosition(1, 3072);
Sleep(1000);
m.TorqueDisable(1);









まあ別に何のライブラリを使っても性能的には大差はないだろうし、ライセンス次第な気もします。








にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
4000円で買えるロボットアームがあるらしいです。
もう入門用ならこれでいいのではないですかね?

安いのはいいのですけど、一体どこが開発した製品なのかが謎です。

マニュアルやサンプルプログラムはあるのかないのかも不明です。
この値段なのでホビー用途なのでしょうけど、おそらくこの製品単体では動作できないので誰向けなのかが不明です。
対象年齢8才以上になっていますが、8才ではちょっと厳しいかもしれないです。
製品が手元にないのでよく分かりませんけど。







ものすごく今更ですが、OpenRTM-aistのbeginnersのメーリングリストに投稿されても僕のところにはメールが来ないのですが、ひょっとしてusersとは別に登録する必要があるのでしょうか?
いやでもbegginnersは登録するページがないように見えます。

よく分かりませんが既に登録している人は返信してあげてください。
トピックの一覧をパッと見た感じですが、2~3週間放置されることはざらにあるみたいです。
ならusersの方に送ればすぐに返信が来るとは思うのですけどね。どうせこっちもたまにしかメールは来ないのだから。

あの質問はrtshellを使うか、あるいはこのサイトこのサイトを参考にしてプログラムを書くか、それかwasanbon等のツールを使うかという方法があると思います。
いやでもrtshellは内部でRTCを操作するプログラムを書いていて、ツール等では内部でrtshellやrtctreeを使っているので結局同じなのですけどね。




複合コンポーネント作成支援ツールのインストーラーを作成しました。
マニュアルのリンクからダウンロードできます。

別にこのツールでもRTCの起動とRTシステムの復元を自動化する事はできるので使ってほしいのですが、動作確認が不十分なので初心者にはお勧めしません。
誰か犠牲動作確認してください。










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
・・・どうも,お久しぶりです.

更新しようという気はあったのですが,どうにもネタがなくて滞りまくりでした.

サボってる間にOpenRTM-aist-1.1.0-RC2がリリースされたので,一応宣伝しときます.

レビューしたいところですが,C++版はだれかやりそうなので,Python版がリリースされたらやります.本当か?



それはさておき,さすがに放置しっぱなしはまずいので,単発企画ですが劣駆動ロボットの制御シミュレーションをやります.

単発企画なので,今回は車の制御や劣駆動マニピュレータの制御を飛ばして,蛇型ロボットの制御をやります.

・・・・とは言っても,非線形制御入門―劣駆動ロボットの技能制御論を参考にしたので,この記事読まずにこの本を読んだ方が良いです.

まず,劣駆動マニピュレータとは,


968dd74b.gif












こんな感じに,非駆動関節のあるマニピュレータのことを言うと思います.
ちなみに,根元が非駆動です.

一方,蛇型ロボットは,
snake.gif











上の劣駆動マニピュレータに,非駆動の並進関節を追加すれば良いことになります.
すなわち,これは劣駆動と言えるかと思います.


今回は以下のような6リンクの蛇型ロボットを制御します.
1リンク目以降は面倒くさいので以下略で.

snake3.gif












受動車輪までの長さをlgとすると,各リンクの受動車輪の位置,速度は,

siki1.GIF










こうなります.
クリックで拡大します.


また,受動車輪は横滑りしないとします.
そんな環境や機構が存在するかは別にして.


受動車輪の車軸方向のベクトルは,
siki2.GIF




となります.
受動車輪が横滑りしないとき速度ベクトルの車軸方向に0となるはずなので,

siki3.GIF

となる.
この式をまとめると,

siki4.gif



となります.

この式を,
siki5.GIF






各関節角速度dψと,絶対角の角速度dθの関係式は,
siki6.GIF







となるので,

siki7.GIF




と,dψをロボットの入力とすれば先端速度dwを制御できます.

まあ,本当だったら動力学モデルに基づいてなんやかんややるべきでしょうけど,面倒くさいのでdwには目標位置との偏差を入れます.

関節はトルク制御ではなく,速度制御をします.

・・・・・・制御できてない可能性が大なので,間違えても今回のプログラムを研究の参考にしないようにしてください.

今回のプログラムのソースはここからダウンロード出来ます.

プログラムの実行には,PyOpenGL,numpy,pyODEが必要です.


動画も作ってみました.




奥の黒い棒みたいなのが目標位置です.


やっぱり,あんまり参考にはしない方がいいかも.

次回は車両の制御を・・・・する気分ではいます.










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ

卒論も出し終わったので新企画やります.

まあ,とは言ってもRTミドルウェアに関することですが.

上手いタイトルが思い浮かびませんが,RTミドルウェアの細かい機能をいぢくっていくのが目的です.

例えば,rtc.confの設定項目でも僕も使ったことがない項目が多いですし,勉強もかねてそういう細かい所を突いていきたいと思います.


でも,F#でゲームを作るとか,全く更新してないので,それを反省して今回の企画はネタが尽きるまで1日1回更新します.

・・・・あと,ロボットモデリングツールのバグの改善とかも今日からやる予定です.


あるかどうかわからんけど,RTミドルウェアコンテスト2011の準備もやらなくては.










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ 
RTミドルウェアの統合インストーラのプロジェクトのページがあるみたいです.

僕は全く関わってないのですが,こういうものが欲しいとは思ってたので勝手に宣伝します.













・・・・んで,こっからは全く関係ない話です.

多分,3月ぐらいまでほとんど更新できません.


3月以降は何やろうかな?

RTMは勉強ついでにいろいろ書く予定です.

あと,F#でゲーム作るやつも中途半端なのでちょっとずつやろうかなとは思ってます.

RTMコンテストの準備の進捗状況は・・・多分来年も研究室での研究とは無関係にやるので書くと思います.


では,2ヶ月後までさようなら.







にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ 

カレンダー
10 2018/11 12
S M T W T F S
2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
フリーエリア
最新CM
[08/24 Nobu]
[08/24 puku]
[08/22 Nobu]
[08/22 puku]
[04/17 Nobu]
プロフィール
HN:
Nobu
年齢:
30
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]