Skip to content

Commit b2a10bd

Browse files
authored
Add setentrio msgs for velocity source (#336)
1 parent a527d20 commit b2a10bd

File tree

5 files changed

+44
-3
lines changed

5 files changed

+44
-3
lines changed

eagleye_rt/config/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The parameters for estimation in Eagleye can be set in the `config/eagleye_confi
1717
| imu_topic | string | Topic name to be subscribed to in node (sensor_msgs/Imu.msg) | /imu/data_raw |
1818
| twist.twist_type | int | Topic type to be subscribed to in node (TwistStamped : 0, TwistWithCovarianceStamped: 1) | 0 |
1919
| twist.twist_topic | string | Topic name to be subscribed to in node | /can_twist |
20-
| gnss.velocity_source_type | int | Topic type to be subscribed to in node (rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3) | 0 |
20+
| gnss.velocity_source_type | int | Topic type to be subscribed to in node (rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3, septentrio_gnss_driver/PVTGeodetic: 4) | 0 |
2121
| gnss.velocity_source_topic | string | Topic name to be subscribed to in node | /rtklib_nav |
2222
| gnss.llh_source_type | int | Topic type to be subscribed to in node (rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, sensor_msgs/NavSatFix: 2) | 0 |
2323
| gnss.llh_source_topic | string | Topic name to be subscribed to in node | /rtklib_nav |

eagleye_rt/config/eagleye_config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
twist_topic: /can_twist
1111
imu_topic: /imu/data_raw
1212
gnss:
13-
velocity_source_type: 0 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3
13+
velocity_source_type: 0 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3, septentrio_gnss_driver/PVTGeodetic: 4
1414
velocity_source_topic: /rtklib_nav
1515
llh_source_type: 0 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, sensor_msgs/NavSatFix: 2
1616
llh_source_topic: /rtklib_nav

eagleye_util/gnss_converter/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ find_package(ament_cmake_auto REQUIRED)
2323
ament_auto_find_build_dependencies()
2424

2525
include_directories(include)
26+
find_package(Boost REQUIRED COMPONENTS system thread regex chrono)
2627

2728
ament_auto_add_executable(gnss_converter
2829
src/nmea2fix_core.cpp

eagleye_util/gnss_converter/package.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<build_depend>sensor_msgs</build_depend>
1414
<build_depend>nmea_msgs</build_depend>
1515
<build_depend>ublox_msgs</build_depend>
16+
<build_depend>septentrio_gnss_driver</build_depend>
1617
<build_depend>rtklib_msgs</build_depend>
1718
<build_depend>eagleye_coordinate</build_depend>
1819
<build_depend>eagleye_navigation</build_depend>
@@ -22,6 +23,7 @@
2223
<build_export_depend>sensor_msgs</build_export_depend>
2324
<build_export_depend>nmea_msgs</build_export_depend>
2425
<build_export_depend>ublox_msgs</build_export_depend>
26+
<build_export_depend>septentrio_gnss_driver</build_export_depend>
2527
<build_export_depend>rtklib_msgs</build_export_depend>
2628
<build_export_depend>eagleye_coordinate</build_export_depend>
2729
<build_export_depend>eagleye_navigation</build_export_depend>
@@ -31,12 +33,13 @@
3133
<exec_depend>sensor_msgs</exec_depend>
3234
<exec_depend>nmea_msgs</exec_depend>
3335
<exec_depend>ublox_msgs</exec_depend>
36+
<exec_depend>septentrio_gnss_driver</exec_depend>
3437
<exec_depend>rtklib_msgs</exec_depend>
3538
<exec_depend>eagleye_coordinate</exec_depend>
3639
<exec_depend>eagleye_navigation</exec_depend>
3740
<exec_depend>tf2_ros</exec_depend>
3841
<exec_depend>tf2_geometry_msgs</exec_depend>
39-
42+
4043
<test_depend>ament_lint_auto</test_depend>
4144
<test_depend>ament_lint_common</test_depend>
4245

eagleye_util/gnss_converter/src/gnss_converter_node.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "rclcpp/rclcpp.hpp"
33
#include "gnss_converter/nmea2fix.hpp"
44
#include <ublox_msgs/msg/nav_pvt.hpp>
5+
#include <septentrio_gnss_driver/msg/pvt_geodetic.hpp>
56
#include <geometry_msgs/msg/twist_with_covariance_stamped.hpp>
67
#include "eagleye_coordinate/eagleye_coordinate.hpp"
78
#include "eagleye_navigation/eagleye_navigation.hpp"
@@ -107,6 +108,36 @@ void navpvt_callback(const ublox_msgs::msg::NavPVT::ConstSharedPtr msg)
107108
rtklib_nav_pub->publish(r);
108109
}
109110

111+
void pvtgeodetic_callback(const septentrio_gnss_driver::msg::PVTGeodetic::ConstSharedPtr msg)
112+
{
113+
rtklib_msgs::msg::RtklibNav r;
114+
r.header.frame_id = "gps";
115+
r.header.stamp = msg->header.stamp;
116+
if (nav_msg_ptr != nullptr)
117+
r.status = *nav_msg_ptr;
118+
r.tow = msg->block_header.tow;
119+
120+
double llh[3];
121+
llh[0] = msg->latitude;
122+
llh[1] = msg->longitude;
123+
llh[2] = msg->height;
124+
double ecef_pos[3];
125+
llh2xyz(llh, ecef_pos);
126+
127+
double enu_vel[3] = {msg->ve, msg->vn, msg->vu};
128+
double ecef_vel[3];
129+
enu2xyz_vel(enu_vel, ecef_pos, ecef_vel);
130+
131+
r.ecef_pos.x = ecef_pos[0];
132+
r.ecef_pos.y = ecef_pos[1];
133+
r.ecef_pos.z = ecef_pos[2];
134+
r.ecef_vel.x = ecef_vel[0];
135+
r.ecef_vel.y = ecef_vel[1];
136+
r.ecef_vel.z = ecef_vel[2];
137+
138+
rtklib_nav_pub->publish(r);
139+
}
140+
110141
void gnss_velocity_callback(const geometry_msgs::msg::TwistWithCovarianceStamped::ConstSharedPtr msg)
111142
{
112143
if(msg->twist.covariance[0] > twist_covariance_thresh)
@@ -161,6 +192,7 @@ int main(int argc, char** argv)
161192
rclcpp::Subscription<nmea_msgs::msg::Sentence>::SharedPtr nmea_sentence_sub;
162193
rclcpp::Subscription<ublox_msgs::msg::NavPVT>::SharedPtr navpvt_sub;
163194
rclcpp::Subscription<geometry_msgs::msg::TwistWithCovarianceStamped>::SharedPtr gnss_velocity_sub;
195+
rclcpp::Subscription<septentrio_gnss_driver::msg::PVTGeodetic>::SharedPtr pvtgeodetic_sub;
164196
rclcpp::Subscription<sensor_msgs::msg::NavSatFix>::SharedPtr navsatfix_sub;
165197

166198
node->declare_parameter("is_sub_antenna",is_sub_antenna);
@@ -228,6 +260,11 @@ int main(int argc, char** argv)
228260
gnss_velocity_sub = node->create_subscription<geometry_msgs::msg::TwistWithCovarianceStamped>(
229261
velocity_source_topic, 1000, gnss_velocity_callback);
230262
}
263+
else if(velocity_source_type == 4)
264+
{
265+
pvtgeodetic_sub = node->create_subscription<septentrio_gnss_driver::msg::PVTGeodetic>(
266+
velocity_source_topic, 1000, pvtgeodetic_callback);
267+
}
231268
else
232269
{
233270
RCLCPP_ERROR(node->get_logger(),"Invalid velocity_source_type");

0 commit comments

Comments
 (0)