nao_teleop BodyPoseActions fail
I'm using the nao_teleop system. I can enable the controller, move the head around (the instructions for this on the wiki are incorrect -- btn 5 needs to be help while analogue sticks are used) and control walking if the robot is already standing, but I the system fails to execute any of the body pose actions (init or crouch). The output I see is as follows. Can anyone point towards a solution? Let me know if more output is necessary too.
EDIT: Apologies for the lack of information (I was running out of the office and failed to engage my brain)! My setup:
- naoqi-sdk-1.12.3-linux32 on the H21 Nao (sprung hands)
- Ubuntu Oneiric (in a 32 bit chroot in a 64 bit install)
- ROS Fuerte, installed from binary packages
- nao_teleop was fetched from svn using rosinstall (as instructed by the wiki), at revision 2727 (last changed 2340)
NODES / joy_node (joy/joy_node) nao_controller (nao_driver/nao_controller.py) nao_sensors (nao_driver/nao_sensors.py) nao_walker (nao_driver/nao_walker.py) pose_manager (nao_remote/pose_manager.py) remap_odometry (nao_remote/remap_odometry) robot_state_publisher (robot_state_publisher/state_publisher) teleop_nao_joy (nao_teleop/teleop_nao_joy) ROS_MASTER_URI=http://localhost:11311 core service [/rosout] found process[nao_walker-1]: started with pid [18467] process[nao_sensors-2]: started with pid [18468] process[nao_controller-3]: started with pid [18469] process[robot_state_publisher-4]: started with pid [18470] process[remap_odometry-5]: started with pid [18490] process[pose_manager-6]: started with pid [18525] process[teleop_nao_joy-7]: started with pid [18528] process[joy_node-8]: started with pid [18568] [INFO] [WallTime: 1337087278.686138] Connecting to NaoQi at 192.168.0.6:9559 [INFO ] Starting ALNetwork [INFO] [WallTime: 1337087278.774109] Connecting to NaoQi at 192.168.0.6:9559 [INFO ] Starting ALNetwork [INFO] [WallTime: 1337087278.961661] Connecting to NaoQi at 192.168.0.6:9559 [INFO ] Starting ALNetwork [INFO ] NAOqi is listening on 127.0.0.1:54010 [INFO] [WallTime: 1337087279.133906] for_iros2011 = 0 say Walker online ... [INFO ] NAOqi is listening on 127.0.0.1:54011 ...done [INFO] [WallTime: 1337087279.181416] nao_walker initialized [INFO] [WallTime: 1337087279.181596] nao_walker running... [INFO ] NAOqi is listening on 127.0.0.1:54012 [INFO] [WallTime: 1337087279.573459] nao_controller initialized [INFO] [WallTime: 1337087279.573854] nao_controller running... [INFO] [WallTime: 1337087282.363589] nao_sensors initialized [INFO] [WallTime: 1337087283.775101] Body stiffness enabled say Gamepad control enabled ... ...done [INFO] [WallTime: 1337087342.310645] JointTrajectory action executing [ERROR] [WallTime: 1337087342.333748] Exception in your execute callback: ALMotion::angleInterpolation ALBroker::methodCall: method: angleInterpolation, params: [["Body"], [[0], [0], [1.545], [0.33], [-1.57], [-0.486], [0], [0], [-0.3], [0.057], [-0.744], [2.192], [-1.122], [-0.035], [-0.3], [0.057], [-0.744], [2.192], [-1.122], [-0.035], [1.545], [-0.33], [1.57], [0.486], [0], [0]], 1.5, true] ALMotion::angleInterpolation ALMotion::angleInterpolation Expected the angles series to be of the same size as the joint names Traceback (most recent call last): File "/opt/ros/fuerte/lib/python2.7/dist-packages/actionlib/simple_action_server.py", line 292, in executeLoop self.execute_callback(goal) File "/opt/ros/local/stacks/nao_robot/nao_driver/scripts/nao_controller.py", line 183, in executeJointTrajectoryAction self.motionProxy.angleInterpolation(names, angles, times, (goal.relative ...
Which NaoQI version? Running on which system? Which ROS version? Are you using the latest version of nao_driver from SVN?
Heh, I really did underspecify things, sorry!
Added even more info: H21 model, perhaps the lack of hands is related?
Yes, that could indeed be the case! At the beginning of "executeJointTrajectoryAction", can you try to strip the four values corresponding to hands and wrists? You can have a look at nao_sensors.py lines 104-108 which does the reverse (fill the values if the array is too short).
You could also try to replace the single "Body" joint name (which will expand to all of you body's joints) with a complete list of all H25 joints in nao_remote/config/base_poses.yaml. Then the arrays have the same length and maybe NaoQI will just ignore the extra values.
Thanks, I'll check these today. Also, I raised an issue on your Google code site. Let me know if you'd prefer it moved to here. I'm never quite sure where the best place to put these things is.
Either is fine. A tracker item at google code will make sure that I won't forget it ;)