kochigami / nao-euslisp-hydro-memo

This repository is used for memos about nao on euslisp, hydro
0 stars 0 forks source link

nao-interface.lにstart-graspを作りたい #14

Closed kochigami closed 9 years ago

kochigami commented 9 years ago

①nao-interface.l :start-grasp でcloseHand()を呼び出すようなtopicを書く Naoqiに定義されているcloseHand()を使うと、一度握ってからすぐ手を開いてしまう

② /joint_anglesを使うとすぐ手を開くことはなさそう rostopic pub -1 /joint_angles nao_msgs/JointAnglesWithSpeed '{header: auto, joint_names: ["RHand","LHand"], joint_angles: [0.2,0.2], speed: 1.0}' のように書けばできそうだ しかし、頭や足はうまく行くが、手はうまくいかない

/joint_statesのRHand, LHandでは開いている状態で 0.9くらい 閉じている状態では0.0を指定すればよいはず?

kochigami commented 9 years ago

http://answers.ros.org/question/43891/publishing-to-topic-joint_angles/ http://answers.ros.org/question/71113/running-ros-based-code-on-nao-robot/ http://answers.ros.org/question/188080/opening-and-closing-naos-hand/ が参考にしたホームページ

kochigami commented 9 years ago

そもそもトピックはpublishできている(rostopic echo /joint_anglesで確認した)のに手が動かないので、手で使えるのか確認する

kochigami commented 9 years ago

setAngles (names, angles, fractionMaxSpeed) names: The name or names of joints, chains, "Body", "JointActuators", "joints" or "Actuators" angles: One or more angles in radians fractionMaxSpeed: The fraction of maximum speed to use

changeAngles names: 上と同じ changes: One or more changes in radians fractionMaxSpeed: 上と同じ

stiffnessは”堅さ” setStiffnesses stiffnessが0.0だとjoint is free stiffnessが1.0だとfull torque power to reach a given position 多分、send ni :servo-on でservo-onするjointの中にhandが含まれていない send nao :joint-listの中に含まれていなかった

kochigami commented 9 years ago

Naoqiの中で Body = Head + LArm + LLeg + RLeg + RArm LArm の中にLHand RArmの中にRHandが含まれている

kochigami commented 9 years ago

roscd jsk_2014_04__pr2_73b2/scripts python almotiongetbodynames.py **._..***の結果 Body: ['HeadYaw', 'HeadPitch', 'LShoulderPitch', 'LShoulderRo.ll', 'LElbowYaw', 'LElbowRoll', 'LWristYaw', 'LHand', 'LHipYawPitch', 'LHipRoll', 'LHipPitch', 'LKneePitch', 'LAnklePitch', 'LAnkleRoll', 'RHipYawPitch', 'RHipRoll', 'RHipPitch', 'RKneePitch', 'RAnklePitch', 'RAnkleRoll', 'RShoulderPitch', 'RShoulderRoll', 'RElbowYaw', 'RElbowRoll', 'RWristYaw', 'RHand']

LLeg: ['LHipYawPitch', 'LHipRoll', 'LHipPitch', 'LKneePitch', 'LAnklePitch', 'LAnkleRoll'] Handある

kochigami commented 9 years ago

Body Stiffnesses: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0] Handだけにサーボが入っていなかった

kochigami commented 9 years ago

NaoqiのsetStiffnesses('Body', 1.0)で、 NaoqiのBodyの中にはRHand, LHandが含まれているのでサーボが入る (getStiffnesses('Body')で確認できる) その状態で rostopic pub -1 /joint_angles nao_msgs/JointAnglesWithSpeed '{header: auto, joint_names: ["RHand","LHand"], joint_angles: [0.0,0.0], speed: 0.5}' をすればできた

kochigami commented 9 years ago
kochigami commented 9 years ago

headerとはなんぞや

kochigami commented 9 years ago

1.モデルの関節を追加して、:servo-onでRHand, LHandにもサーボが入るように直すことをまず目指す 2,駄目だったら、プルリクを送るのは諦めて、オレオレ仕様にする nao-interface-kochigami-version.lに:servo-on-including-handみたいなのを作る そこではトピックを出す nao_driver_using_ros_nao.launchではサーボを入れるパイソンのコードを追記する これで自分では使える

kochigami commented 9 years ago

Naoqiで定義されている関数 almotion_getbodynames.py Bodyで定義されている関節を表示 almotion_getstiffness.py   関節の堅さを表示(サーボオンしているか・していないか) almotion_setstiffness.py   例えばBodyにサーボオン・オフ nao_closehand.py (Naoqiには別名のファイルがある。closeHand()) 一度手を閉じてすぐ開く