Skip to content
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

Kirkstone (l4t-r32.7.x) Flashed image ROS 2 underlay installation does not have packages listed in "IMAGE_INSTALL:append" (possible export issue to underlay) #1276

Open
dirksavage88 opened this issue Dec 30, 2024 · 3 comments

Comments

@dirksavage88
Copy link

Describe the bug
I'm still really new to yocto, and the meta-ros recipes look a bit different from what I have seen with generic yocto recipes. However in my meta layer with the image_install:append list, I have a ton of ROS 2 packages (e.g. python3 colcon, ament_cmake*, examples*, rosidl_*)

On the flashed image looks like only the python3 colcon, rpyutils sensor_msgs, std_msgs, examples, and a handful of other ros base packages get installed to "/opt/ros/humble" underlay, which is enough to run ros2 cli commands and colcon build, but not enough to create or build custom packages with dependencies on rosidl generators for example.

The underlay doesn't seem to have these packages groups specified in the image install append list:

 ament_cmake, acment_cmake_ros, ament_index, rclcpp, rosidl, rosidl_defaults, rcl, rcl_interfaces, test_interface_files, unique_identifier_msgs, rcutils, libyaml_vendor

To Reproduce
Layers:

layer                 path                                      priority
==========================================================================
meta                  /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta  5
meta-tegra            /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-tegra  5
contrib               /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-tegra/contrib  4
meta-oe               /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-oe  5
meta-python           /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-python  5
meta-networking       /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-networking  5
meta-filesystems      /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-filesystems  5
meta-virtualization   /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-virtualization  8
meta-tegra-community  /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-tegra-community  20
meta-tegra-support    /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-tegra-support  40
meta-demo-ci          /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-demo-ci  40
meta-tegrademo        /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-tegrademo  50
meta-ros2             /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-ros/meta-ros2  11
meta-ros2-humble      /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-ros/meta-ros2-humble  12
meta-ros-common       /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-ros/meta-ros-common  10
meta-dds              /home/papadrew/Downloads/l4t_build/tegra-demo-distro/layers/meta-dds  6
workspace             /home/papadrew/Downloads/l4t_build/tegra-demo-distro/build/workspace  99

Building for a jetson-xavier-nx-devkit-tx2-nx on ubuntu 24.04 native host

No bitbake errors seen, only the missing ros 2 underlay packages

Effectively I have to install the missing packages in an overlay as shown below, but somehow std_msgs and sensor_msgs can be traced to the underlay:

jetson-xavier-nx-devkit-tx2-nx:~/ros_ws$ ros2 pkg prefix rosidl_parser
/home/savagerobotstx2/ros_ws/install/rosidl_parser
jetson-xavier-nx-devkit-tx2-nx:~/ros_ws$ ros2 pkg prefix sensor_msgs  
/opt/ros/humble
jetson-xavier-nx-devkit-tx2-nx:~/ros_ws$ ros2 pkg prefix std_msgs   
/opt/ros/humble

Expected behavior
The image install appends should export ros packages to the underlay in "/opt/ros/humble/"

I'm attaching my image bitbake file for reference (with txt extension only for github attachment compatibility)
demo-image-ros2.txt

@dirksavage88
Copy link
Author

dirksavage88 commented Jan 1, 2025

yocto_cmake_missingros2
Looking in the ros underlay of the kirkstone image, I do not see cmake folders under any of the packages.

The example minimal pub/sub works out of the box, so everything built in the underlay works, but any attempt to build overlay packages fails.

@mark-bchoi
Copy link

Hi @dirksavage88

There are two distros if you include tegra-demo distro layer, one is "tegrademo" another is "ros2".

if you use tegra-demo distro, DISTRO would be set by "tegrademo" not "ros2". it would affect to build and install ros package correctly because all build configuration for ros2 is defined "ros2" distro.

So, I recommend you to exclude tegra-demo distro layer and you can add ros packages to local.conf in prompt.

BR,
Mark

@dirksavage88
Copy link
Author

@robwoolley I have to confirm, but I think this might be resolved by your recent fix to the PYTHONPATH in kirkstone and kirkstone-next

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants