position.cpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: BSD-3-Clause
2 // SPDX-FileCopyrightText: Czech Technical University in Prague
3 
4 #include <gnsstk/Position.hpp>
5 
6 #include <geographic_msgs/GeoPoint.h>
7 #include <geometry_msgs/Point.h>
8 #include <gnsstk_ros/position.h>
9 
10 namespace gnsstk_ros
11 {
12 
13 gnsstk::Position convert(const geographic_msgs::GeoPoint& position)
14 {
15  return {position.latitude, position.longitude, position.altitude, gnsstk::Position::CoordinateSystem::Geodetic};
16 }
17 
18 geographic_msgs::GeoPoint convertToGeographicMsg(const gnsstk::Position& position)
19 {
20  auto pos = position;
21  pos.transformTo(gnsstk::Position::CoordinateSystem::Geodetic);
22  geographic_msgs::GeoPoint msg;
23  msg.latitude = pos.geodeticLatitude();
24  msg.longitude = pos.longitude();
25  msg.altitude = pos.height();
26  return msg;
27 }
28 
29 gnsstk::Position convert(const geometry_msgs::Point& position)
30 {
31  return {position.x, position.y, position.z, gnsstk::Position::CoordinateSystem::Cartesian};
32 }
33 
34 geometry_msgs::Point convertToCartesianMsg(const gnsstk::Position& position)
35 {
36  auto pos = position;
37  pos.transformTo(gnsstk::Position::CoordinateSystem::Cartesian);
38  geometry_msgs::Point msg;
39  msg.x = pos.X();
40  msg.y = pos.Y();
41  msg.z = pos.Z();
42  return msg;
43 }
44 
45 gnss_info_msgs::SatellitePosition convert(const gnsstk::Xvt& xvt, const uint32_t satcatId,
46  const double posCov, const double velCov)
47 {
48  gnss_info_msgs::SatellitePosition position;
49  position.satcat_id = satcatId;
50  position.position.x = xvt.x[0];
51  position.position.y = xvt.x[1];
52  position.position.z = xvt.x[2];
53  position.velocity.x = xvt.v[0];
54  position.velocity.y = xvt.v[1];
55  position.velocity.z = xvt.v[2];
56  position.position_covariance = {posCov, 0.0, 0.0, 0.0, posCov, 0.0, 0.0, 0.0, posCov};
57  position.velocity_covariance = {velCov, 0.0, 0.0, 0.0, velCov, 0.0, 0.0, 0.0, velCov};
58  return position;
59 }
60 
61 }
msg
msg
gnsstk_ros
Definition: constellations.h:15
gnsstk_ros::convertToGeographicMsg
geographic_msgs::GeoPoint convertToGeographicMsg(const gnsstk::Position &position)
Convert the given gnsstk Position object to WGS84 ROS GeoPoint message.
Definition: position.cpp:18
gnsstk_ros::convert
gnsstk::Position convert(const geographic_msgs::GeoPoint &position)
Convert the ROS GeoPoint message to gnsstk Position with Geodetic type.
Definition: position.cpp:13
gnsstk::Xvt::v
Triple v
gnsstk::Xvt::x
Triple x
gnsstk_ros::convertToCartesianMsg
geometry_msgs::Point convertToCartesianMsg(const gnsstk::Position &position)
Convert the given gnsstk Position object to ECEF ROS Point message.
Definition: position.cpp:34
gnsstk::Xvt
pos
pos
position.h
gnsstk::Position::longitude
double longitude() const noexcept
gnsstk::Position


gnsstk_ros
Author(s): Martin Pecka
autogenerated on Fri Nov 24 2023 03:50:23