In implementing a GPS-waypoint-following system for the Pelican with the ETH firmware, we found it helpful to be able to convert a set of waypoints in wgs84 coordinates to ENU coordinates. pelican_hl_gps's gps conversion node has code to do this. To make this functionality available to our python node that reads in the waypoints, I altered the gps conversion node to provide a service that would take wgs84 coordinate as a request and give the equivalent ENU coordinate (based on the stored GPS reference point) as a response.
In principle it would have been possible to rewrite our code in C++ and simply include the gps code as a dependency, or find a way of calling the relevant function via some C++-to-Python interface, but this was the simplest solution. It also seems likely that conversion from wgs84 to ENU coordinates may be a common use case for ROS systems working with the Pelican, so it made sense to me to make this functionality available over the ROS network. Others might find this useful as well, so I'm creating this pull request.
In implementing a GPS-waypoint-following system for the Pelican with the ETH firmware, we found it helpful to be able to convert a set of waypoints in wgs84 coordinates to ENU coordinates. pelican_hl_gps's gps conversion node has code to do this. To make this functionality available to our python node that reads in the waypoints, I altered the gps conversion node to provide a service that would take wgs84 coordinate as a request and give the equivalent ENU coordinate (based on the stored GPS reference point) as a response.
In principle it would have been possible to rewrite our code in C++ and simply include the gps code as a dependency, or find a way of calling the relevant function via some C++-to-Python interface, but this was the simplest solution. It also seems likely that conversion from wgs84 to ENU coordinates may be a common use case for ROS systems working with the Pelican, so it made sense to me to make this functionality available over the ROS network. Others might find this useful as well, so I'm creating this pull request.