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.
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
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.?
Hi @peterborkuti
I just tried to run the ROS2 Navigation courses. And I think I know your problem.
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.
Secondly, If you follow the guide you will see this command line:
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.
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.
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
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.
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).
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.