Example #1
0
SlamEdge Conversions::fromMsg(const graph_slam_msgs::Edge &edge_msg)
{
    Eigen::Isometry3d T;
    Eigen::MatrixXd I;
    Conversions::fromMsg(edge_msg.transformation, T, I);

    SlamEdge edge = SlamEdge(edge_msg.id, edge_msg.id_from, edge_msg.id_to, T, I, edge_msg.type, edge_msg.sensor_from, edge_msg.sensor_to, edge_msg.diff_time);
    edge.matching_score_ = edge_msg.matching_score;
    edge.displacement_from_ = fromMsg(edge_msg.displacement_from);
    edge.displacement_to_ = fromMsg(edge_msg.displacement_to);
    edge.error_ = edge_msg.error;
    edge.age_ = edge_msg.age;
    edge.valid_ = edge_msg.valid;
    return edge;
}
TerrainModel::TerrainModel(const TerrainModelMsg& terrain_model)
{
  point_cloud_with_normals.reset(new pcl::PointCloud<pcl::PointNormal>());
  points_with_normals_kdtree.reset(new pcl::KdTreeFLANN<pcl::PointNormal>());

  fromMsg(terrain_model);
}
Example #3
0
std::vector<SensorDataPtr> Conversions::fromMsg(const graph_slam_msgs::SensorDataArray &sensor_data_msg)
{
    std::vector<SensorDataPtr> sensor_data_array;
    for (auto data : sensor_data_msg.data) {
        sensor_data_array.push_back(fromMsg(data));
    }
    return sensor_data_array;
}
Example #4
0
void Conversions::fromMsg(const geometry_msgs::PoseWithCovariance &poseMsg, Eigen::Isometry3d &pose, Eigen::MatrixXd &covariance)
{
    pose = fromMsg(poseMsg.pose);

    covariance.resize(6,6);
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6; j++) {
            covariance(i,j) = poseMsg.covariance[6*i + j];
        }
    }
}
bool service_callback(constraint_msgs::ConstraintsRank::Request& request, constraint_msgs::ConstraintsRank::Response&  answer)
{
  Analysis analyzer(request.constraints.size());
  answer.rank = analyzer.rank(fromMsg(request.constraints), 0.0001, 1e-6);
  return true;
}