Skip to content

Commit 7c317b9

Browse files
committed
[fix] compute shortest angular distance only on revolute joints
1 parent c931acf commit 7c317b9

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

core/src/stages/connect.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,13 @@ void Connect::compute(const InterfaceState& from, const InterfaceState& to) {
182182
Eigen::Map<const Eigen::VectorXd> positions_last_waypoint(
183183
trajectory->getWayPoint(waypoint_count - 1).getJointPositions(jm), num);
184184

185+
double min_distance;
185186
for (std::size_t i = 0; i < num; ++i) {
186-
double min_distance = angles::shortest_angular_distance(positions_last_waypoint[i], positions_goal[i]);
187+
if (jm->getType() == robot_state::JointModel::REVOLUTE)
188+
min_distance = angles::shortest_angular_distance(positions_last_waypoint[i], positions_goal[i]);
189+
else
190+
min_distance = positions_last_waypoint[i], positions_goal[i];
191+
187192
ROS_DEBUG_STREAM_NAMED(
188193
"Connect", "angular deviation: " << min_distance << " between trajectory last waypoint and goal.");
189194

0 commit comments

Comments
 (0)