start-jsk / 2015-semi

2 stars 6 forks source link

Baxtereusのbaxter-robotでinverse-kinematicsをする #10

Closed knorth55 closed 8 years ago

knorth55 commented 8 years ago

右腕をうごかすときはinverse-kinematicsの引数に:rarm、左腕は:larmを明示しなければエラーが出る。

(setq c1 (instance cascaded-coords :init))
(send c1 :locate #f(1200 0 1000))
(send *baxter* :rarm :inverse-kinematics c1 :rotation-axis nil :debug t)
knorth55 commented 8 years ago

roslaunch baxter_gazebo baxter_world.launchなどを行うと

 /robot/left_e0_position_controller/joint: left_e0
 * /robot/left_e0_position_controller/pid/d: 0.1
 * /robot/left_e0_position_controller/pid/i: 0.01
 * /robot/left_e0_position_controller/pid/p: 300.0
 * /robot/left_e0_position_controller/type: effort_controller...
 * /robot/left_e1_position_controller/joint: left_e1
 * /robot/left_e1_position_controller/pid/d: 0.1
 * /robot/left_e1_position_controller/pid/i: 0.01
 * /robot/left_e1_position_controller/pid/p: 500.0
 * /robot/left_e1_position_controller/type: effort_controller...
 * /robot/left_joint_effort_controller/joints/left_e0_controller/joint: left_e0
 * /robot/left_joint_effort_controller/joints/left_e1_controller/joint: left_e1
 * /robot/left_joint_effort_controller/joints/left_s0_controller/joint: left_s0
 * /robot/left_joint_effort_controller/joints/left_s1_controller/joint: left_s1
 * /robot/left_joint_effort_controller/joints/left_w0_controller/joint: left_w0
 * /robot/left_joint_effort_controller/joints/left_w1_controller/joint: left_w1
 * /robot/left_joint_effort_controller/joints/left_w2_controller/joint: left_w2
 * /robot/left_joint_effort_controller/topic: /robot/limb/left/...
 * /robot/left_joint_effort_controller/type: baxter_sim_contro...
 * /robot/left_joint_position_controller/joints/left_e0_controller/joint: left_e0
 * /robot/left_joint_position_controller/joints/left_e0_controller/pid/d: 0.1
 * /robot/left_joint_position_controller/joints/left_e0_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_e0_controller/pid/p: 300.0
 * /robot/left_joint_position_controller/joints/left_e1_controller/joint: left_e1
 * /robot/left_joint_position_controller/joints/left_e1_controller/pid/d: 0.1
 * /robot/left_joint_position_controller/joints/left_e1_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_e1_controller/pid/p: 500.0
 * /robot/left_joint_position_controller/joints/left_s0_controller/joint: left_s0
 * /robot/left_joint_position_controller/joints/left_s0_controller/pid/d: 5.0
 * /robot/left_joint_position_controller/joints/left_s0_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_s0_controller/pid/p: 200.0
 * /robot/left_joint_position_controller/joints/left_s1_controller/joint: left_s1
 * /robot/left_joint_position_controller/joints/left_s1_controller/pid/d: 10.0
 * /robot/left_joint_position_controller/joints/left_s1_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_s1_controller/pid/p: 800.0
 * /robot/left_joint_position_controller/joints/left_w0_controller/joint: left_w0
 * /robot/left_joint_position_controller/joints/left_w0_controller/pid/d: 0.1
 * /robot/left_joint_position_controller/joints/left_w0_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_w0_controller/pid/p: 200.0
 * /robot/left_joint_position_controller/joints/left_w1_controller/joint: left_w1
 * /robot/left_joint_position_controller/joints/left_w1_controller/pid/d: 0.1
 * /robot/left_joint_position_controller/joints/left_w1_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_w1_controller/pid/p: 100.0
 * /robot/left_joint_position_controller/joints/left_w2_controller/joint: left_w2
 * /robot/left_joint_position_controller/joints/left_w2_controller/pid/d: 0.1
 * /robot/left_joint_position_controller/joints/left_w2_controller/pid/i: 0.01
 * /robot/left_joint_position_controller/joints/left_w2_controller/pid/p: 100.0
 * /robot/left_joint_position_controller/topic: /robot/limb/left/...
 * /robot/left_joint_position_controller/type: baxter_sim_contro...
 * /robot/left_joint_velocity_controller/joints/left_e0_controller/joint: left_e0
 * /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/p: 300.0
 * /robot/left_joint_velocity_controller/joints/left_e1_controller/joint: left_e1
 * /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/p: 500.0
 * /robot/left_joint_velocity_controller/joints/left_s0_controller/joint: left_s0
 * /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/p: 200.0
 * /robot/left_joint_velocity_controller/joints/left_s1_controller/joint: left_s1
 * /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/p: 800.0
 * /robot/left_joint_velocity_controller/joints/left_w0_controller/joint: left_w0
 * /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/p: 200.0
 * /robot/left_joint_velocity_controller/joints/left_w1_controller/joint: left_w1
 * /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/p: 100.0
 * /robot/left_joint_velocity_controller/joints/left_w2_controller/joint: left_w2
 * /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/d: 0.1
 * /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/i: 0.01
 * /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/p: 100.0

と表示されます。 このログを見るとJoint velocityやpositionはPIDで制御されているようですが、こういった制御系はパラメータを最初に与えられているだけなのか、それともAdaptiveControlなど行われているのか気になってコードを漁ってみましたがよくわかりませんでした。 こういった値やControllerはROSで扱えるのでしょうか?

k-okada commented 8 years ago

http://gazebosim.org/tutorials/?tut=ros_control

はい.ちゃんと制御されています.上を見てみて下さい. これで,倒立振子とかも試せるはずです.

◉ Kei Okada

2015-11-10 11:37 GMT+09:00 Shingo Kitagawa notifications@github.com:

roslaunch baxter_gazebo baxter_world.launchなどを行うと

/robot/left_e0_position_controller/joint: left_e0

  • /robot/left_e0_position_controller/pid/d: 0.1
  • /robot/left_e0_position_controller/pid/i: 0.01
  • /robot/left_e0_position_controller/pid/p: 300.0
  • /robot/left_e0_position_controller/type: effort_controller...
  • /robot/left_e1_position_controller/joint: left_e1
  • /robot/left_e1_position_controller/pid/d: 0.1
  • /robot/left_e1_position_controller/pid/i: 0.01
  • /robot/left_e1_position_controller/pid/p: 500.0
  • /robot/left_e1_position_controller/type: effort_controller...
  • /robot/left_joint_effort_controller/joints/left_e0_controller/joint: left_e0
  • /robot/left_joint_effort_controller/joints/left_e1_controller/joint: left_e1
  • /robot/left_joint_effort_controller/joints/left_s0_controller/joint: left_s0
  • /robot/left_joint_effort_controller/joints/left_s1_controller/joint: left_s1
  • /robot/left_joint_effort_controller/joints/left_w0_controller/joint: left_w0
  • /robot/left_joint_effort_controller/joints/left_w1_controller/joint: left_w1
  • /robot/left_joint_effort_controller/joints/left_w2_controller/joint: left_w2
  • /robot/left_joint_effort_controller/topic: /robot/limb/left/...
  • /robot/left_joint_effort_controller/type: baxter_sim_contro...
  • /robot/left_joint_position_controller/joints/left_e0_controller/joint: left_e0
  • /robot/left_joint_position_controller/joints/left_e0_controller/pid/d: 0.1
  • /robot/left_joint_position_controller/joints/left_e0_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_e0_controller/pid/p: 300.0
  • /robot/left_joint_position_controller/joints/left_e1_controller/joint: left_e1
  • /robot/left_joint_position_controller/joints/left_e1_controller/pid/d: 0.1
  • /robot/left_joint_position_controller/joints/left_e1_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_e1_controller/pid/p: 500.0
  • /robot/left_joint_position_controller/joints/left_s0_controller/joint: left_s0
  • /robot/left_joint_position_controller/joints/left_s0_controller/pid/d: 5.0
  • /robot/left_joint_position_controller/joints/left_s0_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_s0_controller/pid/p: 200.0
  • /robot/left_joint_position_controller/joints/left_s1_controller/joint: left_s1
  • /robot/left_joint_position_controller/joints/left_s1_controller/pid/d: 10.0
  • /robot/left_joint_position_controller/joints/left_s1_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_s1_controller/pid/p: 800.0
  • /robot/left_joint_position_controller/joints/left_w0_controller/joint: left_w0
  • /robot/left_joint_position_controller/joints/left_w0_controller/pid/d: 0.1
  • /robot/left_joint_position_controller/joints/left_w0_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_w0_controller/pid/p: 200.0
  • /robot/left_joint_position_controller/joints/left_w1_controller/joint: left_w1
  • /robot/left_joint_position_controller/joints/left_w1_controller/pid/d: 0.1
  • /robot/left_joint_position_controller/joints/left_w1_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_w1_controller/pid/p: 100.0
  • /robot/left_joint_position_controller/joints/left_w2_controller/joint: left_w2
  • /robot/left_joint_position_controller/joints/left_w2_controller/pid/d: 0.1
  • /robot/left_joint_position_controller/joints/left_w2_controller/pid/i: 0.01
  • /robot/left_joint_position_controller/joints/left_w2_controller/pid/p: 100.0
  • /robot/left_joint_position_controller/topic: /robot/limb/left/...
  • /robot/left_joint_position_controller/type: baxter_sim_contro...
  • /robot/left_joint_velocity_controller/joints/left_e0_controller/joint: left_e0
  • /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/p: 300.0
  • /robot/left_joint_velocity_controller/joints/left_e1_controller/joint: left_e1
  • /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/p: 500.0
  • /robot/left_joint_velocity_controller/joints/left_s0_controller/joint: left_s0
  • /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/p: 200.0
  • /robot/left_joint_velocity_controller/joints/left_s1_controller/joint: left_s1
  • /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/p: 800.0
  • /robot/left_joint_velocity_controller/joints/left_w0_controller/joint: left_w0
  • /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/p: 200.0
  • /robot/left_joint_velocity_controller/joints/left_w1_controller/joint: left_w1
  • /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/p: 100.0
  • /robot/left_joint_velocity_controller/joints/left_w2_controller/joint: left_w2
  • /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/d: 0.1
  • /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/i: 0.01
  • /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/p: 100.0

と表示されます。 このログを見るとJoint velocityやpositionはPIDで制御されているようですが、こういった制御系はパラメータを最初に与えられているだけなのか、それともAdaptiveControlなど行われているのか気になってコードを漁ってみましたがよくわかりませんでした。 こういった値やControllerはROSで扱えるのでしょうか?

— Reply to this email directly or view it on GitHub https://github.com/start-jsk/2015-semi/issues/10#issuecomment-155265007.