Rosject ros2 nav2 - version mismatches

Hi,

I am working with the rosject for ROS2 Navigation.
I had a hard time with project_path_planning.

I had to change many things, like bt_nvigation plugins and package names until it started working.
Now it works, but I often get [bt_navigator]: Goal failed errors when the robot is very close for the real goal. Weird. Probably I have to tweak with the settings, but I am a bit unmotivated.

There are clearly issues here with the versions.
The ROS2 Nav course material is for Humble.
The Rosject for the project is for Galactic.
The material in the Rosject is for Foxy.
I can imagine, that I will have many more issues with the real robot.
So it is messy to say the least.

So far I have wasted many-many hours solving these incompatibilites in the material.
I do not think that a material should have error free. I like to learn with the hard way so I like to solve the bugs in training materials because I believe, that fixing bugs helps me to understand the topic deeper.

But maybe this is a bit too much now.

I do not think, that in real life we would have as many incompatibilities. Probably roboticists stick to one or two close versions for a project. And when upgrading, they upgrade it and not let some part of the system years older then the other.

So what do you think?
Is it worth spending the time with the rosject and the real robot?

On my laptop the ros2 version is Iron and probably I would like to use Iron for my hobby projects.

Thank you in advance
Péter

Hi @peterborkuti
I understand what you have been through. I don’t think the problem lies in the version mismatch. You can select which ROS2 version you’re working with in the Rosject from the beginning. Then, in the repository, they provide us with the ros2_ws catkin workspace, which installs most of the packages we need. I used to create my own rosject for my projects, and I haven’t encountered any issues until now. If you need any help, please share more details about your problem so we can find a solution.
Best regard,
Eric

Hi Eric,

Thank you for your answer.
What I did:

  • I started the course ROS2 Navigation.
  • In Unit 1, there is:

You can now copy the project rosject by clicking here.

So I clicked on the link and that is all.
I do not know how to select a rosject version.

Can you help me?

Thank you in advance
Péter

Hi @skynguyen1402

I found how to create a rosject for any version.
Many thanks, I am trying this.

Péter

Hi @peterborkuti
I’m glad to hear that. Good luck with your project.
Eric

Hi @skynguyen1402 ,

Unfortunately, it seems to me I can not create a customized rosject for the ROS2 Navigation course.

I created one rosject for Humble, but it does not contain the material for learning.

I can copy the jupyter notebook, but not the whole simulation.
Than I will have to connect to a real robot for finishing the learning project and probably I also will not be able to do that.

Maybe we misunderstood each other. Now I see that for my projects, I can customize a rosject. But I do not think that I can customize one working on the ROS2 Navigation course.

Do you know how can I create a rosject for the course ROS2 Navigation? Which contains the necessary tools, the simulation, etc.?

Péter

Hi @peterborkuti
I just tried to run the ROS2 Navigation courses. And I think I know your problem.

  1. Firstly, when you click to the link the project rosject, I will link you to the ROS2 Navigation Real Robot Project. In this project, they are using the ros galactic.
  2. Secondly, If you follow the guide you will see this command line:


Now, instead of running all the commands, I do like this:

cd catkin_ws

then

source ~/catkin_ws/devel/setup.bash
roslaunch load_params load_params.launch

Now when you check the topics, you can not see the topic from the turtlebot3 because of the mismatch between ROS2 and ROS1. That’s why we need the ros1_bridge.
Here, you open another terminal and go to the ros2 catkin workspace. :

cd ros2_ws
source /opt/ros/galactic/setup.bash

In this case, I checked the ros environment, it gives me these options. Therefore, I am using the galactic instead of foxy as the guideline.


Then you can use these commands to run the ros1_bridge:

ros2 run ros1_bridge parameter_bridge

Now you are able to see the topics from turtlebot3


From this step, you can continue your Navigation course.
Best Regard,
Eric

Hi @skynguyen1402 ,

I appreciate your help very much, thank you.

I have not tried that ros-bridge because I would like to finish the course first.

As you experienced, the rosject is galactic but the learning material is for humble.
Also the jupyter notebook is for (probably) Foxy.
Many things changed in nav2 from foxy to galactic to humble, the yaml files, package names, plugins.

So I think, this is confusing.

Péter

Hi @peterborkuti
To fulfill the course, you first have to finish SECTION I following the instructions. Therefore, the ros-bridge is necessary for you and you can check the ROS version as well as the Nav2 package in the rosject. I think they might have some typo errors in the Jupyter Notebook so I suggest that when you execute the commands, you check which version you are using right now and try to match with it.
Best Regards,
Eric

Hi @skynguyen1402 ,

Thank you for you help.
I finished Section III without that ros-bridge. I think, it is necessary only for connecting to a real robot.
For now, the simulation is enough.

I will try to use the real robot after I learned everything from the ROS2 Navigation material.

Péter

Hi @peterborkuti
I’m glad to hear that.
Best Regard,
Eric

Hi @peterborkuti
we have recently updated the Nav2 course to ROS2 Humble and we caused a confusion with the rosject project of that course (because it was not updated to Humble).

So now, the link to the rosject should be ok.

My recommendation is that you fork again the rosject of that course with this link: https://app.theconstructsim.com/l/3dcfaa9d/

This rosject simplifies a lot from previous rosject because it removes all the necessity of the ros1_bridge. So you don’t need that anymore.

Also, you will have the rosject in Humble version, the same as the Nav2 course. Also, the real robot lab will be directly connecting to the ROS2 environment, so no need of bridge neither.

Let me know if there is any further doubt

Wow, very good news, I will try it today in the evening.
I will be bakc with the outcome.

Thank you

Hi @courses,

Thanks, the rosject is for humble now.

Péter

1 Like

Excellent! Waiting to see your progress! :grinning:

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.