ros-naoqi / nao_virtual

all tools to simulate nao robot
Apache License 2.0
43 stars 26 forks source link

Nao fingers are shaking #9

Open NoWiS- opened 9 years ago

NoWiS- commented 9 years ago

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 commented 9 years ago

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- commented 9 years ago

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

raghunaik2009 commented 8 years ago

any update? I'm facing similar issue

jackietom commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 5 years ago

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

maxymczech commented 5 years ago

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 commented 5 years ago

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: https://github.com/ros-naoqi/pepper_virtual/issues/14#issuecomment-471231252

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 commented 5 years ago

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 commented 3 years ago

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.