Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
dba3da2
Added worlds and models for autopark migration
fernanditicus Sep 24, 2025
9c2e759
Added Launchers and worlds to universe database
fernanditicus Sep 26, 2025
c50b4cd
Merge branch 'humble-devel' into autopark_harmonic
fernanditicus Sep 26, 2025
41d0dde
Update CMakeLists.txt
fernanditicus Oct 8, 2025
468cb9d
Changing universes.sql of autoparking
aleon2020 Oct 10, 2025
2529463
Fixing bugs
aleon2020 Oct 10, 2025
5f45e2a
Adding spawn files and rewriting launchers
aleon2020 Oct 14, 2025
01f2a38
Fixing bugs
aleon2020 Oct 14, 2025
11df30e
Adding launch folder to CMakeLists
aleon2020 Oct 16, 2025
b9f4b3c
Modifying universes.sql and fixing topic error
aleon2020 Oct 20, 2025
07e92af
Deleting comments
aleon2020 Oct 20, 2025
2a2d135
Changing model.dae
aleon2020 Oct 21, 2025
61f602f
Returning to original opel model.dae
aleon2020 Oct 21, 2025
3ded847
Changing .dae for .obj
aleon2020 Oct 22, 2025
439237b
Changing orientation
aleon2020 Oct 22, 2025
80a3141
Rotating opel cars
aleon2020 Oct 22, 2025
6ed9025
Fixing bugs
aleon2020 Oct 22, 2025
db38128
Rotating all opel cars
aleon2020 Oct 22, 2025
986dd75
Rotating battery and sideways opel cars
aleon2020 Oct 22, 2025
a039be9
Fixing waymo position
aleon2020 Oct 22, 2025
a802b77
Changing topics in YAML file
aleon2020 Oct 22, 2025
44ba733
Changing model.sdf
aleon2020 Oct 22, 2025
1e46279
Changing waymo for prius car
aleon2020 Oct 24, 2025
21e51ae
Changing topics and rotating car
aleon2020 Oct 24, 2025
d1d369c
Rotating car orientation (again)
aleon2020 Oct 24, 2025
7895c6e
Renaming topics
aleon2020 Oct 27, 2025
2c9ce82
Changing topics again
aleon2020 Oct 27, 2025
7a788f8
Deleting duplicated model
aleon2020 Oct 27, 2025
6a67a8c
Changing frame_id name
aleon2020 Oct 27, 2025
15b4fa1
Migrating 3 lasers
aleon2020 Oct 28, 2025
b1f214f
Changing ray to gpu_lidar
aleon2020 Oct 28, 2025
6023035
Fix autopark
javizqh Oct 28, 2025
eafc7cb
Add missing stuff
javizqh Oct 28, 2025
61156d5
Fix order
javizqh Oct 28, 2025
7ffecf3
Changing robot position
aleon2020 Oct 31, 2025
a86365a
Changing car position
aleon2020 Oct 31, 2025
39d887f
Changin car position again
aleon2020 Oct 31, 2025
2f366d8
Correcting car rotation
aleon2020 Oct 31, 2025
befbad1
Adding relative poses
aleon2020 Nov 3, 2025
357205e
Changing frames
aleon2020 Nov 3, 2025
07bea23
Testing old world for laser values
aleon2020 Nov 6, 2025
d84a107
Using obj files in opel meshes
aleon2020 Nov 6, 2025
3a2b2fb
Changing new road
aleon2020 Nov 6, 2025
8d3d322
Changing car position
aleon2020 Nov 6, 2025
4860a3c
Elevating car 1 meter above
aleon2020 Nov 6, 2025
ea8f0cc
Fix world
javizqh Nov 6, 2025
f604df3
Reorganizing opel cars
aleon2020 Nov 6, 2025
52ae563
Fixing bugs
aleon2020 Nov 6, 2025
93f3b8b
Changing car positions in other worlds
aleon2020 Nov 6, 2025
eceb03c
Reubicating lamp posts
aleon2020 Nov 6, 2025
9ddc728
Reubicating lamp posts
aleon2020 Nov 6, 2025
a3518d3
Add base files
javizqh Nov 7, 2025
287f3bd
Add params
javizqh Nov 7, 2025
c189ec1
Reduce lidar range
javizqh Nov 7, 2025
9172924
New meshes
javizqh Nov 7, 2025
52f28dc
Fix topic and model
javizqh Nov 7, 2025
c72f455
Fix typo
javizqh Nov 7, 2025
91dd5ad
Add vis_config
javizqh Nov 7, 2025
94858dc
Add pc2
javizqh Nov 7, 2025
f9fd0a6
Update pc2
javizqh Nov 7, 2025
3006423
Merge pull request #605 from JdeRobot/lidar_autopark
javizqh Nov 11, 2025
3de9036
Remove dup resources
javizqh Nov 11, 2025
e902b40
Re add old universes
javizqh Nov 11, 2025
0fc51fa
Merge branch 'humble-devel' into autopark_harmonic
javizqh Nov 11, 2025
a712859
Add visualization
javizqh Nov 11, 2025
df66d6b
More useless files
javizqh Nov 11, 2025
9632687
Update camera pose
javizqh Nov 11, 2025
6126ce7
Fix world names
javizqh Nov 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CustomRobots/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,10 @@ install(
autoparking/launch
autoparking/models
autoparking/worlds
autopark_harmonic/worlds
# AUTOPARK_HARMONIC
autopark_harmonic/models
autopark_harmonic/params
autopark_harmonic/worlds
# DRONE_ASSETS
drone_assets/models
drone_assets/worlds
Expand Down
48 changes: 48 additions & 0 deletions CustomRobots/autopark_harmonic/params/waymo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# gz topic published by DiffDrive plugin
- ros_topic_name: "odom"
gz_topic_name: "/waymo/odom"
ros_type_name: "nav_msgs/msg/Odometry"
gz_type_name: "gz.msgs.Odometry"
direction: GZ_TO_ROS

# gz topic subscribed to by DiffDrive plugin
- ros_topic_name: "cmd_vel"
gz_topic_name: "/waymo/cmd_vel"
ros_type_name: "geometry_msgs/msg/Twist"
gz_type_name: "gz.msgs.Twist"
direction: ROS_TO_GZ

# gz topic published by Sensors plugin (LIDAR)
- ros_topic_name: "/waymo/lidar"
gz_topic_name: "/waymo/lidar"
ros_type_name: "sensor_msgs/msg/LaserScan"
gz_type_name: "gz.msgs.LaserScan"
direction: GZ_TO_ROS

# gz topic published by Sensors plugin (LIDAR)
- ros_topic_name: "/waymo/ray"
gz_topic_name: "/waymo/ray"
ros_type_name: "sensor_msgs/msg/LaserScan"
gz_type_name: "gz.msgs.LaserScan"
direction: GZ_TO_ROS

# gz topic published by Sensors plugin (Camera)
- ros_topic_name: "/waymo/camera_right_side"
gz_topic_name: "/waymo/camera_right_side"
ros_type_name: "sensor_msgs/msg/CameraInfo"
gz_type_name: "gz.msgs.CameraInfo"
direction: GZ_TO_ROS

# gz topic published by Sensors plugin (Camera)
- ros_topic_name: "/waymo/camera_left_side"
gz_topic_name: "/waymo/camera_left_side"
ros_type_name: "sensor_msgs/msg/CameraInfo"
gz_type_name: "gz.msgs.CameraInfo"
direction: GZ_TO_ROS

# gz topic published by Sensors plugin (Camera)
- ros_topic_name: "/waymo/camera_rear"
gz_topic_name: "/waymo/camera_rear"
ros_type_name: "sensor_msgs/msg/CameraInfo"
gz_type_name: "gz.msgs.CameraInfo"
direction: GZ_TO_ROS
77 changes: 54 additions & 23 deletions Launchers/autopark_battery.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,57 +18,88 @@

def generate_launch_description():

# Rutas a directorios
package_dir = get_package_share_directory("custom_robots")
x = LaunchConfiguration("x")
y = LaunchConfiguration("y")
z = LaunchConfiguration("z")
roll = LaunchConfiguration("R")
pitch = LaunchConfiguration("P")
yaw = LaunchConfiguration("Y")

package_dir = get_package_share_directory("custom_robots")
ros_gz_sim = get_package_share_directory("ros_gz_sim")

gazebo_models_path = os.path.join(package_dir, "models")

# Directorio de los launchers específicos del robot (para robot_state_publisher)
robot_launch_dir = "/opt/jderobot/Launchers/autopark_battery"
robot_launch_dir = "/opt/jderobot/Launchers/autopark_battery"

use_sim_time = LaunchConfiguration("use_sim_time", default="true")


# Nombre y ruta del mundo
world_file_name = "autopark_battery.world"
worlds_dir = "/opt/jderobot/Worlds"
x_pose = LaunchConfiguration("x_pose", default="1.0")
y_pose = LaunchConfiguration("y_pose", default="-1.5")
z_pose = LaunchConfiguration("z_pose", default="7.1")
world_file_name = "autopark_battery.world"
worlds_dir = "/opt/jderobot/Worlds"
world_path = os.path.join(worlds_dir, world_file_name)

# Iniciar el servidor de Gazebo/Ignition y cargar el mundo
gazebo_server = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(ros_gz_sim, "launch", "gz_sim.launch.py")
),
launch_arguments={
"gz_args": ["-r -s -v4 ", world_path],
"gz_args": ["-r -s -v4 ", world_path],
"on_exit_shutdown": "true",
}.items(),
)

