-
Notifications
You must be signed in to change notification settings - Fork 254
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
Create packagegroups or images based on REP 2001 #1068
Comments
REP 2005 (https://ros.org/reps/rep-2005.html) may also provide information useful for creating packagegroups. |
Look at Space ROS packages as a source of inspiration: https://github.com/space-ros/space-ros/blob/main/spaceros-pkgs.txt |
@robwoolley Do you mean ros image can be created as package groups defined in REP not only ros-core-image and ros-image-world? |
@bchoineubility Yes, that was my intent. The packagegroups are really just logical lists of packages that you wish to include in your image recipe. The best example of this is turtlebot3-core. There is an image recipe, ros-image-turtlebot3-core.bb, that is really simple:
It just includes ros-image-core and then adds packagegroup-ros-turtlebot3-core to the image. The core part of which is
These packagegroups can overlap if needed. So we could create a packagegroup for Space ROS called packagegroup-ros-space.bb that just had a list of the packages mentioned at the URL above. eg.
Then to add them to your image you could just put this in your conf/local.conf:
or to build them all just do:
|
@robwoolley That's good idea ! thanks for good explaination. |
@grsandeep85 suggested taking a look at the ros packagegroup used in Petalinux which includes some basic demos and examples: https://github.com/Xilinx/meta-petalinux/blob/rel-v2023.2/recipes-core/packagegroups/packagegroup-petalinux-ros.bb |
Note that poky provides busybox by default. The ros_setup.sh script and other scripts requires bash and coreutils. The default ros-image-core should include those packages by default. |
Should we also find/file an upstream bug against ROS for meta-ros users that do not want bash installed? When using |
PR: #1095 |
I did some quick testing. The problem seems to be specific to the "head -c 1" command that is in /etc/profile.d/ros/_local_setup_util.py There are 2 possible solutions:
I'm leaning towards:
What do you think? |
Great! I like the idea of having a minimal option. I can try to give this a stab first. |
For the Specifically, here: |
Hi Rob, I discussed with upstream |
Hi I have a question for colcon issue, Does it mean yocto will support colcon generator as well ninja in the building ros package? BR, |
Hi Mark, An intern of mine did have colcon running on the Yocto target to build packages a few years ago (see https://github.com/Wind-River/meta-robot/tree/master/recipes-build/colcon ). If you have an interest in building packages with colcon on the target or with an SDK, it would be helpful if you could file a new issue with details on what it is you are interested in doing. Especially including any sample commands or packages that we could use to verify that it was working. Regards, |
Hi Rob, Thanks for reply. by the way, if yocto will support colcon generator, cmake.bbclass would be modified and support "Unix Makefiles" and "Ninja" now. I don't try to add "Colcon" to cmake.bbclass and build ros package with colcon yet because I am not sure it will be simple trial. Can you share your trial for it if you had tried it? BR, |
Hi Mark, I was talking about running colcon outside of bitbake. I don't have a trial to share. May I ask that we have this discussion in a new issue? I don't think it is related to this particular issue. Regards, |
OK, I misunderstood it. I will create new issue for it someday. BR, |
Quick update: Making packagegroups may be unnecessary because ROS describes meta-packages for each "variant". See the variants directory under generated-recipes for details: These build successfully:
They would make good build targets for CI/CD. These variants don't yet build:
You can test these variants today by just doing: bitbake |
The ROS REP2001 describes variants of ROS 2: https://ros.org/reps/rep-2001.html
The variants recommend the packages that should be included for different types of installations. This appears to map to the packagegroups and image recipes in OpenEmbedded. We should investigate creating recipes that represent the variants to make it easier to create images.
The text was updated successfully, but these errors were encountered: