Closed danzimmerman closed 1 month ago
Rosdistro maintains lists of package to repo mappings
https://github.com/ros/rosdistro/blob/master/jazzy/distribution.yaml
Work in progress here.
rosdep keys --from-paths src --ignore-src -r -y | xargs | ../dz_rpi_config/scripts/vcsdeps.py
Uses the rosdistro YAML file above to create a VCS .repos
file from the piped-in rosdep keys.
Run the above in ~/ros2ws
and it generates a file that can be imported:
vcs import < ~/ros2ws/ws_deps.repos
~Needs a lookup for correct APT packages.~ Actually, not really, because once the ros dependencies are in the workspace, rosdep install
will work on the system packages.
This needs two passes, once to get the first-order deps for the ~/ros2ws
workspace, and then another in the ~/.local/opt/ros/jazzy_extras_ws
after cloning the first.
Once all the repos are cloned, then running rosdep install
works to install the system dependencies.
For ros2_canopen
the ros2_control
, ros2_controllers
and other dependencies took about 25m to build.
Look into https://wiki.ros.org/rosinstall_generator
This suggests it isn't currently usable in this way: https://github.com/ros-infrastructure/rosinstall_generator/issues/25
Sample output:
rosinstall_generator
OutputI'm going to call this closed for now. It's not clear how to use rosinstall_generator
and rosdep
to do this directly, and I have a working solution:
See here for context.
~Want to have something that dumps an
apt
command for installing non-ros deps (those withoutros-jazzy
)~ and then creates a list of all the ROS packages that need to be installed (those withros-jazzy
, but their underscored names fromrosdep keys
)EDIT: I removed the requirement to generate an
apt
install based on prototyping. The assumed use case here is a platform like Raspberry Pi OS where the ROS dependencies don't have binary install candidates but the non-ROS dependencies do.What I've found below is that once all the required ROS package sources are present in a workspace,
rosdep install --from-paths src --ignore-src -r -y
works fine to install all the non-ROS dependencies.