-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Also, it's not necessary to add on the zeros.
I've made a bunch of improvements to the graphslam
package, I suggest updating to the latest version.
The code below works for PoseR2
, PoseR3
, PoseSE2
, and PoseSE3
vertices.
class EdgePosition(BaseEdge):
def calc_error(self):
return (self.estimate - (self.vertices[1].pose - self.vertices[0].pose)).position
def calc_jacobians(self):
dim_point = len(self.vertices[0].pose.position)
return [np.dot(np.dot(self.estimate.jacobian_self_ominus_other_wrt_other_compact(self.vertices[1].pose - self.vertices[0].pose), self.vertices[1].pose.jacobian_self_ominus_other_wrt_other(self.vertices[0].pose))[:dim_point, :], self.vertices[0].pose.jacobian_boxplus()),
np.dot(np.dot(self.estimate.jacobian_self_ominus_other_wrt_other_compact(self.vertices[1].pose - self.vertices[0].pose), self.vertices[1].pose.jacobian_self_ominus_other_wrt_self(self.vertices[0].pose))[:dim_point, :], self.vertices[1].pose.jacobian_boxplus())]
Metadata
Metadata
Assignees
Labels
No labels