Can't install gazebo ros pkgs

system details
op: Ubuntu 24.04.2 LTS
ros2 destro :jazzy jalisco
gazebo version : harmonic

I am trying to build a 4WD robot using ros2 and gazebo to simulate it ,I’ve been following this tutorial on YouTube https://www.youtube.com/watch?v=9Cl6utP-xig and I’ve created a package to launch gazebo and control the robot but I get this error when launching the launch file
ros2 launch project_bot gazebo.launch.py
[INFO] [launch]: All log files can be found below /home/asti/.ros/log/2025-04-22-13-26-21-449342-asti-HP-290-G4-Microtower-PC-6294
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught multiple exceptions when trying to load file of format [py]:

  • PackageNotFoundError: “package ‘gazebo_ros’ not found, searching: [‘/opt/ros/jazzy’, ‘/home/asti/project files/project_ws/install/vision_opencv’, ‘/home/asti/project files/project_ws/install/project_bot’, ‘/home/asti/project files/project_ws/install/opencv_tests’, ‘/home/asti/project files/project_ws/install/image_geometry’, ‘/home/asti/project files/project_ws/install/gazebo_msgs’, ‘/home/asti/project files/project_ws/install/gazebo_dev’, ‘/home/asti/project files/project_ws/install/cv_bridge’]”

I’ve noticed that the gazebo ros pkg is missing and tried to install it so i did
sudo apt install ros-jazzy-gazebo-ros-pkgs
and I got this massage E: Package ‘ros-jazzy-gazebo-ros-pkgs’ has no installation candidate
then I tried to install it from source by following this page Gazebo : Tutorial : Installing gazebo_ros_pkgs (ROS 2)
also didn’t work
I’m stuck in this for two weeks now and I need to finish this project by the end of May for a graduation project so if any one have some knowledge ,any help will be appreciated
my launch file

<?xml version="1.0 "?>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
</include>

<!--load the xacro file  -->

        <param name="robot_description"
        command="$(find xacro)/xacro '$(find project_bot/urdf/robot.urdf.xacro'"/>

        <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/>
        <!--spawn the robot-->
        <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
        args="-urdf -model robot_model -param robot_description"/>
<?xml version="1.0 "?>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
</include>


<!--load the xacro file  -->


        <param name="robot_description"
        command="$(find xacro)/xacro '$(find project_bot/urdf/robot.urdf.xacro'"/>


        <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/>
        <!--spawn the robot-->
        <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
        args="-urdf -model robot_model -param robot_description"/>

my cmake list file
cmake_minimum_required(VERSION 3.8)
project(project_bot)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES “Clang”)
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find dependencies

find_package(ament_cmake REQUIRED)

uncomment the following section in order to fill in

further dependencies manually.

find_package( REQUIRED)

install(
DIRECTORY launch urdf
DESTINATION share/${PROJECT_NAME}
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)

the following line skips the linter which checks for copyrights

comment the line when a copyright and license is added to all source files

set(ament_cmake_copyright_FOUND TRUE)

the following line skips cpplint (only works in a git repo)

comment the line when this package is in a git repo and when

a copyright and license is added to all source files

set(ament_cmake_cpplint_FOUND TRUE)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()

cmake_minimum_required(VERSION 3.8)
project(project_bot)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES “Clang”)
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find dependencies

find_package(ament_cmake REQUIRED)

uncomment the following section in order to fill in

further dependencies manually.

find_package( REQUIRED)

install(
DIRECTORY launch urdf
DESTINATION share/${PROJECT_NAME}
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)

the following line skips the linter which checks for copyrights

comment the line when a copyright and license is added to all source files

set(ament_cmake_copyright_FOUND TRUE)

the following line skips cpplint (only works in a git repo)

comment the line when this package is in a git repo and when

a copyright and license is added to all source files

set(ament_cmake_cpplint_FOUND TRUE)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()

my package.xml file

<?xml version="1.0"?> <?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?> project_bot 0.0.0 TODO: Package description abdo TODO: License declaration

<buildtool_depend>ament_cmake</buildtool_depend>

<test_depend>ament_lint_auto</test_depend>