# Lanzar el robot_state_publisher (Necesario para las transformaciones del robot)
robot_state_publisher_cmd = IncludeLaunchDescription(
declare_x_cmd = DeclareLaunchArgument("x", default_value="1.0")

declare_y_cmd = DeclareLaunchArgument("y", default_value="-1.5")

declare_z_cmd = DeclareLaunchArgument("z", default_value="7.1")

declare_roll_cmd = DeclareLaunchArgument("R", default_value="0.0")

declare_pitch_cmd = DeclareLaunchArgument("P", default_value="0.0")

declare_yaw_cmd = DeclareLaunchArgument("Y", default_value="1.57079")

# robot_state_publisher_cmd = IncludeLaunchDescription(
# PythonLaunchDescriptionSource(
# os.path.join(robot_launch_dir, "robot_state_publisher.launch.py")
# ),
# launch_arguments={"use_sim_time": use_sim_time}.items(),
# )

spawn_robot_cmd = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(robot_launch_dir, "robot_state_publisher.launch.py")
os.path.join(robot_launch_dir, "spawn_robot.launch.py")
),
launch_arguments={"use_sim_time": use_sim_time}.items(),
launch_arguments={"x_pose": x_pose, "y_pose": y_pose, "z_pose": z_pose}.items(),
)

