advice for autodock vs. custom node

asked 2021-10-20 15:55:00 -0500

Hello. I built a custom mobile robot that runs Noetic on Ubuntu 20.04; and the ROS Navigation stack is implemented. I am still on ROS1. Here's a pic:

My robot

Over the last little while I built a charging panel, and modified the robot to charge from the panel. The last step is driving the robot onto the charger using a QR Code (on charger) and a webcam sending images to a PC (leveraging OpenCV). I asked about existing docking libraries (https://robotics.stackexchange.com/qu...) and the best option seems like this one: https://github.com/osrf/autodock

I am torn between writing my own docking node that is well suited for my hardware (and design approach), vs. learning a brand new package I know nothing about. Could you chime in on the following:

  • Do you have any experience integrating the autodock package onto a physical robot?
  • Are you aware of any tutorials on this autodock package?
  • How good is the autodock package after you put it on the physical robot?
  • Any issues with the package?

At this stage in the game, I am worried about the following:

  • Problem #1: Write my own code, when there is something that exists and is perfectly good and well suited for my hardware.
  • Problem #2: Focus fully on autodock to discover that the ideas around which I built my charging system are not very compatible with the autodock package, or that it doesn't work well.

I am working completely on my own, and don't know anyone who builds robots. I am hoping that someone in the community can steer me to prevent me doing something that in retrospect seems obviously wrong like i did here: https://answers.ros.org/question/3466...

edit retag flag offensive close merge delete

Comments

As you have a custom robot, it's going to be difficult for anyone to really say with any certainty whether any package will work for you / with your robot.

re: build or buy (of the docking package): trying out a package is (in my experience) always easier than building something myself first (and then testing). But whether that's true for you will depend on your level of experience (with reusing software, (quickly) reading other ROS packages, etc) and how well the package you're trying to reuse is documented.

As to the package you link: it's a rather new package. I'm not claiming it won't work, but I doubt there are many people who've already used it (other than the developer and the OR people involved in its development (see the Discourse discussion linked in your SE question by Tully)).

gvdhoorn gravatar image gvdhoorn  ( 2021-10-21 04:11:19 -0500 )edit

@gvdhoorn Thanks for you perspective on the package. I was already leaning towards writing my own code, and was looking for guidance / advice / different perspective. Your comment was exactly that. I will write my own docking code in C++, and port it over to ROS. Thank you.

If you post your comment as an answer I will gladly accept it.

BuilderMike gravatar image BuilderMike  ( 2021-10-21 10:53:38 -0500 )edit

I will write my own docking code in C++

you should always do what you're comfortable with, but that was not what I was trying to say necessarily.

I would suggest to take a look at the package you linked and see what it's doing.

There's no need to understand it 100%, even before you start using it.

In almost any case (partial) reuse will be beneficial.

I would want to add though: your robot looks fairly large for the area / space the dock is in. Many docking algorithms will want to "wiggle" a little, especially when using diff drive setups. Might want to keep an eye on that.

gvdhoorn gravatar image gvdhoorn  ( 2021-10-21 10:56:08 -0500 )edit

@gvdhoorn I have a feeling you very aware of the robotic landscape, and I have a question. Are you aware of any robot communities where people can chat, meet via video calls, and discuss projects and help each other? I am hoping for some sort of robotics community where the primary objective is building real robots or something that can become a real robot. Any ideas on such a community? How can I connect with other Roboticists outside of a Q&A format like answers.ros.org or stack overflow? Any guidance would be greatly appreciated.

BuilderMike gravatar image BuilderMike  ( 2021-10-21 11:10:08 -0500 )edit

I'm sure they exist, however I don't participate in any.

Having something local to you (ie: geographically) might also work best, compared to online communities. That would depend on where you are, and I'm not near you.

I can only recommend to take a look on ROS Discourse where local events are quite often announced, or post a message like you did here on ROS Discourse. You seem to be in Toronto. I would expect there to be a community already there.

gvdhoorn gravatar image gvdhoorn  ( 2021-10-23 03:23:51 -0500 )edit