Follow googlecartographer/cartographer#603. (#550)
							parent
							
								
									b9dbfc6664
								
							
						
					
					
						commit
						adbaeb4fe6
					
				| 
						 | 
				
			
			@ -150,7 +150,8 @@ cartographer_ros_msgs::SubmapList MapBuilderBridge::GetSubmapList() {
 | 
			
		|||
  cartographer_ros_msgs::SubmapList submap_list;
 | 
			
		||||
  submap_list.header.stamp = ::ros::Time::now();
 | 
			
		||||
  submap_list.header.frame_id = node_options_.map_frame;
 | 
			
		||||
  for (const auto& submap_id_data : map_builder_.sparse_pose_graph()->GetAllSubmapData()) {
 | 
			
		||||
  for (const auto &submap_id_data :
 | 
			
		||||
       map_builder_.sparse_pose_graph()->GetAllSubmapData()) {
 | 
			
		||||
    cartographer_ros_msgs::SubmapEntry submap_entry;
 | 
			
		||||
    submap_entry.trajectory_id = submap_id_data.id.trajectory_id;
 | 
			
		||||
    submap_entry.submap_index = submap_id_data.id.submap_index;
 | 
			
		||||
| 
						 | 
				
			
			@ -192,22 +193,18 @@ MapBuilderBridge::GetTrajectoryStates() {
 | 
			
		|||
 | 
			
		||||
visualization_msgs::MarkerArray MapBuilderBridge::GetTrajectoryNodeList() {
 | 
			
		||||
  visualization_msgs::MarkerArray trajectory_node_list;
 | 
			
		||||
  const auto all_trajectory_nodes =
 | 
			
		||||
      map_builder_.sparse_pose_graph()->GetTrajectoryNodes();
 | 
			
		||||
  for (int trajectory_id = 0;
 | 
			
		||||
       trajectory_id < static_cast<int>(all_trajectory_nodes.size());
 | 
			
		||||
       ++trajectory_id) {
 | 
			
		||||
    const auto& single_trajectory_nodes = all_trajectory_nodes[trajectory_id];
 | 
			
		||||
  const auto nodes = map_builder_.sparse_pose_graph()->GetTrajectoryNodes();
 | 
			
		||||
  for (const int trajectory_id : nodes.trajectory_ids()) {
 | 
			
		||||
    visualization_msgs::Marker marker =
 | 
			
		||||
        CreateTrajectoryMarker(trajectory_id, node_options_.map_frame);
 | 
			
		||||
 | 
			
		||||
    for (const auto& node : single_trajectory_nodes) {
 | 
			
		||||
      if (node.constant_data == nullptr) {
 | 
			
		||||
    for (const auto& node_id_data : nodes.trajectory(trajectory_id)) {
 | 
			
		||||
      if (node_id_data.data.constant_data == nullptr) {
 | 
			
		||||
        PushAndResetLineMarker(&marker, &trajectory_node_list.markers);
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
      const ::geometry_msgs::Point node_point =
 | 
			
		||||
          ToGeometryMsgPoint(node.global_pose.translation());
 | 
			
		||||
          ToGeometryMsgPoint(node_id_data.data.global_pose.translation());
 | 
			
		||||
      marker.points.push_back(node_point);
 | 
			
		||||
      // Work around the 16384 point limit in RViz by splitting the
 | 
			
		||||
      // trajectory into multiple markers.
 | 
			
		||||
| 
						 | 
				
			
			@ -252,10 +249,9 @@ visualization_msgs::MarkerArray MapBuilderBridge::GetConstraintList() {
 | 
			
		|||
  residual_inter_marker.ns = "Inter residuals";
 | 
			
		||||
  residual_inter_marker.pose.position.z = 0.1;
 | 
			
		||||
 | 
			
		||||
  const auto all_trajectory_nodes =
 | 
			
		||||
  const auto trajectory_nodes =
 | 
			
		||||
      map_builder_.sparse_pose_graph()->GetTrajectoryNodes();
 | 
			
		||||
  const auto submap_data =
 | 
			
		||||
      map_builder_.sparse_pose_graph()->GetAllSubmapData();
 | 
			
		||||
  const auto submap_data = map_builder_.sparse_pose_graph()->GetAllSubmapData();
 | 
			
		||||
  const auto constraints = map_builder_.sparse_pose_graph()->constraints();
 | 
			
		||||
 | 
			
		||||
  for (const auto& constraint : constraints) {
 | 
			
		||||
| 
						 | 
				
			
			@ -294,10 +290,11 @@ visualization_msgs::MarkerArray MapBuilderBridge::GetConstraintList() {
 | 
			
		|||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    const auto& submap_pose = submap_it->data.pose;
 | 
			
		||||
    const auto& trajectory_node_pose =
 | 
			
		||||
        all_trajectory_nodes[constraint.node_id.trajectory_id]
 | 
			
		||||
                            [constraint.node_id.node_index]
 | 
			
		||||
                                .global_pose;
 | 
			
		||||
    const auto node_it = trajectory_nodes.find(constraint.node_id);
 | 
			
		||||
    if (node_it == trajectory_nodes.end()) {
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    const auto& trajectory_node_pose = node_it->data.global_pose;
 | 
			
		||||
    const cartographer::transform::Rigid3d constraint_pose =
 | 
			
		||||
        submap_pose * constraint.pose.zbar_ij;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue