Comments (7)
This one is fully resolved by #107, isn't it? We can close now?
from navigation2.
@SteveMacenski - sorry for the late update on this one. I agree. I believe we could get rid of the top level 'src' folder and move all the sub-folders up to the top folder level. We also currently don't have a meta-package yet. We need one. I could work on a PR for these changes. @mjeronimo - do you have any issues with this request?
from navigation2.
For how things are generally organized, I think you could just move everything out of the src folder alongside the tools
and docs
directories for now and update the paths as needed.
I could do this tomorrow or on the plane to ROSCon the day after. I think it might be a good way for me to jump into the project and get actively involved.
from navigation2.
@SteveMacenski What's the benefit of removing the src directory from the hierarchy and pushing the contained directories up one level?
@mkhansen-intel Yes, I'd like to understand the issue better.
from navigation2.
@mjeronimo The src directory doesn't follow the metapackage conventions in any other ROS repository (a number of other ROS2 examples linked below), it is confusing and what ends up happening is grouping together of independent packages within a bunch of subdirectories. If you look at the existing navigation stack, all the packages are in the root directory so they're easy to access. At the end of the day, these packages are not related to each other and frequently for professional users we don't utilize a vast majority of them. The navigation stack doesn't ship as 1 project, but as a collection of projects that aren't denoted by localization
or mission_execution
.
Metapackages should have all of their packages available in the root of the repository. Catkin and Colcon will search for them inside of non-package directories but there's no precedent for putting them in a source directory. A repository should not itself be a workspace and when its places inside src, it seems like you're utilizing this repository as itself a workspace and not that this metapackage is inserted into an existing workspace (where then the path would be workspace/src/src/metapackage/mission_execution/actual_package
).
There are a number of situations where you want to have multiple projects in the same workspace that do not depend on each other to grab rosdeps. (i.e. I'm shipping my robot with a couple of subsystems in different packages/repositories that don't depend on each other in 1 container I'm building together).
Hope that makes sense. I could buy into an argument that the subdirectories mission_execution
localization
etc could go in the root of the repository if there were enough independent packages in a category to warrant it (3-4+).
tl;dr
- Confusing grouping and these packages should be regarded as independent of each other
- src implies this repository is being used as a workspace, which shouldn't be happening
- There is plenty of precedence for metapackages and organization and this does not follow
https://github.com/ros-perception/vision_opencv/tree/ros2
https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2
https://github.com/ros2/common_interfaces/tree/bouncy
https://github.com/ros2/turtlebot2_demo/tree/bouncy
from navigation2.
@SteveMacenski Thanks for the explanation and the references. Let's proceed and organize as you suggest.
from navigation2.
Ok, will PR this with updated docs and build scripts.
Feel free to assign ticket to me
from navigation2.
Related Issues (20)
- Controller server + local costmap setup issues HOT 6
- Extensibility of MPPI with external custom critic(s) HOT 3
- AMCL localization transform stability issues HOT 4
- [Feature Request] Temporary Static Obstacles Detection and Map Update Using RL HOT 1
- Error when switching from DWB to MPPI Controller Server , Inflation Layer not found and segmentation fault HOT 6
- AMCL core dumps due to a race condition when used with the map server. HOT 8
- [nav2_smoother] nullptr bug during `smooth_plan()` HOT 3
- Confusion about MPPI Path Angle Critic HOT 2
- How to use planner selector and controller selector actions? HOT 2
- Path Planning with nav2_smac_planner/SmacPlannerHybrid Generates Wobbly Paths Instead of Straight Lines HOT 2
- [MPPI] Zero velocity used after Optimizer reset HOT 8
- [nav2_controller] nullPtr bug during `comupteControl()`
- In Simple Commander API, getRoute() is not yet implemented HOT 1
- Getting this error while navigation : Extrapolation Error looking up target frame: Lookup would require extrapolation into the past HOT 5
- Nav2 Fails on Second TurtleBot 4 HOT 1
- Collision Monitor in Nav2 Not Displaying Polygons Correctly or Following Robot HOT 4
- In the running of goToPose(), cancelTask() does not work HOT 4
- Docking is not available for ros humble. HOT 1
- Both Slack invite links may have expired HOT 1
- Revert Double Spin in #4558 once rclcpp #2589 fixed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from navigation2.