Skip to content

Commit f234911

Browse files
committed
keep coding
1 parent 35c3dc7 commit f234911

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

SLAM/GraphBasedSLAM/graph_based_slam.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ def __init__(self):
4444
self.yaw_td = 0.0
4545
self.angle_t = 0.0
4646
self.angle_td = 0.0
47+
self.id1 = 0
48+
self.id2 = 0
4749

4850

4951
def cal_ob_sigma(d):
@@ -95,6 +97,7 @@ def calc_edges(xlist, zlist):
9597
edge.d_t, edge.d_td = dt, dtd
9698
edge.yaw_t, edge.yaw_td = yawt, yawtd
9799
edge.angle_t, edge.angle_td = anglet, angletd
100+
edge.id1, edge.id2 = t, td
98101

99102
edges.append(edge)
100103

@@ -122,19 +125,27 @@ def graph_based_slam(xEst, PEst, u, z, hxDR, hz):
122125

123126
x_opt = copy.deepcopy(hxDR)
124127
edges = calc_edges(x_opt, hz)
128+
print("nedges:", len(edges))
125129
n = len(hz) * 3
126130

127131
for itr in range(MAX_ITR):
128-
print("nedges:", len(edges))
129132

130133
H = np.zeros((n, n))
131134
b = np.zeros((n, 1))
132135

133136
for edge in edges:
134137
A, B = calc_jacobian(edge)
135138

139+
id1 = edge.id1 * 3
140+
141+
H[id1:id1 + 3, id1:id1 + 3] += A.T * edge.omega * A
142+
# h[self.id1*3:self.id1*3+3, self.id2*3:self.id2*3+3] += (self.matA).T.dot(self.info.dot(self.matB))
143+
# h[self.id2*3:self.id2*3+3, self.id1*3:self.id1*3+3] += (self.matB).T.dot(self.info.dot(self.matA))
144+
# h[self.id2*3:self.id2*3+3, self.id2*3:self.id2*3+3] += (self.matB).T.dot(self.info.dot(self.matB))
145+
136146
# H[0:3, 0:3] += np.identity(3) * 10000 # to fix origin
137147
H += np.identity(n) * 10000 # to fix origin
148+
print(H)
138149

139150
dx = - np.linalg.inv(H).dot(b)
140151
# print(dx)

0 commit comments

Comments
 (0)