示例#1
0
 def addOdometryFactor(self, odom_transform):
     self.graph_initials.add(minisam.key('x', self.curr_node_idx),
                             minisam.SE3(self.curr_se3))
     self.graph_factors.add(
         minisam.BetweenFactor(minisam.key('x', self.prev_node_idx),
                               minisam.key('x', self.curr_node_idx),
                               minisam.SE3(odom_transform), self.odom_cov))
示例#2
0
    def addPriorFactor(self):
        self.curr_node_idx = 0
        self.prev_node_idx = 0

        self.curr_se3 = np.eye(4)

        self.graph_initials.add(minisam.key('x', self.curr_node_idx),
                                minisam.SE3(self.curr_se3))
        self.graph_factors.add(
            minisam.PriorFactor(minisam.key('x', self.curr_node_idx),
                                minisam.SE3(self.curr_se3), self.prior_cov))
示例#3
0
 def addOdometryFactor(self, odom_transform, second_last=-1):
     '''
     -1代表当前帧和上一帧产生约束,-2代表当前帧和上上一帧产生约束
     注意:先进行和上一帧的约束,在进行上上一帧的约束,顺序不能乱
     '''
     if second_last == -1:
         self.graph_initials.add(minisam.key('x', self.curr_node_idx), minisam.SE3(self.curr_se3))
         self.graph_factors.add(minisam.BetweenFactor(
             minisam.key('x', self.prev_node_idx),
             minisam.key('x', self.curr_node_idx),
             minisam.SE3(odom_transform),
             self.odom_cov))
     elif second_last == -2:
         self.graph_factors.add(minisam.BetweenFactor(
             minisam.key('x', self.sec_prev_node_idx),
             minisam.key('x', self.curr_node_idx),
             minisam.SE3(odom_transform),
             self.odom_cov))
示例#4
0
 def addLoopFactor(self, loop_transform, loop_idx):
     self.graph_factors.add(
         minisam.BetweenFactor(minisam.key('x', loop_idx),
                               minisam.key('x', self.curr_node_idx),
                               minisam.SE3(loop_transform), self.loop_cov))