diff --git a/src/elephant_robotics/agv_pro_bringup/launch/agv_pro_bringup.launch.py b/src/elephant_robotics/agv_pro_bringup/launch/agv_pro_bringup.launch.py
index 4ba335d..5c2e841 100644
--- a/src/elephant_robotics/agv_pro_bringup/launch/agv_pro_bringup.launch.py
+++ b/src/elephant_robotics/agv_pro_bringup/launch/agv_pro_bringup.launch.py
@@ -36,7 +36,7 @@ def generate_launch_description():
urdf_file = os.path.join(
get_package_share_directory('agv_pro_description'),
'urdf',
- 'agv_pro.urdf'
+ 'agv_pro.urdf.xacro'
)
# Pass both namespace and port_name into the xacro processor so that the
@@ -117,9 +117,12 @@ def generate_launch_description():
output='screen',
)
- # mecanum_drive_controller subscribes to ~/reference (TwistStamped).
- # --controller-ros-args remaps it to /cmd_vel so nav2 and teleop work
- # without extra flags (teleop still needs stamped:=true).
+ # mecanum_drive_controller subscribes to ~/reference (TwistStamped). Remap it
+ # to the standard /cmd_vel so nav2 and teleop work without extra flags
+ # (teleop still needs stamped:=true).
+ # NOTE: the remap key MUST be the private name '~/reference' — a bare
+ # 'reference:=/cmd_vel' is silently ignored and the controller stays on
+ # /mecanum_drive_controller/reference.
# Delayed slightly so controller_manager is ready before spawning.
mecanum_drive_controller_spawner = TimerAction(
period=2.0,
@@ -130,29 +133,13 @@ def generate_launch_description():
arguments=[
'mecanum_drive_controller',
'--controller-manager', 'controller_manager',
- '--controller-ros-args', '-r reference:=/cmd_vel',
+ '--controller-ros-args', '-r ~/reference:=/cmd_vel',
],
output='screen',
)
]
)
- # Relay /cmd_vel (TwistStamped) → /mecanum_drive_controller/reference.
- # This bridges the standard nav2/teleop topic to the controller's
- # internal subscription, which ros2_control does not remap at load time.
- # lazy:=false ensures the subscription exists before any publisher appears.
- cmd_vel_relay = Node(
- package='topic_tools',
- executable='relay',
- name='cmd_vel_relay',
- parameters=[{
- 'input_topic': '/cmd_vel',
- 'output_topic': '/mecanum_drive_controller/reference',
- 'lazy': False,
- }],
- output='screen',
- )
-
lidar_launchs = [
include_lidar('lslidar_driver', 'lsn10p_launch.py', enable_lidar, lidar_type, 'n10p'),
include_lidar('agv_pro_bringup', 'MID360_launch.py', enable_lidar, lidar_type, 'mid360'),
@@ -170,7 +157,6 @@ def generate_launch_description():
robot_state_pub,
joint_state_broadcaster_spawner,
mecanum_drive_controller_spawner,
- cmd_vel_relay,
*lidar_launchs,
]
)
\ No newline at end of file
diff --git a/src/elephant_robotics/agv_pro_bringup/package.xml b/src/elephant_robotics/agv_pro_bringup/package.xml
index 31f0492..da70e8c 100644
--- a/src/elephant_robotics/agv_pro_bringup/package.xml
+++ b/src/elephant_robotics/agv_pro_bringup/package.xml
@@ -12,7 +12,6 @@
controller_manager
mecanum_drive_controller
joint_state_broadcaster
- topic_tools
agv_pro_hardware
agv_pro_description
rviz2
diff --git a/src/elephant_robotics/agv_pro_description/launch/agv_pro_display.launch.py b/src/elephant_robotics/agv_pro_description/launch/agv_pro_display.launch.py
index 7e6ff4e..b653e32 100644
--- a/src/elephant_robotics/agv_pro_description/launch/agv_pro_display.launch.py
+++ b/src/elephant_robotics/agv_pro_description/launch/agv_pro_display.launch.py
@@ -20,7 +20,7 @@ def generate_launch_description():
urdf_file = os.path.join(
get_package_share_directory('agv_pro_description'),
'urdf',
- 'agv_pro.urdf'
+ 'agv_pro.urdf.xacro'
)
robot_description_content = Command([
diff --git a/src/elephant_robotics/agv_pro_description/urdf/agv_pro.gazebo.xacro b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.gazebo.xacro
new file mode 100644
index 0000000..25aa39b
--- /dev/null
+++ b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.gazebo.xacro
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+ 0.8
+ 0.8
+ 100000.0
+ 1.0
+
+
+ 0.1 0.1 0.1 1
+ 0.1 0.1 0.1 1
+ 0.1 0.1 0.1 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${controllers_file}
+
+
+
+
diff --git a/src/elephant_robotics/agv_pro_description/urdf/agv_pro.ros2_control.xacro b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.ros2_control.xacro
new file mode 100644
index 0000000..6ffdfbd
--- /dev/null
+++ b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.ros2_control.xacro
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+ gz_ros2_control/GazeboSimSystem
+
+
+ agv_pro_hardware/AgvProHardwareInterface
+ ${port_name}
+ 0.072
+ 0.172
+ 0.180
+
+ ${namespace}left_front_wheel_joint
+ ${namespace}left_rear_wheel_joint
+ ${namespace}right_front_wheel_joint
+ ${namespace}right_rear_wheel_joint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf.xacro
old mode 100755
new mode 100644
similarity index 71%
rename from src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf
rename to src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf.xacro
index 67a9359..f481bfc
--- a/src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf
+++ b/src/elephant_robotics/agv_pro_description/urdf/agv_pro.urdf.xacro
@@ -1,279 +1,255 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- agv_pro_hardware/AgvProHardwareInterface
- $(arg port_name)
- 0.072
- 0.172
- 0.180
-
- ${namespace}left_front_wheel_joint
- ${namespace}left_rear_wheel_joint
- ${namespace}right_front_wheel_joint
- ${namespace}right_rear_wheel_joint
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/elephant_robotics/agv_pro_gazebo/CMakeLists.txt b/src/elephant_robotics/agv_pro_gazebo/CMakeLists.txt
index 50de585..0340b14 100644
--- a/src/elephant_robotics/agv_pro_gazebo/CMakeLists.txt
+++ b/src/elephant_robotics/agv_pro_gazebo/CMakeLists.txt
@@ -7,14 +7,13 @@ endif()
# find dependencies
find_package(ament_cmake REQUIRED)
-find_package(urdf REQUIRED)
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
-install(DIRECTORY meshes urdf launch rviz config worlds
+install(DIRECTORY meshes launch rviz config worlds
DESTINATION share/${PROJECT_NAME}
)
diff --git a/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml b/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml
index 867cc69..83ce34c 100644
--- a/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml
+++ b/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml
@@ -1,6 +1,6 @@
controller_manager:
ros__parameters:
- update_rate: 100 # 控制器更新频率 (Hz)
+ update_rate: 50 # 控制器更新频率 (Hz) — matches the physical robot (ESP32 auto-report rate)
use_sim_time: true # 使用仿真时间
# 定义关节状态广播器
@@ -11,29 +11,36 @@ controller_manager:
mecanum_drive_controller:
type: mecanum_drive_controller/MecanumDriveController
-# 麦克纳姆四轮驱动控制器配置
+# ─────────────────────────────────────────────────────────────────────────────
+# Mecanum drive controller — kept IN SYNC with the physical robot config at
+# agv_pro_bringup/config/ros2_controllers.yaml. Only the hardware plugin differs
+# (gz_ros2_control/GazeboSimSystem here vs agv_pro_hardware/AgvProHardwareInterface
+# on the real robot); the controller parameters are identical.
+#
+# NOTE: The URDF joint names do not match the physical wheel positions due to a
+# naming inconsistency in the shared robot model. The controller compensates via
+# the front/rear/left/right command-joint mapping below:
+#
+# Physical position │ URDF joint name
+# ──────────────────┼────────────────────────────
+# front-left (FL) │ left_front_wheel_joint ✓
+# front-right (FR) │ left_rear_wheel_joint ← physically front-right
+# rear-left (RL) │ right_front_wheel_joint ← physically rear-left
+# rear-right (RR) │ right_rear_wheel_joint ✓
+# ─────────────────────────────────────────────────────────────────────────────
mecanum_drive_controller:
ros__parameters:
- reference_timeout: 0.5
+ front_left_wheel_command_joint_name: left_front_wheel_joint
+ front_right_wheel_command_joint_name: left_rear_wheel_joint
+ rear_left_wheel_command_joint_name: right_front_wheel_joint
+ rear_right_wheel_command_joint_name: right_rear_wheel_joint
- # 命令关节 (velocity command interface)
- front_left_wheel_command_joint_name: left_front_wheel_joint
- front_right_wheel_command_joint_name: right_front_wheel_joint
- rear_left_wheel_command_joint_name: left_rear_wheel_joint
- rear_right_wheel_command_joint_name: right_rear_wheel_joint
-
- kinematics:
- base_frame_offset:
- x: 0.0
- y: 0.0
- theta: 0.0
- wheels_radius: 0.05 # 轮子半径
- # lx + ly : 底盘中心到轮子在 X 与 Y 方向投影之和
- sum_of_robot_center_projection_on_X_Y_axis: 0.35
-
- base_frame_id: base_link
- odom_frame_id: odom
+ odom_frame_id: odom
+ base_frame_id: base_footprint
enable_odom_tf: true
- pose_covariance_diagonal: [0.001, 0.001, 99999.0, 99999.0, 99999.0, 0.03]
- twist_covariance_diagonal: [0.001, 0.001, 99999.0, 99999.0, 99999.0, 0.03]
+ kinematics:
+ wheels_radius: 0.072 # 轮子半径 (wheel centre height above ground)
+ # sum_of_robot_center_projection_on_X_Y_axis = lx + ly (0.172 + 0.180)
+ sum_of_robot_center_projection_on_X_Y_axis: 0.352
+
diff --git a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro.launch.py b/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro.launch.py
deleted file mode 100644
index c6f0060..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro.launch.py
+++ /dev/null
@@ -1,40 +0,0 @@
-import os
-
-from ament_index_python.packages import get_package_share_directory
-
-from launch import LaunchDescription
-from launch.substitutions import LaunchConfiguration
-from launch.actions import DeclareLaunchArgument
-from launch_ros.actions import Node
-
-import xacro
-
-
-def generate_launch_description():
-
- # Check if we're told to use sim time
- use_sim_time = LaunchConfiguration('use_sim_time')
-
- # Process the URDF file
- pkg_path = os.path.join(get_package_share_directory('agv_pro_gazebo'))
- xacro_file = os.path.join(pkg_path,'urdf','agv_pro.xacro')
- robot_description_config = xacro.process_file(xacro_file)
-
- # Create a robot_state_publisher node
- params = {'robot_description': robot_description_config.toxml(), 'use_sim_time': use_sim_time}
- node_robot_state_publisher = Node(
- package='robot_state_publisher',
- executable='robot_state_publisher',
- output='screen',
- parameters=[params]
- )
-
- # Launch!
- return LaunchDescription([
- DeclareLaunchArgument(
- 'use_sim_time',
- default_value='false',
- description='Use sim time if true'),
-
- node_robot_state_publisher
- ])
diff --git a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_display.launch.py b/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_display.launch.py
deleted file mode 100644
index 34ade83..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_display.launch.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import os
-from launch import LaunchDescription
-from launch_ros.actions import Node
-from launch.conditions import IfCondition
-from launch.substitutions import LaunchConfiguration
-from ament_index_python.packages import get_package_share_directory
-
-def generate_launch_description():
-
- use_rviz = LaunchConfiguration('use_rviz', default='true')
- rviz_config_dir = os.path.join(
- get_package_share_directory('agv_pro_gazebo'),
- 'rviz',
- 'agvpro_display.rviz')
-
- urdf_file = os.path.join(
- get_package_share_directory('agv_pro_gazebo'),
- 'urdf',
- 'agv_pro.urdf'
- )
-
- with open(urdf_file, 'r') as file:
- robot_description_content = file.read()
-
- return LaunchDescription([
-
- Node(
- package='joint_state_publisher',
- executable='joint_state_publisher',
- name='joint_state_publisher'
- ),
-
- Node(
- package='robot_state_publisher',
- executable='robot_state_publisher',
- name='robot_state_publisher',
- parameters=[{'robot_description': robot_description_content}]
- ),
-
- Node(
- package='rviz2',
- executable='rviz2',
- name='rviz2',
- arguments=['-d', rviz_config_dir],
- condition=IfCondition(use_rviz),
- output='screen')
-
- ])
diff --git a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_gazebo.launch.py b/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_gazebo.launch.py
index e6c01f6..41b1f45 100644
--- a/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_gazebo.launch.py
+++ b/src/elephant_robotics/agv_pro_gazebo/launch/agv_pro_gazebo.launch.py
@@ -4,12 +4,18 @@ from launch.actions import (
IncludeLaunchDescription,
DeclareLaunchArgument,
RegisterEventHandler,
+ SetEnvironmentVariable,
TimerAction,
)
from launch.conditions import IfCondition
from launch.event_handlers import OnProcessExit
from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import Command, LaunchConfiguration, PythonExpression
+from launch.substitutions import (
+ Command,
+ EnvironmentVariable,
+ LaunchConfiguration,
+ PythonExpression,
+)
from launch_ros.actions import Node
from launch_ros.parameter_descriptions import ParameterValue
from ament_index_python.packages import get_package_share_directory
@@ -17,9 +23,12 @@ from ament_index_python.packages import get_package_share_directory
def generate_launch_description():
pkg_gazebo = get_package_share_directory('agv_pro_gazebo')
+ pkg_description = get_package_share_directory('agv_pro_description')
pkg_ros_gz_sim = get_package_share_directory('ros_gz_sim')
- xacro_file = os.path.join(pkg_gazebo, 'urdf', 'agv_pro.xacro')
+ # Shared robot description (agv_pro_description) built for simulation.
+ xacro_file = os.path.join(pkg_description, 'urdf', 'agv_pro.urdf.xacro')
+ controllers_file = os.path.join(pkg_gazebo, 'config', 'agv_control.yaml')
world_file = os.path.join(pkg_gazebo, 'worlds', 'empty.world')
rviz_config = os.path.join(pkg_gazebo, 'rviz', 'agvpro_display.rviz')
@@ -29,11 +38,29 @@ def generate_launch_description():
robot_description = {
'robot_description': ParameterValue(
- Command(['xacro ', xacro_file]), value_type=str
+ Command([
+ 'xacro ', xacro_file,
+ ' sim:=true',
+ ' controllers_file:=', controllers_file,
+ ]),
+ value_type=str,
),
'use_sim_time': use_sim_time,
}
+ # Let gz-sim resolve the package:// mesh URIs in the shared description.
+ # URDF->SDF conversion rewrites package://agv_pro_description/... to
+ # model://agv_pro_description/..., which gz finds by searching
+ # GZ_SIM_RESOURCE_PATH for a directory named 'agv_pro_description'.
+ gz_resource_path = SetEnvironmentVariable(
+ name='GZ_SIM_RESOURCE_PATH',
+ value=[
+ os.path.dirname(pkg_description),
+ ':',
+ EnvironmentVariable('GZ_SIM_RESOURCE_PATH', default_value=''),
+ ],
+ )
+
# Start gz-sim (Gazebo Harmonic) with the world.
# '-s' (server only) is added when headless:=true.
gz_args = PythonExpression([
@@ -88,12 +115,17 @@ def generate_launch_description():
output='screen',
)
+ # Remap the controller's reference topic (~/reference) to the standard
+ # /cmd_vel so teleop and nav2 (which publish geometry_msgs/TwistStamped)
+ # drive the robot directly. NOTE: the remap key must be the private name
+ # '~/reference' — a bare 'reference:=/cmd_vel' is silently ignored.
mecanum_drive_controller_spawner = Node(
package='controller_manager',
executable='spawner',
arguments=[
'mecanum_drive_controller',
'--controller-manager', '/controller_manager',
+ '--controller-ros-args', '-r ~/reference:=/cmd_vel',
],
output='screen',
)
@@ -124,6 +156,7 @@ def generate_launch_description():
default_value='false',
description='Run gz-sim without the GUI (server only)',
),
+ gz_resource_path,
gz_sim,
robot_state_publisher,
clock_bridge,
diff --git a/src/elephant_robotics/agv_pro_gazebo/launch/teleop_launch.py b/src/elephant_robotics/agv_pro_gazebo/launch/teleop_launch.py
index 7df0262..4e81646 100644
--- a/src/elephant_robotics/agv_pro_gazebo/launch/teleop_launch.py
+++ b/src/elephant_robotics/agv_pro_gazebo/launch/teleop_launch.py
@@ -13,12 +13,12 @@ def generate_launch_description():
prefix='xterm -e', # 或 'gnome-terminal --' 替换为你的终端命令
# mecanum_drive_controller expects a stamped reference; teleop must
# publish geometry_msgs/TwistStamped with a fresh timestamp.
+ # It publishes on the standard /cmd_vel topic, which the sim launch
+ # feeds to the controller (spawner remap + cmd_vel_relay), mirroring
+ # the physical robot.
parameters=[{
'stamped': True,
'frame_id': 'base_link',
}],
- remappings=[
- ('/cmd_vel', '/mecanum_drive_controller/reference'),
- ]
)
])
diff --git a/src/elephant_robotics/agv_pro_gazebo/launch/test.launch.py b/src/elephant_robotics/agv_pro_gazebo/launch/test.launch.py
deleted file mode 100644
index 3c417e5..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/launch/test.launch.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import os
-from launch import LaunchDescription
-from launch.actions import IncludeLaunchDescription
-from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch_ros.actions import Node
-from launch.substitutions import Command
-from ament_index_python.packages import get_package_share_directory
-
-def generate_launch_description():
- pkg_dir = get_package_share_directory('agv_pro_description')
- xacro_file = os.path.join(pkg_dir, 'urdf', 'minimal_robot.xacro')
- world_file = os.path.join(pkg_dir, 'worlds', 'empty.world')
-
- robot_description = {'robot_description': Command(['xacro ', xacro_file])}
-
- return LaunchDescription([
- IncludeLaunchDescription(
- PythonLaunchDescriptionSource(
- os.path.join(get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')
- ),
- launch_arguments={'world': world_file}.items()
- ),
- Node(
- package='robot_state_publisher',
- executable='robot_state_publisher',
- parameters=[robot_description],
- output='screen'
- ),
- Node(
- package='gazebo_ros',
- executable='spawn_entity.py',
- arguments=['-topic', 'robot_description', '-entity', 'minimal_bot'],
- output='screen'
- )
- ])
diff --git a/src/elephant_robotics/agv_pro_gazebo/package.xml b/src/elephant_robotics/agv_pro_gazebo/package.xml
index 70c0819..57e4ec0 100644
--- a/src/elephant_robotics/agv_pro_gazebo/package.xml
+++ b/src/elephant_robotics/agv_pro_gazebo/package.xml
@@ -13,6 +13,8 @@
xacro
+
+ agv_pro_description
ros_gz_sim
ros_gz_bridge
diff --git a/src/elephant_robotics/agv_pro_gazebo/urdf/agv_pro.xacro b/src/elephant_robotics/agv_pro_gazebo/urdf/agv_pro.xacro
deleted file mode 100644
index e72d45e..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/urdf/agv_pro.xacro
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/elephant_robotics/agv_pro_gazebo/urdf/minimal_robot.xacro b/src/elephant_robotics/agv_pro_gazebo/urdf/minimal_robot.xacro
deleted file mode 100644
index 87be2db..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/urdf/minimal_robot.xacro
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Gazebo/White
- 1.0
- 1.0
- 100000.0
- 1.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/elephant_robotics/agv_pro_gazebo/urdf/parts/gazebo_control_plugin.xacro b/src/elephant_robotics/agv_pro_gazebo/urdf/parts/gazebo_control_plugin.xacro
deleted file mode 100644
index 893141e..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/urdf/parts/gazebo_control_plugin.xacro
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
- cmd_vel:=/cmd_vel
- odom:=/odom
-
-
-
- front_left_wheel_joint
- front_right_wheel_joint
- rear_left_wheel_joint
- rear_right_wheel_joint
- 0.1
- 0.36
-
- 20
- cmd_vel
- odom
- odom
- base_footprint
- true
-
-
-
-
diff --git a/src/elephant_robotics/agv_pro_gazebo/urdf/parts/wheel_macro.xacro b/src/elephant_robotics/agv_pro_gazebo/urdf/parts/wheel_macro.xacro
deleted file mode 100644
index a5559dd..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/urdf/parts/wheel_macro.xacro
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- transmission_interface/SimpleTransmission
-
- hardware_interface/velocity
-
-
- 1
- hardware_interface/velocity
-
-
-
-
- 0.8
- 0.8
- 100000.0
- 1.0
-
-
- 0.1 0.1 0.1 1
- 0.1 0.1 0.1 1
- 0.1 0.1 0.1 1
-
-
-
-
-
-
diff --git a/src/elephant_robotics/agv_pro_gazebo/urdf/ros2_controller.xacro b/src/elephant_robotics/agv_pro_gazebo/urdf/ros2_controller.xacro
deleted file mode 100644
index 553763b..0000000
--- a/src/elephant_robotics/agv_pro_gazebo/urdf/ros2_controller.xacro
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
- gz_ros2_control/GazeboSimSystem
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(find agv_pro_gazebo)/config/agv_control.yaml
-
-
-
-