Я использую Ubuntu 18 с ROS-мелоди c и программным обеспечением. Мой код работал нормально до того, как я произвел слияние git с другой ветвью, которая была главной для моей дочерней ветви, но это не главная ветка для всего проекта. По какой-то причине я продолжаю получать ошибку сегментации, когда пытаюсь запустить свой код, но я не уверен, откуда исходит ошибка. Ниже приведен мой код, который вызывает ошибку сегментации, все остальные коды, связанные с этим, не имеют проблем.
#!/usr/bin/env python
import rospy
import threading
from geometry_msgs.msg import PoseWithCovarianceStamped
from geometry_msgs.msg import PoseStamped
from geometry_msgs.msg import Pose
from geometry_msgs.msg import PoseArray
from std_msgs.msg import String
from std_msgs.msg import Empty
from std_msgs.msg import UInt32
from PoseData import PoseData
from save_file import save_file
class RecordNode:
def __init__(self):
rospy.init_node("RecordNode",anonymous=True)
self.saved_poses = []
self.current_pose = None
self.last_saved_pose = None
self.stop = False
self.distance_value = 1.0
self.savefile = save_file()
self.pose_sub = rospy.Subscriber("current_pose",PoseStamped, self.pose_callback)
def pose_callback(self, data):
pose = data.pose
#print(pose)
self.current_pose = PoseData.from_pose(pose)
def record_new_path(self):
self.last_saved_pose = self.current_pose
self.saved_poses.append(self.last_saved_pose)
print("Starting saving.")
#debug -------------------------
#print(self.distance_value)
#debug -------------------------
while self.stop == False:
distance_comp = self.last_saved_pose.distance(self.current_pose)
#debug -------------------------
#print(self.last_saved_pose.distance(self.current_pose))
#print(distance_comp)
#debug -------------------------
if distance_comp >= self.distance_value:
self.last_saved_pose = self.current_pose
self.saved_poses.append(self.last_saved_pose)
#debug -------------------------
print("Saved poses in array: {}").format(len(self.saved_poses))
#print(self.last_saved_pose)
#print(self.distance_value)
#debug -------------------------
print("Waypoints saved to array, save to file?.")
self.savefile.saved_poses_file = self.saved_poses
self.savefile.set_save_file_loc()
self.savefile.write_data(self.saved_poses)
self.saved_poses = []
def start_thread(self):
self.thread = threading.Thread(target = self.record_new_path)
self.thread.start()
def main():
node = RecordNode()
rospy.spin()
if __name__=="__main__":
try:
main()
except rospy.ROSInternalException:
pass