seed-solutions / aero-ros-pkg

AERO (SEEDNOID) ROS Package
15 stars 18 forks source link

SingleArm統合 #114

Open hyaguchijsk opened 7 years ago

hyaguchijsk commented 7 years ago

@wesleypchan @chibi314 SingleArmの統合を行いましょう.

sasabot commented 7 years ago

@Horisu シングルアームもMoveItセットアップ可能にできると思っているのでよろしくお願いします。

あと、これを統合する際にコントローラまわりに大分diffが出てしまっていると思うので昇降をtypeFに合わせる、などといった作業も必要かな、と思っています。

逆に台車まわりはSingleArmの方が進んでいる気がしますので、typeFもいい感じにアップデート? なり、する必要があるかなと思っています。(ただいずれにしても謎の係数が入っていそうなので、/cmd_vel+フィードバックに統一したい。。。)

sasabot commented 7 years ago

現状メンテナンスできないので、リリースからは外しました。 もし、追加し直す場合は0.3.0ブランチからフィルターして再度持ってきた上で、現在の生成システムに合わせるようお願いします。

本気でやるならMoveit生成システムに対応した上でAeroMoveitInterfaceのシングルアーム版も必要になってくるので、こちらで行う作業量としてあまりにも負担が大きすぎます。

hi-kondo commented 6 years ago

SingleArmを2.0対応させようとしています。SingleArmは切り分けて議論等したほうが良いかと思いますが方向性がまとまるまでは現状のままで進めます。 7月末を目処にSingleArm版を公開できればと思っています。

hi-kondo commented 6 years ago

現状aero_description内 setup.sh arm_typeCによりSingleArmモデルの生成ができ roslaunch aero_startup aero_bringup.launch にてエラーなくrvizにSingleArmのモデルが表示される 状態です。 image

最終的にはaero_stdをSingleArm仕様で作成する必要があるかと思いますが現状ではSEED-Noid用の aero_stdを一部変更しaero_samplesのうちminimum, fk.ccが動作することを確認した状態です。

hi-kondo commented 6 years ago

6月のサービスロボット展までにSingleArmをROSで動作させたいため動作することを最優先に作業を進めていますがarm+lifterで手先位置のikが解けるようにすることが直近の課題です。 現状の問題としては

  1. aerp_samples/hand.ccで
    
    seed-noid@seed-noid:~$ rosrun aero_samples hand_sample_node 
    [ INFO] [1525224067.514359830]: start creating robot_interface
    [ INFO] [1525224069.028797870]: j0: r_shoulder_p_joint
    [ INFO] [1525224069.028880444]: j1: r_shoulder_y_joint
    [ INFO] [1525224069.028918036]: j2: r_elbow_joint
    [ INFO] [1525224069.028956200]: j3: r_wrist_y_joint
    [ INFO] [1525224069.028997562]: j4: r_wrist_p_joint
    [ INFO] [1525224069.029034807]: j5: r_wrist_r_joint
    [ INFO] [1525224069.029071155]: j6: knee_joint
    [ INFO] [1525224069.029107604]: j7: ankle_joint
    [ INFO] [1525224069.029188872]: start loading robot model
    [ INFO] [1525224069.042365814]: Loading robot model 'AeroUpperRobot'...
    [ INFO] [1525224069.304142322]: Loading robot model 'AeroUpperRobot'...
    [ INFO] [1525224069.441591436]: Loading robot model 'AeroUpperRobot'...
    [ INFO] [1525224069.574403021]: Loading robot model 'AeroUpperRobot'...
    [ INFO] [1525224069.712937892]: start loading joint model groups
    [ERROR] [1525224069.713046847]: JointModelGroup: waist is not found
    [ERROR] [1525224069.713088726]: JointModelGroup: torso is not found
    [ERROR] [1525224069.713127742]: JointModelGroup: both_arms is not found
    [ INFO] [1525224069.713171949]:   AERO MOVEIT INTERFACE is initialized
    [ WARN] [1525224069.713266518]: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded.
    [ INFO] [1525224069.713320942]: reseting robot pose
    [ INFO] [1525224072.714432883]: moving hands
    [ INFO] [1525224072.714485735]: move to 0 degrees
    [ERROR] [1525224072.715562019]: open/close hand failed service call
    [ INFO] [1525224072.715630024]: demo node finished
とservice callがfailする

2. ikが解けると思われる範囲内でik failする

seed-noid@seed-noid:~$ rosrun aero_samples ik_sample_node [ INFO] [1525223662.927996808]: start creating robot_interface [ INFO] [1525223664.400835388]: j0: r_shoulder_p_joint [ INFO] [1525223664.400946172]: j1: r_shoulder_y_joint [ INFO] [1525223664.401001037]: j2: r_elbow_joint [ INFO] [1525223664.401056900]: j3: r_wrist_y_joint [ INFO] [1525223664.401106247]: j4: r_wrist_p_joint [ INFO] [1525223664.401157397]: j5: r_wrist_r_joint [ INFO] [1525223664.401213581]: j6: knee_joint [ INFO] [1525223664.401257186]: j7: ankle_joint [ INFO] [1525223664.401380067]: start loading robot model [ INFO] [1525223664.422387736]: Loading robot model 'AeroUpperRobot'... [ INFO] [1525223664.685315341]: Loading robot model 'AeroUpperRobot'... [ INFO] [1525223664.819983473]: Loading robot model 'AeroUpperRobot'... [ INFO] [1525223664.955354306]: Loading robot model 'AeroUpperRobot'...

