ublox icon indicating copy to clipboard operation
ublox copied to clipboard

Add support for forwarding RTCM correction data to ROS2

Open LuckierDodge opened this issue 2 years ago • 7 comments

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.

LuckierDodge avatar Jun 27 '22 20:06 LuckierDodge

I think it's rather strange to introduce a platform specific (mavros) dependency on a driver like this.

Why not use rtcm_msgs?

Timple avatar Jun 28 '22 06:06 Timple

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.

clalancette avatar Jun 28 '22 11:06 clalancette

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.

LuckierDodge avatar Jun 28 '22 14:06 LuckierDodge

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

Timple avatar Jul 04 '22 09:07 Timple

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...)

samiamlabs avatar Jul 15 '22 11:07 samiamlabs

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.

LuckierDodge avatar Jul 15 '22 14:07 LuckierDodge

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.

LuckierDodge avatar Sep 15 '22 19:09 LuckierDodge

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.

clalancette avatar Oct 18 '22 16:10 clalancette

I want this change for foxy version!

uicuic avatar Feb 15 '23 10:02 uicuic

@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.

gitsr-sys avatar May 22 '24 20:05 gitsr-sys

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 avatar May 22 '24 22:05 LuckierDodge

@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

gitsr-sys avatar May 23 '24 22:05 gitsr-sys