1 | initial version |

although an old question, i met the same problem. after i dig into it, i find that this is a bug in trajectory_filter_server/trajectory_filter_server.cpp. in the method getLimits(), there is: limits.min_position = urdf_joint->limits->lower; limits.max_position = urdf_joint->limits->upper; if the urdf has continuous joint, this will cause a problem because continuous joints has no lower/upper limits defined. so the solution is simple, just add a check if(urdf_joint->type == urdf::Joint::CONTINUOUS) before limits.min_position = urdf_joint->limits->lower limits.max_position = urdf_joint->limits->upper;

2 | No.2 Revision |

although an old question, i met the same problem. after i dig into it, i find that this is a bug in trajectory_filter_server/trajectory_filter_server.cpp.
in the method getLimits(), there ~~is:
~~is:

```
limits.min_position = urdf_joint->limits->lower;
```~~ ~~limits.max_position = urdf_joint->limits->upper;

if the urdf has continuous joint, this will cause a problem because continuous joints has no lower/upper limits defined. so the solution is simple, just add a check if(urdf_joint->type == urdf::Joint::CONTINUOUS) before

```
limits.min_position = urdf_joint->limits->lower
```~~ ~~limits.max_position = ~~urdf_joint->limits->upper;~~urdf_joint->limits->upper;

ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.