Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROS2 navigation2 controller #13

Open
soldierofhell opened this issue Jul 1, 2020 · 13 comments
Open

ROS2 navigation2 controller #13

soldierofhell opened this issue Jul 1, 2020 · 13 comments

Comments

@soldierofhell
Copy link

Hi @croesmann, are there any plans for a ROS2 integration with nav2 stack similar like in teb? There's ros2-master branch, but seems like it doesn't implement nav2_core/controller.hpp interface

Regards,

@croesmann
Copy link
Member

Hi @soldierofhell,

Yes, of course. But since the package is still in an early stage, I wanted to focus on bug fixing in ROS1 before porting to ROS2. I also expect some API changes in the integration with homotopy class planning (as it is done for the TEB).

However, the port to ROS2 should be straightforward as most of the code (planning backend) is ROS-free.

The only problem at the moment is my limited spare time for working on the project ;-)

@soldierofhell
Copy link
Author

Thank you @croesmann. So I'll try to do it myself. Fortunatelly I noticed some similarities with teb code base, so should be easier.

Regards,

@SteveMacenski
Copy link
Collaborator

Make sure to PR it back here! @croesmann can you open a ros2 branch?

Also, maybe some documentation about the current status of this work and any positives / negatives people should know.

@soldierofhell
Copy link
Author

@croesmann , while doing ROS2 port I found a copy-bug here:

double delta_rot = normalize_theta(fd_grid->getState(i)[i + 1] - fd_grid->getState(i)[0]);

@soldierofhell
Copy link
Author

Can we safely replace g2o::normalize_theta() with normalize_theta() from math_utils.h?

double delta_orient = g2o::normalize_theta(tf2::getYaw(global_goal.pose.orientation) - _robot_pose.theta());

intermediate_pose.theta() = g2o::normalize_theta(intermediate_pose.theta() + delta_rot / (n_additional_samples + 1.0));

@croesmann
Copy link
Member

Thanks for the pointer to the bug. I‘ll check that later.

Yes, you can safely replace the g2o variant by the internal normalizing function.

@croesmann
Copy link
Member

I fixed the bug and synced ros2-master with the ros1 master.

@dkuenster
Copy link

@soldierofhell I'm also thinking about porting this to ROS2. How far along are you with your port? Maybe we can avoid doing the same work twice.

@soldierofhell
Copy link
Author

I've already done it, although didn't have time to test it before holidays. I'm back on Monday and start testing

@dkuenster
Copy link

Any estimation on when the PR will be available?

@ss26
Copy link

ss26 commented Mar 14, 2021

Is there any update on this PR? I would like to use mpc_local_planner in ros2.

@dkuenster
Copy link

dkuenster commented Mar 15, 2021

I created a PR in this repo. Check out #35

@rzeeshan565
Copy link

Is there any update on this PR? I would like to use mpc_local_planner in ros-foxy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants