Difference between launch and launch_ros
Possibly a silly question, but here goes: What is the difference between ros2/launch and ros2/launch_ros? When should one be used over the other?
They both have similar names, and (superficially) similar jobs, so I'm a little unclear which one I should be more heavily leaning on when writing ROS 2 launch files.
I'm going to wait for a more authoritative answer, but: the former is a generic library that implements the domain concepts and infrastructure to "launch" (ie: start) multiple processes in a uniform way with support for coordination and monitoring of all those tasks, while the latter is a library/tool that builds on-top of the former and adds ROS-specific domain concepts which makes it usable to start, coordinate and monitor multiple ROS nodes (which also happen to be mappable onto processes).