-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Metapackage + Reorg + build script updates #107
Conversation
To address your second "future work" item, there is a mechanism in the build script to override the navigation2 repo being used, however, it is undocumented. I figured nobody would ever need it but me. If you create a VCS repo file called Here's the relevant snippet of code. It's kind of crude, but helped keep the script fairly simple. if [ -f "custom_nav2.repos" ]; then #override default location for testing
vcs import src < custom_nav2.repos
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Let's wait on merging this until the costmap changes are merged in a day or two
- @SteveMacenski Is there any reason you did not move the dwb* packages to the root of the repo? They are still under
nav2_dwb_controller
- I opened issues Rename packages and folders along the lines of nav2_<type of package>_<specific_implementation> #110 and Create a class diagram that shows the relationship between packages in the repo #111 to make up for the loss of structure caused by flattening the tree
@SteveMacenski I think it's an unfortunate ROS convention to eliminate directory hierarchy. I find that grouping related functionality and organizing into a hierarchy to be a quite common an useful tool. I believe you're suggesting that all projects should be in a single top-level directory. Carl has suggested ways to adapt to the loss of structure, but again, I don't see much of a benefit to flattening everything out. |
nav2_msgs/package.xml
Outdated
<version>0.1.0</version> | ||
<description>TODO</description> | ||
<description>Messages and service files for the navigation2 stack</description> | ||
<author>Michael Jeronimo, Steve Macenski</author> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should avoid use of the author tag. Potentially anyone who has ever contributed a patch is an author. I'd expect the list to keep growing and growing over time, with no clear rule about when someone should be removed, or who gets top billing.
IMHO, the best solution is to not use this tag. The authorship is available in the git history.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
navigation2/package.xml
Outdated
<description> | ||
ROS2 Navigation Stack | ||
</description> | ||
<author>Oregon Robotics Team, Steve Macenski</author> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, I'd prefer to leave out the author field.
I'll try to address here in order:
I'd like to get a "a-ok" on these topics or continue the discussion to come to a resolution before I go and try to resolve these merge conflicts that have come up from some |
@SteveMacenski Please proceed with the PR, address any review feedback, resolve the merge conflicts and we'll get it integrated. Thanks. |
Just getting back from Madrid, I'll be working on this. |
These merge conflicts are going to take me a long time to resolve, a great deal has changed |
I'm putting a pin in this. So many dramatic changes have happened, I can't find the time anytime soon to redo all this without a guarantee that once done I'll have to restart again |
@SteveMacenski What would be a good way to approach this? Maybe if we take it one directory at a time? If you let us know which one you want to tackle we can try to minimize changes in that area. |
Files keep moving around, or being renamed, or generally removed without much public discussion, so I can't track what's moved and why -- and more importantly, what's currently being shifted around to know once I spend the 10+ hours to fix this, that I won't have to simply restart after this PR soaks and things outside this has changed. If there's 2-3 days someone can give me the OK that major things aren't going to be moving, I can do it, but I would like to have any discussion on concerns about this PR before I go through it so I won't have to redo again then after from a lingering concern edit: because of the packages refactor, it needs to be an all at once change or else it wont compile in that mean time. I'll take another stab at it this afternoon to see if I can figure out a way to get around all these merge issues |
@SteveMacenski - we'll hold off on any merges until Wednesday if you think you can get this rebased and ready for merge. Is that enough time? |
Feel free to merge PRs, but just try to not merge in things that include major refactoring (i.e. large number of files moved, removed, or added) I can make that happen. |
OK stayed up late to get this out as quick as possible to not block. It's all in place with the exception of the gtesting in
|
@SteveMacenski My gut feel is that this link issue you are seeing will go away with a clean build. I pulled your branch and it builds fine for me. |
OK figured out my issue about an hour ago. Either way, feel free to look through this and comment, I'm done with needed things to get this out Some big points to cover
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The rebase looks good to me. Our process is to get two people to approve before committing, so as soon as somebody else takes a look and approves, we can get this in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general this is good, but very long. Can we squash some commits and next time can you submit smaller PRs?
@@ -1,12 +1,12 @@ | |||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |||
Changelog for package costmap_2d | |||
Changelog for package nav2_costmap_2d |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a global search and replace went too far here, I think these changes in the CHANGELOG.rst should be backed out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As this is a new package, I cleared the change log and noted the direct port from costmap_2d with the exact version number and date
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to me. Thanks!
@@ -0,0 +1,5 @@ | |||
<launch> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this file be here? It's a ROS style launch file, I think it would need to be replaced for ROS2 with a python launch file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So these have been floating around in this repo as of today. I agree that they would not work, but I dont think we should remove them unless we either make a ticket to bring back this same functionality or remove the tests outright.
I think given the scope of this PR already is large, I would just leave it and make a separate ticket after this is merged to enable unit testing of this in ROS2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this ticket actually already exists #121
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -0,0 +1,14 @@ | |||
<launch> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as above - not sure this test should be added unless it's going to be made to work in ROS2.
Yes, this is very large. It wasn't my intention when I started to cover so many things. Will break out in future. Feel free to squash commits as you see fit. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm OK with address some remaining issues like header macro guards and linting in a separate PR. I'd like to get these changes in.
<description> | ||
ROS2 controller (DWB) metapackage | ||
</description> | ||
<maintainer email="oregon.robotics.team@intel.com">Oregon Robotics Team</maintainer> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's remove any references to this ficticious e-mail address and use specific addresses. For this one, we can use Carl's info instead (along with steve's).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be in next PR
@@ -28,13 +28,13 @@ | |||
* | |||
* author: Dave Hershberger | |||
*/ | |||
#ifndef COSTMAP_2D_ARRAY_PARSER_H | |||
#define COSTMAP_2D_ARRAY_PARSER_H | |||
#ifndef nav2_costmap_2d_ARRAY_PARSER_H |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a global search and replace issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be in next PR
{ | ||
static const unsigned char NO_INFORMATION = 255; | ||
static const unsigned char LETHAL_OBSTACLE = 254; | ||
static const unsigned char INSCRIBED_INFLATED_OBSTACLE = 253; | ||
static const unsigned char FREE_SPACE = 0; | ||
} | ||
#endif // COSTMAP_2D_COST_VALUES_H_ | ||
#endif // nav2_costmap_2d_COST_VALUES_H_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Global search and replace issue.
@@ -35,16 +35,16 @@ | |||
* Author: Eitan Marder-Eppstein | |||
* David V. Lu!! | |||
*********************************************************************/ | |||
#ifndef COSTMAP_2D_COSTMAP_2D_PUBLISHER_H_ | |||
#define COSTMAP_2D_COSTMAP_2D_PUBLISHER_H_ | |||
#ifndef nav2_costmap_2d_nav2_costmap_2d_PUBLISHER_H_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can have a separate PR to clean up header guards and address any linting issues.
Integrating the work. We can deal with any remaining issues afterwards. |
* change trees * modify pickup and execute goal bt, add check goal action type BT condition Node * draft * draft * create action server BT clients * draft * draft * draft * draft * add set lidar field action * add set lidar field action * add set lidar field action * add set lift level to BT * draft * add setusedepthcameras into BTs * draft * Added driving direction input port for adjust_pallet_goal action server (ros-navigation#107) * Added driving direction input port for adjust_pallet_goal action server * rm wrong inputs * Add bin_id as an input to the AdjustPalletGoal Action Server * modify a bit * modify a bit * modify a bit Co-authored-by: Andrii Maistruk <andriy.maistruk@logivations.com> Co-authored-by: Andrii Maistruk <71632363+andriimaistruk@users.noreply.github.com> * add setlidarfield action * add setusedepthcameras action * add setusedepthcameras action * add preload libs * add agvclosetopallet action msg * make it run a bit * make it run a bit * fix bool message processing * pallet id value range made bigger * change agv action type * fix pickup entry * draft * draft * looks important * enter driving direction for narrow pre approach * add follow path goal visualization in rviz * fix remapping names * add get_arm_position action server * add get_arm_position action server * add get_arm_position action server * store starting_pose * added action server to get amr position to blackboard * add pallet putdown master BT * fail if pickup failed eq (when entering pallet lidar at field 2 was not triggered) * include pallet putdown master BT * fix typo * Add nav2_behavior_tree::BtActionServer (ros-navigation#2010) * Add nav2_behavior_tree::BtActionServer Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com> * Fix cpplint errors Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com> * Remove unnecessary statements in BtActionServer Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com> * Make nav2_behavior_tree::BtActionServer a composable object * Add comments * Add on preempt callback, fix naming issues, and move tf to bt navigator * Add separate implementation header for BtActionServer * Fix cpplint error * Pass plugin library names as argument to BtActionServer * Remove action server getter and update onPreempt to not load BT * Fix unnecessary include * Fix function names Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com> * Fix typo (cherry picked from commit 6171087) * subtree commented and left for debugging purposes * subtree commented and left for debugging purposes * two level hierarchy related changes * two level hierarchy related changes * two level hierarchy related changes * making it work * making it work * wait master BT * add stdout logs * add execute goal higher bt navigator * redo bt navigator according to cherry for bt_action_server * add new package depend * making it launch * remove comment * fix blackboard variable name * fix blackboard variable name * fix blackboard variable name * fix convertfromstring to path type warning * add approach goal * changes requested * changes requested Co-authored-by: rdeniza <61455514+rdeniza@users.noreply.github.com> Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com> Co-authored-by: andriimaistruk <andriimaistruk>
* moved over * moving all messages into an internal msgs metapackage grouping * moving all the messages into a homologated package * making necessary changes for the msgs package homologation * adding metapackage * adding myself as a maintainer * build script and doc updates for package in workspace * dealing with merge issues * remove author fields * moving around * merge conflict v3 * remove costmap 2d from utils * killing src dir * remove costmap 2d clone ros-navigation#3 * remove extraneous file * kill dwa for some reason * dwb rectification * removing oregon author -> maintainer * controller -> nav2_controller * adding new msgs to new things * tags * bringup pkg * compiling with task status mode * getting the task status to compile for dwa * adding costmap2d into nav2 naming nominclature * adding controller metapackage * recursive definitions -- bringup cannot be inside of the metapackage * kill bad line * hopefully actual last git merge error... * changelog resolve
Addressing #78 and #35 and #135
navigation2_ws
workspace. initial_ros_setup and build_all scripts updated with docsnav_msgs
anyhow)Notes for future work based on what I looked into:
nav_msgs
counterpart. Is there a reason for this? ThePath
message is onlygeometry_msgs/Pose
and notgeometry_msgs/PoseStamped
like innav_msgs
. That Stamp is really important for those of us that create custom planner/controllers.download_navstack()
hard-codes the ros-planning repo, in another PR I could change this to be a flag to use a fork instead - which would be useful for those of us without push permissions without having to add a remote.