agrirobo / arcsys2

2016年第3回トマトロボット競技会プロジェクトリポジトリ
MIT License
2 stars 0 forks source link

urdf, moveit! の構成について #28

Closed forno closed 8 years ago

forno commented 8 years ago

要請

とりあえずメモ書き

yamacir-kit commented 8 years ago

1つ目はさっき確認した

2つ目について,ダミーの横移動ジョイントについて詳しく頼む urdfに書いたprismaticジョイントとは違う意味?

3つ目について,一応現在そのようになっていると思われるがなんか動かない

現在のエラーについて, 具体的にはUnable to sample any valid states for goal treeと怒られる 目標PoseとしてMoveGroup::getRandomPose()から得られたgetmetry_msgs::Poseを放り込んでるけどコイツが手の届く範囲の目標Poseを出しているのか不明なため今確認中

forno commented 8 years ago

まあ、2つ目の意味合いとしては前言ってたものと同じ感じではある。

エラーについては、rvizからは動くの?

yamacir-kit commented 8 years ago

rviz上でエンドエフェクタを引っ張って動かしてからplanポタンをポチるとmove_groupもちゃんと解を見つけてくる その後executeを実行するとコントローラが無いと怒る(これは当然)

ここまでをmove_group_interfaceから実行したいんだがどうも上手く行かない

それと上で言ったMoveGroup::getRandomPose()は文字通りランダムで範囲外も吐いてきてた 今はmoveit_configがガバガバな可能性が見えてきたからそこを調べてる

yamacir-kit commented 8 years ago

K D L の 逆 運 動 学 ソ ル バ が 低 自 由 度 の ア ー ム で は 上 手 く 働 か な い と か い う ク ソ み た い な 記 述 を 発 見

forno commented 8 years ago

わろすわろす

yamacir-kit commented 8 years ago

それと上のgetRandomPoseは一応有効なものを吐くらしいんだが,計算の都合上自己干渉を考慮していないから無効な数値を吐くことがあるそうな 逆運動学ソルバの差し替えを検討するけど無理そうならプラグインをスクラッチするわ

yamacir-kit commented 8 years ago

https://groups.google.com/forum/#!topic/moveit-users/uMG3hZYhYbw 悲しいことにコードに加えてアームの構造まで完全一致

俺の苦労は何だったのか

yamacir-kit commented 8 years ago

とりあえずmoveit用のIKプラグインを作成する方向で勉強する 明日いっぱいでmoveitを切るか結論を出します

forno commented 8 years ago

あー。そういえばfake_controllerを突っ込んでrviz立ち上げて、executeしてもエラーなん?

Ry0 commented 8 years ago

こんばんは. どんなことになっているのか気になったのでコメントしました. とりあえずこのリポジトリの中のそれっぽいlaunchファイルを起動してみました.

roslaunch roslaunch arcsys2_moveit_config demo.launch

fake_controllerだとしっかり動いている気がします. ↓動画 vlcsnap-2016-11-18-23h59m08s614

↓execute付近のターミナル出力

[ INFO] [1479479812.756132982]: RRTConnect: Created 32 states (10 start + 22 goal)
[ INFO] [1479479812.762158081]: RRTConnect: Created 45 states (21 start + 24 goal)
[ INFO] [1479479812.764254699]: RRTConnect: Created 39 states (12 start + 27 goal)
[ INFO] [1479479812.764658701]: ParallelPlan::solve(): Solution found by one or more threads in 0.017935 seconds
[ INFO] [1479479812.764784705]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1479479812.764844479]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1479479812.770861748]: RRTConnect: Created 38 states (10 start + 28 goal)
[ INFO] [1479479812.774242960]: RRTConnect: Created 52 states (19 start + 33 goal)
[ INFO] [1479479812.774410898]: ParallelPlan::solve(): Solution found by one or more threads in 0.009684 seconds
[ INFO] [1479479812.776316908]: SimpleSetup: Path simplification took 0.001834 seconds and changed from 5 to 25 states
[ INFO] [1479479818.797615085]: Received new trajectory execution service request...
[ INFO] [1479479818.797907136]: Fake execution of trajectory
[ INFO] [1479479819.798216717]: Execution completed: SUCCEEDED

どういう状況なのかあまりわかっていないので,また暇があったら研究室に来て直接でもいいので教えてください. 何か分かるかもしれません.

yamacir-kit commented 8 years ago

情報ありがとうございます

動かないものを上げても仕方がなかろうということでここ2日ほどの作業をpushしていませんが'move_group_interface'からのプランニングに関しては概ね上記の'motoman_project'のサンプルと大差無いようです

動画上では障害物が設定してありますが,その障害物はどこからインポートしたものでしょうか?

yamacir-kit commented 8 years ago

もう一度調べなおしてみましたが,やはりKDLキネマティクスソルバが原因のようです 5自由度以下のマニピュレータへの仕様に適していないとのこと

http://answers.ros.org/question/152591/kdl-kinematics-solver-limitations/

forno commented 8 years ago

足も入れて6自由度なかったっけと思ったけどそういえば手元の上下をオミットしたおかげで5自由度に落ちてたね。

yamacir-kit commented 8 years ago

IKFastのmoveitプラグイン作成でほっとんどurdfと変わらない内容のIKFast用xmlを書かないといけなくなって萎えていたところ,「6自由度あればいいんじゃね?」という発想に至り,適当にエンドエフェクタ付近にひねりのジョイントを加えてみた所,

解 が 見 つ か り ま し た

現状,moveit::planning_interface::MoveGroup::plan()を実行したところで何故かうんともすんとも言わなくなるのですが最大の難所は超えたんじゃないかと思います

yamacir-kit commented 8 years ago

無事dof_verificationブランチにてC++コードからの起動計画およびfake_executionに成功しました

Ry0 commented 8 years ago

返信が遅れてしまい申し訳ございません. 動画中の障害物については以下のリンクを参考にして作ってみてください. http://sdk.rethinkrobotics.com/wiki/MoveIt_Tutorial#Introducing_an_environment_representation_for_planning

forno commented 8 years ago

Moveit の 実働が確認でき次第このIssueを閉じます。

forno commented 8 years ago

Joint Follow Trajectory Action をそのまま受け入れて制御することは成功を見ました。 同じ Joint Follow Trajectory Action をposition, velocity制御に拡張するのにたった2行追加するだけなのはとても素晴らしいですね。

forno commented 8 years ago

この Issueの閉じる基準を具体的に KRS servo の実働とします。 今日中に達成したいので、とりあえず誰か #37 をレビュしてくださいな。

forno commented 8 years ago

これは要望なのですが、 現在の速度制御しているジョイントの向きを変えて、動く方向がx方向になるようにしてほしいです。 移動速度情報のみを送るので、移動方向はx軸方向に固定…みたいなイメージです。

RobotHWの汎用性が上がって嬉しいですし、ドライバの実装も使われ方を意識せず使えて嬉しいです。

forno commented 8 years ago

ICS3実働確認、及び移動が正常に行われていることを確認。

たまに(おそらくカレントポジションの関係で)実行に失敗するので、角度の許容範囲を少々広げる必要があります。

forno commented 8 years ago

https://github.com/agrirobo/arcsys2/tree/dy/test/krs ちなみに現在のテスト環境はこちらです。

追記:そのうちリンク切れになります