Alright, we can now pass that initial launch process, but Gazebo is not happy with one of its provided paths:
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance)> ros2 launch simulator sim.launch.py -d
[DEBUG] [launch.launch_context]: emitting event synchronously: 'launch.events.IncludeLaunchDescription'
[INFO] [launch]: All log files can be found below /home/barrett/.ros/log/2025-05-03-17-56-44-913934-farts-441464
[INFO] [launch]: Default logging verbosity is set to DEBUG
[DEBUG] [launch]: processing event: '<launch.events.include_launch_description.IncludeLaunchDescription object at 0x7ff1e6059550>'
[DEBUG] [launch]: processing event: '<launch.events.include_launch_description.IncludeLaunchDescription object at 0x7ff1e6059550>' ✓ '<launch.event_handlers.on_include_launch_description.OnIncludeLaunchDescription object at 0x7ff1e6058d70>'
python3: /builddir/build/BUILD/ros-jazzy-rcl-interfaces-2.0.2/.obj-x86_64-redhat-linux-gnu/rosidl_generator_py/rcl_interfaces/msg/_parameter_event_s.c:53: rcl_interfaces__msg__parameter_event__convert_from_py: Assertion `PyUnicode_IS_READY(name_attr)' failed.
fish: Job 1, 'ros2 launch simulator sim.launc…' terminated by signal SIGABRT (Abort)
Trying to launch Gazebo in particular…
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance)> gz sim
[Err] [Gui.cc:100] Failed to copy installed config [/builddir/build/BUILD/ros2-jazzy-gz_sim_vendor-0.0.8-build/BUILDROOT/usr/lib64/ros2-jazzy/opt/gz_sim_vendor/share/gz/gz-sim8/gui/gui.config] to default config [/home/barrett/.gz/sim/8/gui.config].
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string: construction from null is not valid
Stack trace (most recent call last):
#31 Object "/lib64/libc.so.6", at 0x7f0ae5e8230a, in __libc_start_main
#30 Object "/lib64/libc.so.6", at 0x7f0ae5e82247, in
#29 Object "gz sim gui", at 0x55e751afd194, in
#28 Object "/lib64/libruby.so.3.3", at 0x7f0ae62939f2, in ruby_run_node
#27 Object "/lib64/libruby.so.3.3", at 0x7f0ae6292fb9, in
#26 Object "/lib64/libruby.so.3.3", at 0x7f0ae6439f67, in
#25 Object "/lib64/libruby.so.3.3", at 0x7f0ae64238cb, in
#24 Object "/lib64/libruby.so.3.3", at 0x7f0ae64185f5, in
#23 Object "/lib64/libruby.so.3.3", at 0x7f0ae635cb39, in
#22 Object "/lib64/libruby.so.3.3", at 0x7f0ae628c9f6, in rb_protect
#21 Object "/lib64/libruby.so.3.3", at 0x7f0ae6427091, in rb_yield
#20 Object "/lib64/libruby.so.3.3", at 0x7f0ae6439d3c, in
#19 Object "/lib64/libruby.so.3.3", at 0x7f0ae64238cb, in
#18 Object "/lib64/libruby.so.3.3", at 0x7f0ae64185f5, in
#17 Object "/usr/lib64/ruby/fiddle.so", at 0x7f0acab17173, in
#16 Object "/lib64/libruby.so.3.3", at 0x7f0ae63e8a10, in rb_nogvl
#15 Object "/usr/lib64/ruby/fiddle.so", at 0x7f0acab135ab, in
#14 Object "/lib64/libffi.so.8", at 0x7f0acaa2664d, in ffi_call
#13 Object "/lib64/libffi.so.8", at 0x7f0acaa2374c, in
#12 Object "/lib64/libffi.so.8", at 0x7f0acaa28055, in
#11 Object "/usr/lib64/ros2-jazzy/opt/gz_sim_vendor/lib64/libgz-sim8-gz.so.8.9.0", at 0x7f0aca97a010, in runGui
#10 Object "/usr/lib64/ros2-jazzy/opt/gz_sim_vendor/lib64/libgz-sim8-gui.so.8", at 0x7f0ac9a38f3a, in gz::sim::v8::gui::runGui(int&, char**, char const*, char const*, int, char const*, char const*)
#9 Object "/usr/lib64/ros2-jazzy/opt/gz_sim_vendor/lib64/libgz-sim8-gui.so.8", at 0x7f0ac9a362a1, in gz::sim::v8::gui::createGui(int&, char**, char const*, char const*, bool, char const*, int, char const*, char const*)
#8 Object "/usr/lib64/ros2-jazzy/opt/gz_sim_vendor/lib64/libgz-sim8-gui.so.8", at 0x7f0ac9a059f1, in
#7 Object "/lib64/libstdc++.so.6", at 0x7f0aca60c631, in std::__throw_logic_error(char const*)
#6 Object "/lib64/libstdc++.so.6", at 0x7f0aca61beb7, in __cxa_throw
#5 Object "/lib64/libstdc++.so.6", at 0x7f0aca609950, in std::terminate()
#4 Object "/lib64/libstdc++.so.6", at 0x7f0aca61bc2b, in
#3 Object "/lib64/libstdc++.so.6", at 0x7f0aca609da8, in
#2 Object "/lib64/libc.so.6", at 0x7f0ae5e80941, in abort
#1 Object "/lib64/libc.so.6", at 0x7f0ae5e98f9d, in gsignal
#0 Object "/lib64/libc.so.6", at 0x7f0ae5ef1f54, in
Aborted (Signal sent by tkill() 464053 1000)
My guess is that /builddir/build/BUILD/ros2-jazzy-gz_sim_vendor-0.0.8-build/BUILDROOT/
is intended to be outside a variable, but was accidentally exported.
If you’ve got any leads, I’m happy to take a look myself!
in Pythonland…
It also appears that different versions of Python are causing problems internally:
barrett@farts ~> ls /usr/lib64/ros2-jazzy/lib | grep python3
python3.11
python3.13
There’s an error in one of my packages during runtime, and another error at comptime with another Python version. I’m not sure why, but providing it with 3.10
in .python-version
fixes those problems with our custom interfaces:
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance)> just build
Building the ROS 2 workspace...
colcon build --symlink-install
Starting >>> aruco_node
# ...
Finished <<< custom_interfaces [38.9s]
Summary: 10 packages finished [39.5s]
Build complete!
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance)> cat .python-version
3.10
It fails with another setting, or when using the system Python:
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance)> just build
Building the ROS 2 workspace...
colcon build --symlink-install
Starting >>> aruco_node
# ...
Finished <<< simulator [10.9s]
--- stderr: custom_interfaces
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
Could NOT find Python3 (missing: Python3_INCLUDE_DIRS Python3_LIBRARIES
Development NumPy Development.Module Development.Embed) (found version
"3.11.12")
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindPython/Support.cmake:4001 (find_package_handle_standard_args)
/usr/share/cmake/Modules/FindPython3.cmake:602 (include)
/usr/lib64/ros2-jazzy/share/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake:22 (find_package)
/usr/lib64/ros2-jazzy/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:48 (include)
/usr/lib64/ros2-jazzy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
CMakeLists.txt:28 (rosidl_generate_interfaces)
However, like I said, one of my packages fails to run after this build completes…
(autonomous) barrett@farts ~/D/p/R/auto_ros2 (feat/object_avoidance) [1]> ros2 run simulator simulator
Traceback (most recent call last):
File "/home/barrett/Documents/projects/Rover/auto_ros2/install/simulator/lib/simulator/simulator", line 5, in <module>
from simulator.main import main
File "/home/barrett/Documents/projects/Rover/auto_ros2/install/simulator/lib/python3.10/site-packages/simulator/main.py", line 5, in <module>
import rclpy
File "/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/rclpy/__init__.py", line 49, in <module>
from rclpy.signals import install_signal_handlers
File "/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/rclpy/signals.py", line 15, in <module>
from rclpy.exceptions import InvalidHandle
File "/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/rclpy/exceptions.py", line 16, in <module>
from rclpy.impl.implementation_singleton import rclpy_implementation as _rclpy
File "/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/rclpy/impl/implementation_singleton.py", line 32, in <module>
rclpy_implementation = import_c_library('._rclpy_pybind11', package)
File "/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/rpyutils/import_c_library.py", line 39, in import_c_library
return importlib.import_module(name, package=package)
File "/usr/lib64/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'
The C extension '/usr/lib64/ros2-jazzy/lib/python3.13/site-packages/_rclpy_pybind11.cpython-310-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://docs.ros.org/en/jazzy/How-To-Guides/Installation-Troubleshooting.html#import-failing-without-library-present-on-the-system' for possible solutions
[ros2run]: Process exited with failure 1
If you know how to solve these problems, can you please help me out? My apologies for throwing all these logs on here, but I hope they help others at some point..!