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

Revision history [back]

click to hide/show revision 1
initial version

So I think I "Solved" my problem. The Joint_state_publisher doesn't support Revolute type joints.

it very much does support revolute joints.

I believe the issue here is the following (taken from joint1):

  lower="1.5707"
  upper="1.5707"

It doesn't make much sense to me to have joints with a limit that is identical for both the lower and upper limit. This essentially means that the joint cannot move (or rotate in this case).

I haven't checked, but I wouldn't be surprised if joint_state_publisher filters out joints that have limits configured like that.

So I think I "Solved" my problem. The Joint_state_publisher doesn't support Revolute type joints.

it very much does does support revolute joints.

I believe the issue here is the following (taken from joint1):

  lower="1.5707"
  upper="1.5707"

It doesn't make much sense to me to have joints with a limit that is identical for both the lower and upper limit. This essentially means that the joint cannot move (or rotate in this case).

I haven't checked, but I wouldn't be surprised if joint_state_publisher filters out joints that have limits configured like that.


Edit: speculating, but I believe I can think of where the confusion comes from: the lower and upper attributes of the limit element do not specify a negative and positive limit necessarily. If that was the case, setting both to 1 (fi) would translate into a limit of (-1, 1). That is not how this works.

Instead, you have to specify whether either limit is negative or positive. So if your joint1 has a limit of half a pi in both directions, you'd need to have lower="-1.5707" and upper="1.5707".

So I think I "Solved" my problem. The Joint_state_publisher doesn't support Revolute type joints.

it very much does support revolute joints.

I believe the issue here is the following (taken from joint1):

  lower="1.5707"
  upper="1.5707"

It doesn't make much sense to me to have joints with a limit that is identical for both the lower and upper limit. This essentially means that the joint cannot move (or rotate in this case).

I haven't checked, but I wouldn't be surprised if joint_state_publisher filters out joints that have limits configured like that.


Edit: speculating, but I believe I can think of where the confusion comes from: the lower and upper attributes of the limit element do not specify a negative and positive limit necessarily. If that was the case, setting both to 1 (fi) would translate into a limit of (-1, 1)[-1, 1]. That is not how this works.

Instead, you have to specify whether either limit is negative or positive. So if your joint1 has a limit of half a pi in both directions, you'd need to have lower="-1.5707" and upper="1.5707".

It would also be perfectly valid to have both upper and lower set to positive values, such as lower="1" and upper="2". In such a case it would just mean that the joint does not allow any negative joint angles, and that all rotations are limited to be between 1 and 2 radians.