ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

Turtlebot: arm.launch returns KeyError: ´arm_shoulder_pan_joint´

asked 2012-05-15 08:01:09 -0600

NTo gravatar image

updated 2012-05-21 08:54:37 -0600

Background:
Turtlebot: new, arrived with the arm assembled and with all required packages installed from factory. I installed turtlebot_viz for the dashboard as suggested here and updated all ros packages.
[EDIT] The exact same thing happened with a second turtlebot: literally took out of the box and typed: roslaunch turtlebot_arm_bringup arm.launch. Got the exact same error: Error message, log file and actions log
Turtlebot laptop: lenovo x130e AMD fusion processors E-450. Ubuntu: 10.04, kernel linux 2.6.32-40-generic. ros: electric
Machine: Intel Core i5-2500 CPU @ 3.30GHz x 4. 32-bit. Ubuntu: 11.10 (upgraded from 11.04). ros: electric

Problem description:
Following the kinect calibration tutorial part 4, both ssh from the machine specified above, and directly in the turtlebot laptop:
When trying to launch the arm: roslaunch turtlebot_arm_bringup arm.launch
I am getting: KeyError: ´arm_shoulder_pan_joint´
The full error message is here.

The arbotix_python controllerGUI displays and controls the base, but not the joints.
The only related thread I found was this, and my turtlebot already had the fixed file

Attempts so far:

  1. I tried to trace through the log file but couldn't find a problem. I also tried to debug using pydev (See details below).
  2. Both arbotix and the arm packages are updated to newest version.
  3. Using the arbotix_python terminal and command ls: it lists 5 servors as required.
  4. The arm.ymal file in the turtlebot_arm_bringup package contains all 5 joints each with the correct id (i.e. shoulder pan id 1...gripper id 5).

Debugging details:
The call which brings up the error according to the call stack indicated in the error message:

    try:
        return self.dynamixels[key]
    except:
        return self.hobbyservos[key]

has the correct key: arm_shoulder_pan_joint, but both dynamixels and hobbyservos are empty.
The call stack which tracks why they are empty is here. They apparently don´t exist in the parameter server. The printout of the parameter server from within servos.py is here.

If anyone has experience or ideas about the source of the problem/solutions, I'll be extremely glad to hear. Thanks!

edit retag flag offensive close merge delete

Comments

I would expect a more complete error message, with a full traceback, to be printed. Could you post the full error message here?

fergs gravatar image fergs  ( 2012-05-19 21:48:08 -0600 )edit

Hello fergs, the full error message is here: http://dl.dropbox.com/u/5858778/error%20message. Cheers.

NTo gravatar image NTo  ( 2012-05-20 03:56:03 -0600 )edit

2 Answers

Sort by » oldest newest most voted
0

answered 2012-07-20 23:19:13 -0600

fergs gravatar image

This is a release issue -- I apparently updated the trunk of turtlebot_arm to be compatible with arbotix 0.7.0 release (Which I haven't got around to actually releasing yet) but then someone tagged a new release without noticing. I'll get a new arbotix release pushed out this weekened to clean this all up.

edit flag offensive delete link more
2

answered 2012-05-22 04:35:54 -0600

NTo gravatar image

I am able to operate the arm (using rosrun arbotix_python controllerGUI.py) by making the following changes. I do not know if I am overriding something else and did not try any of the related demos yet. If anyone recognizes a problem, please let me know. I will also update if there are troubles later on.

1) In file: /opt/ros/electric/stacks/turtlebot_arm/turtlebot_arm_bringup/config/arm.yaml
Change:

joints: {

To:

dynamixels: {

2) In file: /etc/ros/electric/turtlebot.launch
Change:

<arg name="urdf_file" value="$(find xacro)/xacro.py '$(find turtlebot_description)/robots/turtlebot.urdf.xacro'" />

To:

<arg name="urdf_file" value="$(find xacro)/xacro.py '$(find turtlebot_arm_description)/urdf/arm.urdf.xacro'" />
edit flag offensive delete link more

Comments

This worked for me. thanks :). I have only modified the arm.yaml file.

learner gravatar image learner  ( 2013-04-25 20:24:16 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2012-05-15 08:01:09 -0600

Seen: 689 times

Last updated: Jul 20 '12