Skip to main content Skills Marketplace Descubra e explore skills de IA criadas pela comunidade.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Copiar promptMostrar detalhes do prompt Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill sdf-xacro-modelO comando permanece em uma só linha. Role horizontalmente para revisá-lo antes de copiar.
Prefere uma cópia local? Baixe os arquivos disponíveis atualmente no SkillsMP.
Baixar Zip Baixando... Ocupações relacionadas SOC
Baseado na classificação ocupacional SOC
name sdf-xacro-model description 轮式车辆 SDF/XACRO 模型开发技能 - 差速驱动车、阿克曼车、履带车模型创建与仿真配置 argument-hint 创建轮式车辆模型 OR 差速驱动 OR 阿克曼模型 OR 履带车 user-invocable true
Wheeled Vehicle SDF/XACRO Model Skill
用于创建轮式移动机器人的 SDF 和 XACRO 模型
何时使用
当需要以下帮助时使用此技能:
创建差速驱动轮式机器人
创建阿克曼转向车辆
创建履带式机器人
配置轮式车辆传感器
设置仿真环境参数
快速参考
车辆类型选择
差速驱动车辆
SDF 模型 - 完整示例
<?xml version="1.0" ?>
<sdf version ="1.11" >
<model name ="diff_drive_robot" >
<static > false</static >
<self_collide > false</self_collide >
<link name ="base_link" >
<pose > 0 0 0.1 0 0 0</pose >
<inertial >
<mass > 10.0</mass >
<inertia >
<ixx > 0.1</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.1</iyy > <iyz > 0</iyz >
<izz > 0.1</izz >
</inertia >
</inertial >
<collision name ="base_collision" >
<geometry >
<box >
<size > 0.5 0.4 0.1</size >
</box >
</geometry >
</collision >
<visual name ="base_visual" >
<geometry >
<box >
<size > 0.5 0.4 0.1</size >
</box >
</geometry >
<material >
<ambient > 0.3 0.3 0.3 1</ambient >
<diffuse > 0.3 0.3 0.3 1</diffuse >
</material >
</visual >
</link >
<link name ="wheel_fl" >
<pose > 0.2 0.25 0 0 0 0</pose >
<inertial >
<mass > 0.5</mass >
<inertia >
<ixx > 0.001</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.001</iyy > <iyz > 0</iyz >
<izz > 0.001</izz >
</inertia >
</inertial >
<collision name ="wheel_fl_collision" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
<surface >
<friction >
<ode >
<mu > 1.0</mu >
<mu2 > 1.0</mu2 >
</ode >
</friction >
</surface >
</collision >
<visual name ="wheel_fl_visual" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
<material >
<ambient > 0.1 0.1 0.1 1</ambient >
</material >
</visual >
</link >
<joint name ="wheel_fl_joint" type ="continuous" >
<parent > base_link</parent >
<child > wheel_fl</child >
<axis >
<xyz > 0 1 0</xyz >
</axis >
</joint >
<link name ="wheel_fr" >
<pose > 0.2 -0.25 0 0 0 0</pose >
<inertial >
<mass > 0.5</mass >
<inertia >
<ixx > 0.001</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.001</iyy > <iyz > 0</iyz >
<izz > 0.001</izz >
</inertia >
</inertial >
<collision name ="wheel_fr_collision" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_fr_visual" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
<material >
<ambient > 0.1 0.1 0.1 1</ambient >
</material >
</visual >
</link >
<joint name ="wheel_fr_joint" type ="continuous" >
<parent > base_link</parent >
<child > wheel_fr</child >
<axis >
<xyz > 0 1 0</xyz >
</axis >
</joint >
<link name ="wheel_rl" >
<pose > -0.2 0.25 0 0 0 0</pose >
<inertial >
<mass > 0.5</mass >
<inertia >
<ixx > 0.001</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.001</iyy > <iyz > 0</iyz >
<izz > 0.001</izz >
</inertia >
</inertial >
<collision name ="wheel_rl_collision" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_rl_visual" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
<material >
<ambient > 0.1 0.1 0.1 1</ambient >
</material >
</visual >
</link >
<joint name ="wheel_rl_joint" type ="continuous" >
<parent > base_link</parent >
<child > wheel_rl</child >
<axis >
<xyz > 0 1 0</xyz >
</axis >
</joint >
<link name ="wheel_rr" >
<pose > -0.2 -0.25 0 0 0 0</pose >
<inertial >
<mass > 0.5</mass >
<inertia >
<ixx > 0.001</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.001</iyy > <iyz > 0</iyz >
<izz > 0.001</izz >
</inertia >
</inertial >
<collision name ="wheel_rr_collision" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_rr_visual" >
<geometry >
<cylinder >
<radius > 0.1</radius >
<length > 0.05</length >
</cylinder >
</geometry >
<material >
<ambient > 0.1 0.1 0.1 1</ambient >
</material >
</visual >
</link >
<joint name ="wheel_rr_joint" type ="continuous" >
<parent > base_link</parent >
<child > wheel_rr</child >
<axis >
<xyz > 0 1 0</xyz >
</axis >
</joint >
<link name ="laser_link" >
<pose > 0.25 0 0.15 0 0 0</pose >
<sensor name ="laser" type ="gpu_lidar" >
<update_rate > 10</update_rate >
<ray >
<scan >
<horizontal >
<samples > 360</samples >
<resolution > 1</resolution >
</horizontal >
</scan >
<range >
<min > 0.1</min >
<max > 30</max >
</range >
</ray >
<plugin filename ="gz-sim-sensors-gpu-lidar" name ="gz::sim::systems::GpuRaySensor" >
<ros >
<namespace > /robot</namespace >
</ros >
</plugin >
</sensor >
</link >
<joint name ="laser_joint" type ="fixed" >
<parent > base_link</parent >
<child > laser_link</child >
</joint >
<plugin filename ="gz-sim-diff-drive-system" name ="gz::sim::systems::DiffDrive" >
<left_joint > wheel_fl_joint</left_joint >
<right_joint > wheel_fr_joint</right_joint >
<left_joint > wheel_rl_joint</left_joint >
<right_joint > wheel_rr_joint</right_joint >
<wheel_radius > 0.1</wheel_radius >
<wheel_separation > 0.5</wheel_separation >
<max_wheel_torque > 20</max_wheel_torque >
<max_wheel_velocity > 10</max_wheel_velocity >
</plugin >
</model >
</sdf >
XACRO 模型
<?xml version="1.0" ?>
<robot name ="diff_drive_robot" xmlns:xacro ="http://www.ros.org/wiki/xacro" >
<xacro:property name ="PI" value ="3.14159265358979" />
<xacro:property name ="base_mass" value ="10.0" />
<xacro:property name ="base_length" value ="0.5" />
<xacro:property name ="base_width" value ="0.4" />
<xacro:property name ="base_height" value ="0.1" />
<xacro:property name ="wheel_radius" value ="0.1" />
<xacro:property name ="wheel_width" value ="0.05" />
<xacro:property name ="wheel_mass" value ="0.5" />
<xacro:property name = = />
1.0
1.0
/robot
cmd_vel:=cmd_vel
odom:=odom
50
wheel_fl_joint
wheel_fr_joint
${wheel_separation}
${wheel_radius}
20
10
阿克曼转向车辆
SDF 模型
<?xml version="1.0" ?>
<sdf version ="1.11" >
<model name ="ackermann_vehicle" >
<static > false</static >
<link name ="chassis" >
<pose > 0 0 0.2 0 0 0</pose >
<inertial >
<mass > 50.0</mass >
<inertia >
<ixx > 0.5</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.8</iyy > <iyz > 0</iyz >
<izz > 0.8</izz >
</inertia >
</inertial >
<collision name ="chassis_collision" >
1.0 0.5 0.2
1.0 0.5 0.2
0.4 0.2 0.1 1
0.4 0 0.1 0 0 0
5.0
0.01 0 0
0.01 0
0.01
0.1 0.4 0.1
0.1 0.4 0.1
0.2 0.2 0.2 1
chassis
front_axle
0 0 1
-0.5
0.5
0.4 0.3 0.1 0 0 0
2.0
0.01 0 0
0.01 0
0.01
0.15
0.1
0.15
0.1
0.1 0.1 0.1 1
front_axle
wheel_fl
0 1 0
0.4 -0.3 0.1 0 0 0
2.0
0.01 0 0
0.01 0
0.01
0.15
0.1
0.15
0.1
0.1 0.1 0.1 1
front_axle
wheel_fr
0 1 0
-0.4 0.25 0.1 0 0 0
2.0
0.01 0 0
0.01 0
0.01
0.15
0.1
0.15
0.1
0.1 0.1 0.1 1
chassis
wheel_rl
0 1 0
-0.4 -0.25 0.1 0 0 0
2.0
0.01 0 0
0.01 0
0.01
0.15
0.1
0.15
0.1
0.1 0.1 0.1 1
chassis
wheel_rr
0 1 0
wheel_fl_joint
wheel_fr_joint
wheel_rl_joint
wheel_rr_joint
front_steering_joint
0.15
0.6
0.8
0.5
履带式车辆
SDF 模型
<?xml version="1.0" ?>
<sdf version ="1.11" >
<model name ="tracked_vehicle" >
<static > false</static >
<link name ="chassis" >
<pose > 0 0 0.15 0 0 0</pose >
<inertial >
<mass > 30.0</mass >
<inertia >
<ixx > 0.3</ixx > <ixy > 0</ixy > <ixz > 0</ixz >
<iyy > 0.5</iyy > <iyz > 0</iyz >
<izz > 0.5</izz >
</inertia >
</inertial >
<collision name ="chassis_collision" >
0.8 0.4 0.15
0.8 0.4 0.15
0.3 0.3 0.2 1
0 0.25 0 0 0 0
5.0
0.05 0 0
0.05 0
0.05
0.8 0.1 0.1
2.0
2.0
0.8 0.1 0.1
0.1 0.1 0.1 1
chassis
track_left
0 1 0
0 -0.25 0 0 0 0
5.0
0.05 0 0
0.05 0
0.05
0.8 0.1 0.1
2.0
2.0
0.8 0.1 0.1
0.1 0.1 0.1 1
chassis
track_right
0 1 0
track_left_joint
track_right_joint
0.1
0.5
50
5
传感器配置
轮式车辆常用传感器
<link name ="front_laser_link" >
<pose > 0.4 0 0.15 0 0 0</pose >
<sensor name ="front_laser" type ="gpu_lidar" >
<update_rate > 10</update_rate >
<ray >
<scan >
<horizontal >
<samples > 360</samples >
<resolution > 1</resolution >
</horizontal >
</scan >
<range >
<min > 0.1</min >
<max > 30</max >
</range >
</ray >
<plugin filename ="gz-sim-sensors-gpu-lidar" name ="gz::sim::systems::GpuRaySensor" >
<ros >
<namespace > /robot
0.3 0 0.2 0 0.3 0
30
1.57
640
480
/robot
0 0 0.1 0 0 0
100
/robot
0 0 0.2 0 0 0
10
/robot
环境参数配置
地面摩擦参数
<gazebo reference ="wheel" >
<surface >
<friction >
<ode >
<mu > 1.0</mu >
<mu2 > 1.0</mu2 >
<fdir1 > 0 0 1</fdir1 >
<slip1 > 0</slip1 >
<slip2 > 0</slip2 >
</ode >
<contact >
<kp > 1e7</kp >
<kd > 1</kd >
</contact >
</friction >
</surface >
</gazebo >
负载配置
<gazebo reference ="base_link" >
<mass > 2.0</mass >
</gazebo >
常见问题
问题 1: 机器人滑动
解决方案 :
增加轮子摩擦系数 (mu > 1.0)
检查关节阻尼设置
验证驱动扭矩
问题 2: 转向不准
解决方案 :
调整阿克曼转向角度限制
验证前轴位置
检查转向关节限位
相关资源
另见
"wheel_separation"
value
"0.5"
<xacro:property name ="wheel_base" value ="0.4" />
<xacro:macro name ="base_link" >
<link name ="base_link" >
<inertial >
<mass value ="${base_mass}" />
<inertia
ixx ="${base_mass / 12 * (base_width**2 + base_height**2)}"
ixy ="0" ixz ="0"
iyy ="${base_mass / 12 * (base_length**2 + base_height**2)}"
iyz ="0"
izz ="${base_mass / 12 * (base_length**2 + base_width**2)}" />
</inertial >
<collision >
<geometry >
<box size ="${base_length} ${base_width} ${base_height}" />
</geometry >
</collision >
<visual >
<geometry >
<box size ="${base_length} ${base_width} ${base_height}" />
</geometry >
<material name ="grey" >
<color rgba ="0.3 0.3 0.3 1" />
</material >
</visual >
</link >
</xacro:macro >
<xacro:macro name ="wheel" params ="name x y" >
<joint name ="${name}_joint" type ="continuous" >
<origin xyz ="${x} ${y} 0" rpy ="-${PI/2} 0 0" />
<parent link ="base_link" />
<child link ="${name}" />
<axis xyz ="0 0 1" />
<dynamics damping ="0.1" friction ="0.5" />
</joint >
<link name ="${name}" >
<inertial >
<mass value ="${wheel_mass}" />
<inertia
ixx ="${wheel_mass * wheel_radius**2 / 2}"
ixy ="0" ixz ="0"
iyy ="${wheel_mass * wheel_radius**2 / 2}"
iyz ="0"
izz ="${wheel_mass * wheel_radius**2 / 2}" />
</inertial >
<collision >
<geometry >
<cylinder radius ="${wheel_radius}" length ="${wheel_width}" />
</geometry >
<surface >
<friction >
<ode >
<mu >
</mu >
<mu2 >
</mu2 >
</ode >
</friction >
</surface >
</collision >
<visual >
<geometry >
<cylinder radius ="${wheel_radius}" length ="${wheel_width}" />
</geometry >
<material name ="black" >
<color rgba ="0.1 0.1 0.1 1" />
</material >
</visual >
</link >
</xacro:macro >
<xacro:base_link />
<xacro:wheel name ="wheel_fl" x ="${wheel_base/2}" y ="${wheel_separation/2}" />
<xacro:wheel name ="wheel_fr" x ="${wheel_base/2}" y ="-${wheel_separation/2}" />
<xacro:wheel name ="wheel_rl" x ="-${wheel_base/2}" y ="${wheel_separation/2}" />
<xacro:wheel name ="wheel_rr" x ="-${wheel_base/2}" y ="-${wheel_separation/2}" />
<gazebo >
<plugin filename ="libgazebo_ros_diff_drive.so" name ="gazebo_ros_diff_drive" >
<ros >
<namespace >
</namespace >
<remap >
</remap >
<remap >
</remap >
</ros >
<update_rate >
</update_rate >
<left_joint >
</left_joint >
<right_joint >
</right_joint >
<wheel_separation >
</wheel_separation >
<wheel_radius >
</wheel_radius >
<max_wheel_torque >
</max_wheel_torque >
<max_wheel_velocity >
</max_wheel_velocity >
</plugin >
</gazebo >
</robot >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
</collision >
<visual name ="chassis_visual" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<link name ="front_axle" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="front_axle_collision" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
</collision >
<visual name ="front_axle_visual" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="front_steering_joint" type ="revolute" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
<limit >
<lower >
</lower >
<upper >
</upper >
</limit >
</axis >
</joint >
<link name ="wheel_fl" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="wheel_fl_collision" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_fl_visual" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="wheel_fl_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<link name ="wheel_fr" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="wheel_fr_collision" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_fr_visual" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="wheel_fr_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<link name ="wheel_rl" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="wheel_rl_collision" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_rl_visual" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="wheel_rl_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<link name ="wheel_rr" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="wheel_rr_collision" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
</collision >
<visual name ="wheel_rr_visual" >
<geometry >
<cylinder >
<radius >
</radius >
<length >
</length >
</cylinder >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="wheel_rr_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<plugin filename ="gz-sim-ackermann-steering-system" name ="gz::sim::systems::AckermannSteering" >
<left_joint >
</left_joint >
<right_joint >
</right_joint >
<left_rear_joint >
</left_rear_joint >
<right_rear_joint >
</right_rear_joint >
<steering_joint >
</steering_joint >
<wheel_radius >
</wheel_radius >
<wheel_separation >
</wheel_separation >
<axle_length >
</axle_length >
<max_steering_angle >
</max_steering_angle >
</plugin >
</model >
</sdf >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
</collision >
<visual name ="chassis_visual" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<link name ="track_left" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="track_left_collision" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<surface >
<friction >
<ode >
<mu >
</mu >
<mu2 >
</mu2 >
</ode >
</friction >
</surface >
</collision >
<visual name ="track_left_visual" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="track_left_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<link name ="track_right" >
<pose >
</pose >
<inertial >
<mass >
</mass >
<inertia >
<ixx >
</ixx >
<ixy >
</ixy >
<ixz >
</ixz >
<iyy >
</iyy >
<iyz >
</iyz >
<izz >
</izz >
</inertia >
</inertial >
<collision name ="track_right_collision" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<surface >
<friction >
<ode >
<mu >
</mu >
<mu2 >
</mu2 >
</ode >
</friction >
</surface >
</collision >
<visual name ="track_right_visual" >
<geometry >
<box >
<size >
</size >
</box >
</geometry >
<material >
<ambient >
</ambient >
</material >
</visual >
</link >
<joint name ="track_right_joint" type ="continuous" >
<parent >
</parent >
<child >
</child >
<axis >
<xyz >
</xyz >
</axis >
</joint >
<plugin filename ="gz-sim-diff-drive-system" name ="gz::sim::systems::DiffDrive" >
<left_joint >
</left_joint >
<right_joint >
</right_joint >
<wheel_radius >
</wheel_radius >
<wheel_separation >
</wheel_separation >
<max_wheel_torque >
</max_wheel_torque >
<max_wheel_velocity >
</max_wheel_velocity >
</plugin >
</model >
</sdf >
</namespace >
</ros >
</plugin >
</sensor >
</link >
<link name ="camera_link" >
<pose >
</pose >
<sensor name ="camera" type ="rgbd_camera" >
<update_rate >
</update_rate >
<camera >
<horizontal_fov >
</horizontal_fov >
<image >
<width >
</width >
<height >
</height >
</image >
</camera >
<plugin filename ="gz-sim-sensors-rgbd-camera-system" name ="gz::sim::systems::RgbdCamera" >
<ros >
<namespace >
</namespace >
</ros >
</plugin >
</sensor >
</link >
<link name ="imu_link" >
<pose >
</pose >
<sensor name ="imu" type ="imu" >
<update_rate >
</update_rate >
<plugin filename ="gz-sim-sensors-imu-system" name ="gz::sim::systems::Imu" >
<ros >
<namespace >
</namespace >
</ros >
</plugin >
</sensor >
</link >
<link name ="gps_link" >
<pose >
</pose >
<sensor name ="gps" type ="gps" >
<update_rate >
</update_rate >
<plugin filename ="gz-sim-sensors-gps-system" name ="gz::sim::systems::Gps" >
<ros >
<namespace >
</namespace >
</ros >
</plugin >
</sensor >
</link >