Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nao fingers are shaking #9

Open
NoWiS- opened this issue May 26, 2015 · 11 comments
Open

Nao fingers are shaking #9

NoWiS- opened this issue May 26, 2015 · 11 comments

Comments

@NoWiS-
Copy link

NoWiS- commented May 26, 2015

Hi,

I have an issue with the fingers of the simulated nao. Right after starting the simulation they are moving around like this:
virtual_nao

The console log does not seems to tell much, except maybe the last line:

$ roslaunch nao_gazebo_plugin nao_gazebo_plugin_H25.launch
... logging to /home/nowis/.ros/log/7c7e8b88-03b1-11e5-b221-7824af37c8e6/roslaunch-navis-24007.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://navis:37674/

SUMMARY
========

PARAMETERS
 * /nao_dcm/Head_controller/joints: ['HeadYaw', 'Head...
 * /nao_dcm/Head_controller/type: position_controll...
 * /nao_dcm/LeftArm_controller/joints: ['LShoulderPitch'...
 * /nao_dcm/LeftArm_controller/type: position_controll...
 * /nao_dcm/LeftFoot_controller/joints: ['LAnklePitch', '...
 * /nao_dcm/LeftFoot_controller/type: position_controll...
 * /nao_dcm/LeftHand_controller/joints: ['LWristYaw', 'LH...
 * /nao_dcm/LeftHand_controller/type: position_controll...
 * /nao_dcm/LeftLeg_controller/joints: ['LHipRoll', 'LHi...
 * /nao_dcm/LeftLeg_controller/type: position_controll...
 * /nao_dcm/Pelvis_controller/joints: ['LHipYawPitch']
 * /nao_dcm/Pelvis_controller/type: position_controll...
 * /nao_dcm/RightArm_controller/joints: ['RShoulderPitch'...
 * /nao_dcm/RightArm_controller/type: position_controll...
 * /nao_dcm/RightFoot_controller/joints: ['RAnklePitch', '...
 * /nao_dcm/RightFoot_controller/type: position_controll...
 * /nao_dcm/RightHand_controller/joints: ['RWristYaw', 'RH...
 * /nao_dcm/RightHand_controller/type: position_controll...
 * /nao_dcm/RightLeg_controller/joints: ['RHipRoll', 'RHi...
 * /nao_dcm/RightLeg_controller/type: position_controll...
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadPitch/d: 1.0
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadPitch/i: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadPitch/p: 1000.0
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadYaw/d: 1.0
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadYaw/i: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/HeadYaw/p: 1000.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnklePitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnklePitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnklePitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnkleRoll/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnkleRoll/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LAnkleRoll/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowRoll/d: 0.3
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowRoll/i: 0.7
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowRoll/p: 30.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowYaw/d: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowYaw/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LElbowYaw/p: 110.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHand/d: 3.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHand/i: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHand/p: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipPitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipPitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipPitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipRoll/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipRoll/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipRoll/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipYawPitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipYawPitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LHipYawPitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LKneePitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/LKneePitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LKneePitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderPitch/d: 2.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderPitch/i: 4.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderPitch/p: 80.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderRoll/d: 0.7
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderRoll/i: 5.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LShoulderRoll/p: 50.0
 * /nao_dcm/gazebo_ros_control/pid_gains/LWristYaw/d: 0.01
 * /nao_dcm/gazebo_ros_control/pid_gains/LWristYaw/i: 0.13
 * /nao_dcm/gazebo_ros_control/pid_gains/LWristYaw/p: 1.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnklePitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnklePitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnklePitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnkleRoll/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnkleRoll/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RAnkleRoll/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowRoll/d: 0.3
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowRoll/i: 0.7
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowRoll/p: 30.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowYaw/d: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowYaw/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RElbowYaw/p: 110.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHand/d: 3.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHand/i: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHand/p: 100.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipPitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipPitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipPitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipRoll/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipRoll/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipRoll/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipYawPitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipYawPitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RHipYawPitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RKneePitch/d: 0.1
 * /nao_dcm/gazebo_ros_control/pid_gains/RKneePitch/i: 0.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RKneePitch/p: 500.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderPitch/d: 2.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderPitch/i: 4.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderPitch/p: 80.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderRoll/d: 0.7
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderRoll/i: 5.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RShoulderRoll/p: 50.0
 * /nao_dcm/gazebo_ros_control/pid_gains/RWristYaw/d: 0.01
 * /nao_dcm/gazebo_ros_control/pid_gains/RWristYaw/i: 0.13
 * /nao_dcm/gazebo_ros_control/pid_gains/RWristYaw/p: 1.0
 * /nao_dcm/joint_state_controller/publish_rate: 50
 * /nao_dcm/joint_state_controller/type: joint_state_contr...
 * /robot_description: <?xml version="1....
 * /rosdistro: indigo
 * /rosversion: 1.11.13
 * /use_sim_time: True

NODES
  /nao_dcm/
    nao_trajectory_controller (controller_manager/spawner)
  /
    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    spawn_urdf (gazebo_ros/spawn_model)

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

setting /run_id to 7c7e8b88-03b1-11e5-b221-7824af37c8e6
process[rosout-1]: started with pid [24037]
started core service [/rosout]
process[gazebo-2]: started with pid [24061]
process[gazebo_gui-3]: started with pid [24067]
process[nao_dcm/nao_trajectory_controller-4]: started with pid [24076]
Gazebo multi-robot simulator, version 2.2.3
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Gazebo multi-robot simulator, version 2.2.3
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

process[robot_state_publisher-5]: started with pid [24078]
/opt/ros/indigo/lib/robot_state_publisher/robot_state_publisher
Msg Waiting for master.process[spawn_urdf-6]: started with pid [24112]
[ INFO] [1432649655.064609908]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1432649655.065079019]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 10.71.76.90
[INFO] [WallTime: 1432649655.286779] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller

Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 10.71.76.90
[ INFO] [1432649657.548173915]: Camera Plugin (robotNamespace = /nao_robot), Info: Using the 'robotNamespace' param: '/nao_robot'
[ WARN] [1432649657.548254458]: gazebo_ros_camera_ simulation does not support non-zero distortion parameters right now, your simulation maybe wrong.
[ INFO] [1432649657.550688155]: Camera Plugin (robotNamespace = /nao_robot), Info: Using the 'robotNamespace' param: '/nao_robot'
[ WARN] [1432649657.550734788]: gazebo_ros_camera_ simulation does not support non-zero distortion parameters right now, your simulation maybe wrong.
[ INFO] [1432649657.634435732]: Camera Plugin (ns = /nao_robot)  <tf_prefix_>, set to "/nao_robot"
[ INFO] [1432649657.669186677]: Camera Plugin (ns = /nao_robot)  <tf_prefix_>, set to "/nao_robot"
[spawn_urdf-6] process has finished cleanly
log file: /home/nowis/.ros/log/7c7e8b88-03b1-11e5-b221-7824af37c8e6/spawn_urdf-6*.log
[ INFO] [1432649658.383592472]: Loading gazebo_ros_control plugin
[ INFO] [1432649658.383709860]: Starting gazebo_ros_control plugin in namespace: /nao_dcm
[ INFO] [1432649658.384289363]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
[ INFO] [1432649658.930796083]: Loaded gazebo_ros_control.
[INFO] [WallTime: 1432649659.202643] [0.000000] Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [WallTime: 1432649659.203638] [0.000000] Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [WallTime: 1432649659.204499] [0.000000] Loading controller: /nao_dcm/Head_controller
[INFO] [WallTime: 1432649659.279416] [0.000000] Loading controller: /nao_dcm/RightArm_controller
[INFO] [WallTime: 1432649659.301910] [0.000000] Loading controller: /nao_dcm/LeftArm_controller
[INFO] [WallTime: 1432649659.324004] [0.000000] Loading controller: /nao_dcm/LeftLeg_controller
[INFO] [WallTime: 1432649659.345861] [0.000000] Loading controller: /nao_dcm/RightLeg_controller
[INFO] [WallTime: 1432649659.366919] [0.000000] Loading controller: /nao_dcm/RightHand_controller
[INFO] [WallTime: 1432649659.387434] [0.000000] Loading controller: /nao_dcm/LeftHand_controller
[INFO] [WallTime: 1432649659.407253] [0.000000] Loading controller: /nao_dcm/Pelvis_controller
[INFO] [WallTime: 1432649659.427668] [0.000000] Loading controller: /nao_dcm/LeftFoot_controller
[INFO] [WallTime: 1432649659.447386] [0.000000] Loading controller: /nao_dcm/RightFoot_controller
[INFO] [WallTime: 1432649659.467529] [0.000000] Loading controller: /nao_dcm/joint_state_controller
[INFO] [WallTime: 1432649659.515790] [0.000000] Controller Spawner: Loaded controllers: /nao_dcm/Head_controller, /nao_dcm/RightArm_controller, /nao_dcm/LeftArm_controller, /nao_dcm/LeftLeg_controller, /nao_dcm/RightLeg_controller, /nao_dcm/RightHand_controller, /nao_dcm/LeftHand_controller, /nao_dcm/Pelvis_controller, /nao_dcm/LeftFoot_controller, /nao_dcm/RightFoot_controller, /nao_dcm/joint_state_controller
[INFO] [WallTime: 1432649887.875748] [89.406000] Started controllers: /nao_dcm/Head_controller, /nao_dcm/RightArm_controller, /nao_dcm/LeftArm_controller, /nao_dcm/LeftLeg_controller, /nao_dcm/RightLeg_controller, /nao_dcm/RightHand_controller, /nao_dcm/LeftHand_controller, /nao_dcm/Pelvis_controller, /nao_dcm/LeftFoot_controller, /nao_dcm/RightFoot_controller, /nao_dcm/joint_state_controller
[ INFO] [1432649887.894981690, 89.425000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1432649887.915730192, 89.446000000]: Physics dynamic reconfigure ready.
Warning [Publisher.cc:134] Queue limit reached for topic /gazebo/default/pose/local/info, deleting message. This warning is printed only once.

Launched on a chrooted ubuntu 12.04, with latest ros-indigo packages.

@mikaelarguedas
Copy link
Member

Indeed the joint L/RHand are not simulated properly (if you check at the joint states the values are out of bond and oscillating). This result in a weird visualisation of the fingers.
Thanks for posting the issue,

@NoWiS-
Copy link
Author

NoWiS- commented May 27, 2015

It also affect the whole physical body, making it shake/unstable.

@raghunaik2009
Copy link

any update? I'm facing similar issue

@jackietom
Copy link

I cut the hands... The robot is still shaking and moving slowly. I think the reason is that the PID is not so appropriate that the arm and other joints are still oscillating slightly.

@jackietom
Copy link

I think I have found a solution to this problem.

  1. Fingers are shaking because there is no controller to control them. I only find hand controller and wrist controller. This will not make the whole robot to shake.
  2. The robot is shaking because the Hardware interface used in the urdf contained in nao_description package is PositionJointInterface. That interface seems that it may violate physics laws, so I changed it to EffortJointInterface (both the urdf file and nao_position_control.yaml(I use this file in the launch file)) and test it in Gazebo7. The robot will not shake anymore.

@maxymczech
Copy link

@jackietom I think the fingers in NAO robot are controlled by a single motor/joint (LHand and RHand) and the finger joints are set to mimic the corresponding hand joint.

@soniatechie
Copy link

Hi! has anyone found a solution for this issue? Thanks!!

@maxymczech
Copy link

I didn't need fingers in my project so I just removed them from URDF file :D
https://www.youtube.com/watch?v=v2K6vjHUub0

@soniatechie
Copy link

soniatechie commented Jun 30, 2019

Yeah, is a good solution but I need the fingers...

Just for sharing some information:
I was using ROS Kinetic with Gazebo 7, but I found the "gravity bug" that makes Nao fly as it hasn't weight, so I installed Gazebo 9 on Kinetic, as commented on this comment:
ros-naoqi/pepper_virtual#14 (comment)

To install Gazebo 9 in Kinetic I just follow this tutorial from Gazebo web:
http://gazebosim.org/tutorials/?tut=ros_wrapper_versions

So, installing Gazebo 9 solved the gravity issue, but I still have the problem of the fingers.

I attach a video of the problem.
ezgif com-video-to-gif(3)

At the begging I thought the problem was that the weight of the fingers is 0 in Gazebo, but when I reviewed the URDF it is almost 0 (10^-9). I'm not sure if it can affect.

@maxymczech
Copy link

I had same problems as you. I have used ROS Melodic, Gazebo 9, nao_virtual package (but not main branch, there was a dev branch for Melodic, this was 6 months ago, don't know the current status on that). This configuration worked fine in all aspects except the fingers. Sorry, I do not know how to solve your problem :(

@micco00x
Copy link

micco00x commented Apr 9, 2021

Hi,

I have played with PID gains a little bit using rqt_reconfigure. What I have found is that setting arm gains in the following way:

RElbowYaw: {p: 100.0, i: 100.0, d: 0.0}
RElbowRoll: {p: 100.0, i: 100.0, d: 0.0}
RHand: {p: 0.0, i: 0.0, d: 0.0}
LElbowYaw: {p: 100.0, i: 100.0, d: 0.0}
LElbowRoll: {p: 100.0, i: 100.0, d: 0.0}
LHand: {p: 0.0, i: 0.0, d: 0.0}

makes the fingers stop moving. There is no need to modify the URDF or other files as mentioned above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants