|
|
|
@ -135,7 +135,7 @@ def gen_new_point(piece, trs, vs, existing_ps, dist_limit, vert_shift):
|
|
|
|
# если после множества попыток это не получится, смиримся
|
|
|
|
# если после множества попыток это не получится, смиримся
|
|
|
|
# и примем ту, что есть
|
|
|
|
# и примем ту, что есть
|
|
|
|
curr_trial = 0
|
|
|
|
curr_trial = 0
|
|
|
|
max_trials = 100
|
|
|
|
max_trials = 500
|
|
|
|
while curr_trial < max_trials:
|
|
|
|
while curr_trial < max_trials:
|
|
|
|
# выбрать случайный треугольник
|
|
|
|
# выбрать случайный треугольник
|
|
|
|
tr_ind = random.randrange(len(piece))
|
|
|
|
tr_ind = random.randrange(len(piece))
|
|
|
|
@ -153,6 +153,8 @@ def gen_new_point(piece, trs, vs, existing_ps, dist_limit, vert_shift):
|
|
|
|
c2 = vs[ind2,:]
|
|
|
|
c2 = vs[ind2,:]
|
|
|
|
p = c0 + (c1-c0)*alpha + (c2-c0)*beta
|
|
|
|
p = c0 + (c1-c0)*alpha + (c2-c0)*beta
|
|
|
|
p[2] += vert_shift
|
|
|
|
p[2] += vert_shift
|
|
|
|
|
|
|
|
if p[2] > 1.:
|
|
|
|
|
|
|
|
continue
|
|
|
|
# проверить совпадение координат с существующими точками
|
|
|
|
# проверить совпадение координат с существующими точками
|
|
|
|
succ = True
|
|
|
|
succ = True
|
|
|
|
for ep in existing_ps.values():
|
|
|
|
for ep in existing_ps.values():
|
|
|
|
@ -231,9 +233,12 @@ class GenLocationsOnMeshNode(Node):
|
|
|
|
self.state_pub_msg.z = []
|
|
|
|
self.state_pub_msg.z = []
|
|
|
|
for l_id, p in self.existing_points.items():
|
|
|
|
for l_id, p in self.existing_points.items():
|
|
|
|
self.state_pub_msg.location_id.append(l_id)
|
|
|
|
self.state_pub_msg.location_id.append(l_id)
|
|
|
|
self.state_pub_msg.x.append(p[0])
|
|
|
|
# self.state_pub_msg.x.append(p[0])
|
|
|
|
self.state_pub_msg.y.append(p[1])
|
|
|
|
# self.state_pub_msg.y.append(p[1])
|
|
|
|
self.state_pub_msg.z.append(p[2])
|
|
|
|
# self.state_pub_msg.z.append(p[2])
|
|
|
|
|
|
|
|
self.state_pub_msg.x.append(-p[1] - 400.)
|
|
|
|
|
|
|
|
self.state_pub_msg.y.append(p[2])
|
|
|
|
|
|
|
|
self.state_pub_msg.z.append(p[0] + 400.)
|
|
|
|
# опубликовать их
|
|
|
|
# опубликовать их
|
|
|
|
self.state_pub.publish(self.state_pub_msg)
|
|
|
|
self.state_pub.publish(self.state_pub_msg)
|
|
|
|
|
|
|
|
|
|
|
|
|