Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill sdf-xacro-modelLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Métiers associés SOC
Basé sur la classification professionnelle 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 >