Ask Your Question
0

ROS Kinetic Moveit error: joint is constrained to be below the minimum bounds

asked 2021-09-08 21:34:41 -0500

bot777 gravatar image

updated 2021-09-09 00:04:33 -0500

gvdhoorn gravatar image

Hello ROS Helpers,

Environment: Ubuntu 16.04.6 LTS ROS Kinetic and ROS Kinetic Moveit

Issue (steps to reproduce):

git repository to test: https://github.com/alansrobotlab/inmo...

git cloned to catkin/src directory

used Moveit setup assistant along with inmoov.urdf.xacro (https://github.com/alansrobotlab/inmo...) to set up moveit_config package. with one planning group ARM and one ROS controller named arm_controller,

Kinematic resolve chosen > KDLK Kinematic resolver

I then launched - roslaunch inmoov_moveit_config demo.launch

Then Moveit gui launches

I have updated the start state

For goal state I chose > random valid > and then update

Then I clicked on "Plan" button on the left (under commands)

And I got the errors below ( Unable to construct goal representation)

[ INFO] [1631153485.080208741]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[ INFO] [1631153485.080258197]: MoveGroup context initialization complete

You can start planning now!

[ INFO] [1631153486.133546172]: Ready to take commands for planning group arm.
[ INFO] [1631153486.133667212]: Looking around: no
[ INFO] [1631153486.133720054]: Replanning: no
[ INFO] [1631154002.995467690]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ WARN] [1631154002.995841327]: Joint 'l_shoulder_lift_joint' from the starting state is outside bounds by a significant margin: [ -0.785398 ] shouldbe in the range [ 0.785398 ], [ -2.35619 ] but the error above the ~start_state_max_bounds_error parameter (currently set to 0.1)
[ WARN] [1631154002.995900629]: Joint 'l_elbow_flex_joint' from the starting state is outside bounds by a significant margin: [ -0.872665 ] should bein the range [ -0.261799 ], [ -1.48353 ] but the error above the ~start_state_max_bounds_error parameter (currently set to 0.1)
[ WARN] [1631154002.995939194]: Joint 'l_wrist_roll_joint' from the starting state is outside bounds by a significant margin: [ 1.5708 ] should be inthe range [ 3.14159 ], [ 0 ] but the error above the ~start_state_max_bounds_error parameter (currently set to 0.1)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
[ WARN] [1631154003.000041918]: Joint l_shoulder_lift_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ WARN] [1631154003.000099880]: Joint l_elbow_flex_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ WARN] [1631154003.000138898]: Joint l_wrist_roll_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ WARN] [1631154003.000307257]: Joint l_shoulder_lift_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ WARN] [1631154003.000367762]: Joint l_elbow_flex_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ WARN] [1631154003.000399424]: Joint l_wrist_roll_joint is constrained to be below the minimum bounds. Assuming minimum bounds instead.
[ERROR] [1631154003.000533483]: The constraints for joint 'l_shoulder_lift_joint' are such that there are no possible values for the joint: min_bound: 0.785398, max_bound: -2.35619. Failing.

[ERROR] [1631154003.000614143]: Unable to construct goal representation
[ WARN] [1631154003.277322336]: Fail: ABORTED: Catastrophic failure

I got very confused....,

Can you please help?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2021-09-09 16:18:20 -0500

Mike Scheutzow gravatar image

The min & max joint values appear to be swapped. Either your urdf or your config files need to be fixed. To state the obvious: min should be numerically less than or equal to max.

edit flag offensive delete link more

Comments

ok, I'm focusing on first error because I still dont understand at which minimum value I'm looking at... : Joint 'l_shoulder_lift_joint' from the starting state is outside bounds by a significant margin: [ -0.785398 ] should be in the range [ 0.785398 ], [ -2.35619 ] but the error above the ~start_state_max_bounds_error parameter (currently set to 0.1)

so from your advice, does that mean the above joint value [ -0.785398 ] is less than [ 0.785398 ] and not equals to [ -2.35619 ] ? so does that mean I need to adjust this joint value [ -0.785398 ] ? or should I be looking at the values above: the min_bound: 0.785398 and max_bound: -2.35619 ( I need to make them match in the config/urdf)? I got confused here...

if for config file, which one should I be looking at to swap back minmax joint?

So it has nothing to do with this value (start_state_max_bounds_error ...(more)

bot777 gravatar image bot777  ( 2021-09-10 21:10:38 -0500 )edit

Each rotating joint on your robot arm has a minimum and maximum value that the joint position can be set to. This is part of the physical description of the arm, and is usually found in a urdf or xacro file. To avoid damaging the arm, the software reports an error if you try to command the joint to rotate to a position less than min_position or greater than max_position.

You need to figure out where these values are defined in your project, then confirm the values are good for your specific robot arm.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-09-11 08:19:37 -0500 )edit

ok thank you Mike, I get more of an idea now on where to look to fix this issue, I had located the /inmoov_ros/inmoov_bringup/config/config.yaml and inside this file say I'm focusing on the l_shoulder_lift_joint and I found below the values for this joint:

l_shoulder_lift_joint: bus: 1 servoPin: 9 minPulse: 550 maxPulse: 2500 minGoal: 45.0 maxGoal: -135.0 rest: 0.0 maxSpeed: 0.0 smoothing: 0 sensorPin: 16 minSensor: 750 maxSensor: 2200

Are the minGoal and maxGoal values that you mentioned above appeared to be swap? are these 2 values that I should be focusing that caused the errors above?

In the config.joints.urdf.xacro, the "l_shoulder_lift_joint_lower" appears as below:

<xacro:property name="l_shoulder_lift_joint_lower" value="${r*c['joints'['l_shoulder_lift_joint'['**minGoal'**]}"/> <"same as above line"['maxGoal']}"/>

please advice

bot777 gravatar image bot777  ( 2021-09-13 00:25:07 -0500 )edit

Please be very careful using these files with a real robot arm, because sending commands may cause motion you do not expect. It does not seem like these files were designed to work with moveit. If you start making changes, you should test them in gazebo first. My opinion is that fixing this is too complex a task for this Q/A format.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-09-14 06:46:37 -0500 )edit

Ok thank you for the advice, yes I'm trying to test them in Gazebo first and not damage the robot,

and so I ran the command:roslaunch inmoov_moveit_config demo_gazebo.launch

and I got the errors, please advice

process[joint_state_publisher-6]: started with pid [113706] process[robot_state_publisher-7]: started with pid [113707] process[move_group-8]: started with pid [113708] process[rviz_ubuntu_113655_4023747572689670305-9]: started with pid [113711]

bot777 gravatar image bot777  ( 2021-09-16 09:00:41 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2021-09-08 21:34:41 -0500

Seen: 3,735 times

Last updated: Sep 09 '21