-
Notifications
You must be signed in to change notification settings - Fork 4
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
Pipeline Implementation #43
Comments
Reusing a previous workspace would make management more convenient. However, some aspects might not be as ideal. For example, if we want to simulate Husky and ZED in Gazebo, our URDF file must include both. However, the files for these two will be placed in different install folders within their respective workspaces/containers, leading to import failures and other issues. You can take a look at here for more details. Unless we restructure the entire workspace to use packages for separation, I don't think this will be a good approach. |
Thanks for your comment! I understand that some aspects may not be ideal, but the current copy-and-paste approach would lead to maintenance difficulties in the long run. (There may be a lot of duplicate code, such as five near-identical How about we only copy necessary files and use workspace overlay/underlay? Something like:
and we'll source the If this is possible, we can minimize code duplication (by reusing underlay packages) and allow code modifications (by overriding the underlay packages through overlay). So the gazebo simulation will run in the container of We can configure this by using a docker compose file to extend the compose configs of Sidenote: I think restructuring the current workspaces into packages may not be feasible. |
I can roughly understand your idea, and I like it! Conceptually, I think it's quite similar to how the However, when dealing with But first, I want to test using |
Yes, I agree with you! Please try it out in If this code structure seems to work, we can continue working on As for the pipelines including ZED or RealSense, we may wait until the workspaces for them are fixed and merged. It's worth noting that we should also allow |
It just occurred to me that it may also be possible for This can be addressed after the |
Just came across the multi-machine support feature in launch files, which may be useful for running pipelines across machines. Although it is supported in ROS 1, it isn't supported in ROS 2 yet. References: Pipelines may require launching multiple containers across workspaces at once (potentially across machines), and would prefer if a single launch file can launch nodes across containers (and machines). Some random thoughts:
|
I'm thinking about the best approach for implementing pipelines based on existing workspaces (such as #27 and #28).
The primary goal is to ensure ease of use, while maintaining minimal code duplication.
For example, the VLP-16 to Husky pipeline could be simplified by using symbolic links and gitignore for
vlp_ws
andhusky_ws
, which will 100% reuse the code of those 2 workspaces without duplication. I don't think this is the best way though...I’m currently thinking of introducing only the required code and configs for
vlp_to_husky_ws
, where:vlp_to_husky_ws/src/dummy_controller/dummy_controller/publisher.py
publishes the commands.vlp_to_husky_ws/docker/compose.yaml
extends the compose files fromvlp_ws
andhusky_ws
.This way, we can treat
vlp_to_husky_ws
just like a normal workspace (that depends on some workspaces) with minimal code duplication. Moreover, we can easily integrate existing workspaces such asgazebo_world_ws
orisaac_sim_ws
in the future.I'm curious about @YuZhong-Chen's and @Assume-Zhan's thoughts on this. I look forward to your comments when you have time.
The text was updated successfully, but these errors were encountered: