Error: Terrible Grinding Noise
Example: The robot makes a terrible grinding noise when you start the controller. If you look closely, the robot arm is shivering a little.
Solution: You have set the rotational stiffness too high. Rotational stiffness should never be set above 75.
Error: Failed to load r/l_arm_cart_imped_controller
This usually corresponds to one of two errors in rosout.
Could not load class EECartImpedControlPlugin because the controller does not exist
Example: ROS gives the following error message on trying to load the controller:
> roslaunch ee_cart_imped_action r_arm_cart_imped_action.launch Could not load class EECartImpedControlPlugin: According to the loaded plugin descriptions the class EECartImpedControlPlugin with base class type pr2_controller_interface::Controller does not exist. Declared types are <lists declared types> Failed to load r_arm_cart_imped_controller
Solution: If you are running on hardware and using cturtle, you may have forgotten to preserve your environment when the robot starts. Try restarting the robot using
sudo robot start -e
The -e option will preserve your environment and ROS should be able to find the controller type. We have never seen this error using diamondback or electric.
If you are working in simulation or the above does not work, you may have downloaded corrupt files. Try re-downloading the controller.
Could not load class EECartImpedControlPlugin: Failed to load library
Example: ROS gives the following error message on trying to load the controller:
> roslaunch ee_cart_imped_action r_arm_cart_imped_action.launch Could not load class ee_cart_imped_control/EECartImpedControlPlugin: Failed to load library /home/jbarry/work/testingstuff/ee_cart_imped/ee_cart_imped_control/lib/libee_cart_imped_control.so. Make sure that you are calling the PLUGINLIB_REGISTER_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Cannot load library: /home/jbarry/work/testingstuff/ee_cart_imped/ee_cart_imped_control/lib/libee_cart_imped_control.so: cannot open shared object file: No such file or directory
Solution: The ee_cart_imped_control package has not been made. Some versions of the code do not have the ee_cart_imped_action package depending on ee_cart_imped_control so it is possible that even if you rosmade your executable, you did not make the ee_cart_imped_control package. Do so using:
rosmake ee_cart_imped
Now re-start the robot or simulator. You must re-start before trying to use the controller.
Error: Robot Halts when Controller is Launched
Example: You launch ee_cart_imped_launch/launch/ee_cart_imped.launch and the robot motors immediately halt.
Solution: Likely you started the robot with a different version of the controller than you are now running. You must re-start the robot after building the controller. If you have multiple versions of the controller, check that your ROS_PACKAGE_PATH both when starting the robot and when launching the controller result in the same executable being run.
If that is not the problem, it is possible the controller files were corrupted on the build. Use the following set of commands to re-make the ee_cart_imped_control package:
roscd ee_cart_imped_control make clean make
Error: Gripper Shakes Gently as Arm is Moved
Example: You ask the arm to move to a pose using the force/impedance controller. It does so, but shakes slightly during the trajectory.
Solution: This is a known problem due to overdriving the controller, a milder version of the first error on this page. Try reducing the stiffnesses. We have found that reducing the rotational stiffnesses usually helps more than reducing the translational ones.
Error: Robot Doesn't Move
Example: Although you are giving it a positive force in the x direction, the robot arm does not move outward.
Solution: This is a problem with static friction. The force you have asked it to apply is not enough to overcome the static friction within the joints and actually start the arm moving in the requested direction. The static friction of a joint will depend on the exact configuration of the arm as well as temperature, humidity, and wear so we have not tried to model it. Try increasing the force or stiffness you are using. You may need to add more points into your trajectory to compensate for different static frictions in different arm poses.
Error: Arm Won't Move When Using Another Controller
Example: You switch to the move_arm action and ask the arm to move to a pose. It is able to calculate the trajectory, but never moves and the trajectory eventually times out.
Solution: You used the wrong launch file to start the controller. If you want to use multiple controllers, you must start the controller with the ee_cart_imped_launch/launch/load_ee_cart_imped.launch file. All other provided launch files continuously inhibit the other controllers, preventing the arm from using them.