ublox
ublox copied to clipboard
Add support for forwarding RTCM correction data to ROS2
Ported the functionality from #136 to ROS2 (tested on Foxy). Works with the ntrip_client
package and adds a dependency on mavros_msgs
for the RTCM message format, since both of these have existing ROS2 ports.
I think it's rather strange to introduce a platform specific (mavros) dependency on a driver like this.
Why not use rtcm_msgs?
I think it's rather strange to introduce a platform specific (mavros) dependency on a driver like this.
Yeah, I agree with that. This seems pretty backwards, and I'm not really in favor of doing this.
Also, either way you'll need to add in a dependency in the package.xml, otherwise this can't build on the buildfarm.
I think it's rather strange to introduce a platform specific (mavros) dependency on a driver like this.
Why not use rtcm_msgs?
I was originally planning on using rtcm_msgs, but it only supports ROS1. The only reason I went with mavros is because that's what ntrip_client
uses on the ROS2 version. Happy to switch out for any preferable alternative, but I haven't been able to find another ROS2 compatible ntrip package that uses something other than mavros.
I was originally planning on using rtcm_msgs, but it only supports ROS1.
Well, that's easily solved :slightly_smiling_face: https://github.com/tilk/rtcm_msgs/pull/3
I also vote for using rtcm_msgs
.
It used those messages in ROS1, and I already have a couple of custom ntrip clients for ROS2 that use rtcm_msgs
as well.
(I have a branch pretty much identical to this PR except for the message type since a while back. Just never got around to making a PR for it...)
Alrighty, works for me! Once @Timple's PR gets merged and a ROS2 package is released, I'll update this to use it and we're off to the races. I'll probably also submit a PR to ntrip_client to switch from mavros_msgs
back to rtcm_msgs
so that there's a relatively frictionless solution for this moving forward.
Alright, this PR is now updated to use rtcm_msgs
instead of mavros_msgs
, since Timple's PR got merged and ntrip_client
now has support for choosing your rtcm message type.
FYI, I retargeted this to the ros2
branch, and rebased the change. This now looks good to me; thanks for the improvement.
If you'd like to have this backported to the Humble, Galactic, or Foxy branches, just let me know and I can go ahead and do that.
I want this change for foxy version!
@LuckierDodge
Hello,
I am using u-blox zed-f9p
and trying to use this package for receiving rtcm
messages.
It is a little bit confused to me. I think this package will generate a ROS2 topic for rtcm which is received via u-blox zed-f9p
..
I am not sure why people are using rtcm-ntrip server(?) to get the rtcm message.
Can you make it clear that I can get rtcm messages by using u-blox-zed-f9p and this package without internet (rtcm-ntrip)?
Thank you in advance.
The purpose of this PR was to add support for sending RTCM messages to an RTK from an external source, like an ntrip server, in order to use that correction data to improve the fix of a moving robotic base.
I believe what you are asking is whether or not you can generate your own RTCM messages from a stationary RTK acting as a base station. I believe this is possible using this package, but I confess it's not something I've attempted myself.
@LuckierDodge
Thank you for your answer.
I hope here is anyone who knows the way to receive RTCM messages from a base station (In my case, it is ublox zed f9p
) ....
I found https://github.com/AlexisTM/rtk_ros/tree/master
but this is only for ROS1... not ROS2