world_entity_cmd = Node(
package="ros_gz_sim",
executable="create",
arguments=["-name", "world", "-file", world_path],
output="screen",
)

# Configuración de LaunchDescription
ld = LaunchDescription()

# Variables de entorno
ld.add_action(SetEnvironmentVariable("GZ_SIM_RESOURCE_PATH", gazebo_models_path))
set_env_vars_resources = AppendEnvironmentVariable(
"GZ_SIM_RESOURCE_PATH", os.path.join(package_dir, "models")
)
ld.add_action(set_env_vars_resources)

# Servidor de simulación
ld.add_action(gazebo_server)


# Componentes del robot
ld.add_action(robot_state_publisher_cmd)
# ld.add_action(gazebo_client)
ld.add_action(declare_x_cmd)
ld.add_action(declare_y_cmd)
ld.add_action(declare_z_cmd)
ld.add_action(declare_roll_cmd)
ld.add_action(declare_pitch_cmd)
ld.add_action(declare_yaw_cmd)
ld.add_action(world_entity_cmd)
# ld.add_action(robot_state_publisher_cmd)
ld.add_action(spawn_robot_cmd)

return ld
107 changes: 107 additions & 0 deletions Launchers/autopark_battery/spawn_robot.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright 2019 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os

from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node


def generate_launch_description():
# Get the urdf file
model_folder = "waymo"
urdf_path = os.path.join(
get_package_share_directory("custom_robots"),
"models",
model_folder,
"model.sdf",
)

# Launch configuration variables specific to simulation
# x_pose = LaunchConfiguration('x_pose', default='1.0')
# y_pose = LaunchConfiguration('y_pose', default='-1.5')
# z_pose = LaunchConfiguration('z_pose', default='7.1')

# Declare the launch arguments
# declare_x_position_cmd = DeclareLaunchArgument(
# 'x_pose', default_value='1.0',
# description='Specify namespace of the robot')

# declare_y_position_cmd = DeclareLaunchArgument(
# 'y_pose', default_value='-1.5',
# description='Specify namespace of the robot')

# declare_z_position_cmd = DeclareLaunchArgument(
# 'z_pose', default_value='7.1',
# description='Specify namespace of the robot')

# start_gazebo_ros_spawner_cmd = Node(
# package='ros_gz_sim',
# executable='create',
# arguments=[
# '-name', 'waffle',
# '-file', urdf_path,
# '-x', x_pose,
# '-y', y_pose,
# '-z', z_pose
# ],
# output='screen',
# )

bridge_params = os.path.join(
get_package_share_directory("custom_robots"), "params", "waymo.yaml"
)

start_gazebo_ros_bridge_cmd = Node(
package="ros_gz_bridge",
executable="parameter_bridge",
arguments=[
"--ros-args",
"-p",
f"config_file:={bridge_params}",
],
output="screen",
)

# start_gazebo_ros_image_bridge_cmd = Node(
# package="ros_gz_image",
# executable="image_bridge",
# arguments=["/turtlebot3/camera/image_raw"],
# output="screen",
# )

# start_gazebo_ros_depth_bridge_cmd = Node(
# package="ros_gz_image",
# executable="image_bridge",
# arguments=["/turtlebot3/camera/depth"],
# output="screen",
# )

ld = LaunchDescription()

