The turtle bots were always based on vacuum cleaner chassis, so they had the benefit of usually working with an existing dock and hardware already set up to mate up and connect power.
I was very close to buying one of those turtle bots in 2016, but the Arlo platform lured me into rolling my own setup because it could hold so much weight. Looking back, I would have been fine with the turtle bot, but I learned so much.
Link 1, with the camera bases setup looks pretty cool, and he probably has a more complete code example. I do think dedicated IR sensors or docking would be cheaper than a dedicated camera, but maybe not?
The difficulty with so many of these ROS projects found online is that they are done as "research studies" in which they attempt to solve one very discreet problem. They don't consider how to integrate it well into a robot that does other things. They also are often submitting this for some college exam, so they only have to demonstrate a certain level of functionality, not actually have it work every day in random locations.
Anyway, regarding ROS and auto docking, this is how I see it working:
1. You have a map in ROS, and a "way point" set up for "near" the charger and "facing" it (your IR sensor seeing it, whether that is forward or backward). This part you already have, you can make a map, set way points, and tell it to go there. You can do it via the Web Interface or Rviz, and there are also command line scripts to do it in the setup.
2. The hardware that can "see" the dock, tell you if you need to rotate right or left and when to proceed. I think you have this now right?
3. The "glue" here is that code needs to publish "twist" messages on a ROS Topic. This is exactly what the keyboard, joystick, or Slam Toolbox do now. We just add one more publisher to the mix, and it gets its input from your hardware in step 2 and outputs twist messages.
I THINK that the code you referenced before does that, but they didn't wrap it up with ROS launch files, so I have to make those. There is also a "ROS Node" that basically "mixes" (prioritizes really) the various topics talking to the robot (How does it work to have joystick, web site input, and Slam Toolbox all sending twist messages?! Well, there is a mixer!) that I need to add this topic to so that the messages get to the robot when they exist.
I just need to sit down and do it. Make the launch files, test it, add it to the mixer, and then publish the updates so you can test them.
This is also kind of a distraction from getting the Roboclaw controller working with ROS. :)