[ INFO] [1525223665.095800597]: start loading joint model groups

[ INFO] [1525223528.176890406]: AERO MOVEIT INTERFACE is initialized

[ WARN] [1525223665.096146428]: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded. [ INFO] [1525223665.096214983]: reseting robot pose [ INFO] [1525223668.097105155]: ik target

[ INFO] [1525223668.097199061]: x:0.480000 y:0.200000 z:1.180000

[ INFO] [1525223668.097270380]: w:1.000000 x:0.000000 y:0.000000 z:0.000000 [ WARN] [1525223669.179547487]: ik failed [ INFO] [1525223669.179585585]: demo node finishedhis loader exist in the heap! You should delete

reseting robot pose実行後のrviz
![image](https://user-images.githubusercontent.com/25475343/39500861-7a18fdea-4df2-11e8-9c01-2de214de2b13.png)

aero_bringup.launch実行時

seed-noid@seed-noid:~$ roslaunch aero_startup aero_bringup.launch ... logging to /home/seed-noid/.ros/log/b6837042-4da4-11e8-9654-9cda3eeab208/roslaunch-seed-noid-3013.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://seed-noid:43869/

SUMMARY

PARAMETERS

NODES / aero_hand_controller (aero_ros_controller/aero_hand_controller_node) aero_ros_controller (aero_ros_controller/aero_ros_controller) aero_state_publisher (robot_state_publisher/robot_state_publisher) cm_spawner (controller_manager/spawner)

auto-starting new master process[master]: started with pid [3028] ROS_MASTER_URI=http://localhost:11311

setting /run_id to b6837042-4da4-11e8-9654-9cda3eeab208 process[rosout-1]: started with pid [3041] started core service [/rosout] process[aero_ros_controller-2]: started with pid [3044] process[aero_state_publisher-3]: started with pid [3048] process[cm_spawner-4]: started with pid [3059] process[aero_hand_controller-5]: started with pid [3061] [ INFO] [1525223047.697270357]: upper_port: /dev/aero_upper [ INFO] [1525223047.697349117]: lower_port: /dev/aero_lower [ INFO] [1525223047.697375716]: cycle: 66.666000 [ms], overlap_scale 2.000000 could not open /dev/aero_upper Proto: ERROR: invalid header could not open /dev/aero_lower Proto: ERROR: invalid header [ INFO] [1525223049.743045244]: ControllerManager start with 15.000150 Hz [ INFO] [1525223056.552855290]: max: 66.930165 [ms], ave: 66.819820 [ms] [ERROR] [1525223061.098324466]: timeout for waiting /lhand_controller/follow_joint_trajectory [ INFO] [1525223063.295411167]: max: 66.997332 [ms], ave: 66.779994 [ms] [ INFO] [1525223070.037396914]: max: 66.971035 [ms], ave: 66.762687 [ms] [ INFO] [1525223076.778643899]: max: 66.856783 [ms], ave: 66.751488 [ms] [ INFO] [1525223083.520214189]: max: 67.557120 [ms], ave: 66.751339 [ms] [ INFO] [1525223090.262482705]: max: 67.565589 [ms], ave: 66.753098 [ms] [ INFO] [1525223097.003192100]: max: 66.854022 [ms], ave: 66.744124 [ms] [ INFO] [1525223103.743807831]: max: 66.893160 [ms], ave: 66.740743 [ms] [ INFO] [1525223110.485150345]: max: 66.900552 [ms], ave: 66.743311 [ms] [ INFO] [1525223117.226575174]: max: 66.882250 [ms], ave: 66.744533 [ms]


[ERROR] [1525223061.098324466]: timeout for waiting /lhand_controller/follow_joint_trajectory
とあるように1.に関してはaero_hand_controllerの対応をしていないことが原因とも思われますが。

2.に関してはurdf.xacroのモデル定義内でlimitの上下限を設定しているだけですが他にlimitを設定しなければいけない箇所などあればご教授頂きたいです。
YoheiKakiuchi commented 6 years ago

@hi-kondo 様 arm_typeC の作業を行われているブランチはどこになりますでしょうか? ブランチをお教えいただくか、いったんプルリクエストしていただいて、 ソースを見えるようにしていただいた方が、わかることが多いかと思います。

hi-kondo commented 6 years ago

@YoheiKakiuchi 様 https://github.com/seed-solutions/seed-development にpull requestしました。 今後Single Arm関係は一時的にseed-developmentレポジトリに移行したいと思います。 privateレポジトリではないため今回pull-requestしたものは一度deleteする予定です。

YoheiKakiuchi commented 6 years ago

@hi-kondo 様 おそくなりました。

ハンドに関しては、 以下にて対応できているかと思います。 ご確認おねがいします。 https://github.com/seed-solutions/aero-ros-pkg/pull/336

また、IKにつきましては、設定されているreset-poseの関節角度制限のギリギリである 関節があること、手首のpitch軸の可動範囲が狭いことから、IKで解ける範囲が狭いように思います。

reset-poseをすべての関節を角度0にしていただいて、 関節角度制限の9割程度以内の関節角を設定してFKにて求めた目標座標へのIKを 試していただけますでしょうか?

hi-kondo commented 6 years ago

@YoheiKakiuchi 様 ご回答ありがとうございます。 上記2点に関してこちらでも問題解決しましたのでご報告させて頂きます。 IKに関してはご指摘の通りURDFのlimitの上下限を設定を見直し動作を確認しました。