# Declare the launch options
# ld.add_action(declare_x_position_cmd)
# ld.add_action(declare_y_position_cmd)
# ld.add_action(declare_z_position_cmd)

# Add any conditioned actions
# ld.add_action(start_gazebo_ros_spawner_cmd)
ld.add_action(start_gazebo_ros_bridge_cmd)
# ld.add_action(start_gazebo_ros_image_bridge_cmd)
# ld.add_action(start_gazebo_ros_depth_bridge_cmd)

return ld
77 changes: 54 additions & 23 deletions Launchers/autopark_line.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,57 +18,88 @@

def generate_launch_description():

# Rutas a directorios
package_dir = get_package_share_directory("custom_robots")
x = LaunchConfiguration("x")
y = LaunchConfiguration("y")
z = LaunchConfiguration("z")
roll = LaunchConfiguration("R")
pitch = LaunchConfiguration("P")
yaw = LaunchConfiguration("Y")

package_dir = get_package_share_directory("custom_robots")
ros_gz_sim = get_package_share_directory("ros_gz_sim")

gazebo_models_path = os.path.join(package_dir, "models")

# Directorio de los launchers específicos del robot (para robot_state_publisher)
robot_launch_dir = "/opt/jderobot/Launchers/autopark_line"
robot_launch_dir = "/opt/jderobot/Launchers/autopark_line"

use_sim_time = LaunchConfiguration("use_sim_time", default="true")


# Nombre y ruta del mundo
world_file_name = "autopark_line.world"
worlds_dir = "/opt/jderobot/Worlds"
x_pose = LaunchConfiguration("x_pose", default="1.0")
y_pose = LaunchConfiguration("y_pose", default="-1.5")
z_pose = LaunchConfiguration("z_pose", default="7.1")
world_file_name = "autopark_line.world"
worlds_dir = "/opt/jderobot/Worlds"
world_path = os.path.join(worlds_dir, world_file_name)

# Iniciar el servidor de Gazebo/Ignition y cargar el mundo
gazebo_server = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(ros_gz_sim, "launch", "gz_sim.launch.py")
),
launch_arguments={
"gz_args": ["-r -s -v4 ", world_path],
"gz_args": ["-r -s -v4 ", world_path],
"on_exit_shutdown": "true",
}.items(),
)

# Lanzar el robot_state_publisher (Necesario para las transformaciones del robot)
robot_state_publisher_cmd = IncludeLaunchDescription(
declare_x_cmd = DeclareLaunchArgument("x", default_value="1.0")

declare_y_cmd = DeclareLaunchArgument("y", default_value="-1.5")

declare_z_cmd = DeclareLaunchArgument("z", default_value="7.1")

declare_roll_cmd = DeclareLaunchArgument("R", default_value="0.0")

declare_pitch_cmd = DeclareLaunchArgument("P", default_value="0.0")

declare_yaw_cmd = DeclareLaunchArgument("Y", default_value="1.57079")

# robot_state_publisher_cmd = IncludeLaunchDescription(
# PythonLaunchDescriptionSource(
# os.path.join(robot_launch_dir, "robot_state_publisher.launch.py")
# ),
# launch_arguments={"use_sim_time": use_sim_time}.items(),
# )

spawn_robot_cmd = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(robot_launch_dir, "robot_state_publisher.launch.py")
os.path.join(robot_launch_dir, "spawn_robot.launch.py")
),
launch_arguments={"use_sim_time": use_sim_time}.items(),
launch_arguments={"x_pose": x_pose, "y_pose": y_pose, "z_pose": z_pose}.items(),
)

world_entity_cmd = Node(
package="ros_gz_sim",
executable="create",
arguments=["-name", "world", "-file", world_path],
output="screen",
)

# Configuración de LaunchDescription
ld = LaunchDescription()

# Variables de entorno
ld.add_action(SetEnvironmentVariable("GZ_SIM_RESOURCE_PATH", gazebo_models_path))
set_env_vars_resources = AppendEnvironmentVariable(
"GZ_SIM_RESOURCE_PATH", os.path.join(package_dir, "models")
)
ld.add_action(set_env_vars_resources)

# Servidor de simulación
ld.add_action(gazebo_server)


# Componentes del robot
ld.add_action(robot_state_publisher_cmd)
# ld.add_action(gazebo_client)
ld.add_action(declare_x_cmd)
ld.add_action(declare_y_cmd)
ld.add_action(declare_z_cmd)
ld.add_action(declare_roll_cmd)
ld.add_action(declare_pitch_cmd)
ld.add_action(declare_yaw_cmd)
ld.add_action(world_entity_cmd)
# ld.add_action(robot_state_publisher_cmd)
ld.add_action(spawn_robot_cmd)

return ld
Loading
Loading