Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill sensor-integration명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | sensor-integration |
| description | Gazebo 传感器集成技能 - LiDAR、相机、IMU、深度传感器配置 |
| argument-hint | gazebo传感器 OR 添加激光雷达 OR 相机配置 |
| user-invocable | true |
用于在 Gazebo Harmonic 中集成各类传感器
当需要以下帮助时使用此技能:
<link name="laser_link">
<pose>0.2 0 0.1 0 0 0</pose>
<sensor name="laser_sensor" type="gpu_lidar">
<pose>0 0 0 0 0 0</pose>
<update_rate>10</update_rate>
<ray>
<scan>
<horizontal>
<samples>360</samples>
<resolution>1</resolution>
<min_angle>-3.14159</min_angle>
<max_angle>3.14159</max_angle>
</horizontal>
</scan>
<range>
<min>0.1</min>
<max>30.0</max>
<resolution>0.01</resolution>
</range>
</ray>
<plugin filename="gz-sim-sensors-gpu-lidar" name="gz::sim::systems::GpuRaySensor">
<ros>
<namespace>/robot</namespace>
<remap>/scan:=scan</remap>
</ros>
</plugin>
</sensor>
</link>
<sensor name="laser_2d" type="gpu_lidar">
<update_rate>10</update_rate>
<ray>
<scan>
<horizontal>
<samples>360</samples>
<resolution>1</resolution>
<min_angle>-3.14159</min_angle>
<max_angle>3.14159</max_angle>
</horizontal>
</scan>
<range>
<min>0.1</min>
<max>30.0</max>
<resolution>0.01</resolution>
</range>
</ray>
<plugin filename="gz-sim-sensors-gpu-lidar" name="gz::sim::systems::GpuRaySensor">
<ros>
/robot
/scan:=scan
<sensor name="laser_3d" type="gpu_lidar">
<update_rate>10</update_rate>
<ray>
<scan>
<horizontal>
<samples>360</samples>
<resolution>1</resolution>
<min_angle>-3.14159</min_angle>
<max_angle>3.14159</max_angle>
</horizontal>
<vertical>
<samples>32</samples>
<resolution>1</resolution>
<min_angle>-0.26</min_angle>
<max_angle>0.26</max_angle>
</vertical>
</scan>
<range>
<min>0.1</min>
100.0
0.01
<ray>
<range>
<min>0.1</min>
<max>50.0</max>
</range>
<scan>
<horizontal>
<samples>720</samples> <!-- 增加采样提高分辨率 -->
<resolution>0.5</resolution>
<min_angle>-3.14159</min_angle>
<max_angle>3.14159</max_angle>
</horizontal>
</scan>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</ray>
<link name="camera_link">
<pose>0.3 0 0.15 0 0 0</pose>
<sensor name="rgb_camera" type="camera">
<update_rate>30</update_rate>
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>R8G8B8</format>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
</camera>
<plugin filename="gz-sim-sensors-camera-system" name="gz::sim::systems::Camera">
<ros>
/robot
/image:=rgb/image
<sensor name="rgbd_camera" type="rgbd_camera">
<update_rate>30</update_rate>
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>R8G8B8</format>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<depth_camera>
<image>
<format>R_FLOAT32</format>
</image>
</depth_camera>
</camera>
<plugin filename="gz-sim-sensors-rgbd-camera-system" =>
/robot
/image:=rgb/image
/depth:=depth/image
<sensor name="depth_camera" type="depth_camera">
<update_rate>30</update_rate>
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>R_FLOAT32</format>
</image>
<clip>
<near>0.1</near>
<far>10</far>
</clip>
</camera>
<plugin filename="gz-sim-sensors-depth-camera-system" name="gz::sim::systems::DepthCamera">
<ros>
<namespace>/robot</namespace>
<remap>/depth:=depth/image</remap>
<sensor name="fisheye_camera" type="camera">
<camera>
<horizontal_fov>3.14</horizontal_fov> <!-- 180度 -->
<image>
<width>1920</width>
<height>1080</height>
<format>R8G8B8</format>
</image>
<lens>
<type>fisheye</type>
<intrinsics>
<k1>0.0</k1>
<k2>0.0</k2>
<k3>0.0</k3>
<p1>0.0</p1>
<p2>0.0</p2>
<cx>0.5</cx>
<cy>0.5
1.0
1.0
<link name="imu_link">
<pose>0 0 0.1 0 0 0</pose>
<sensor name="imu_sensor" type="imu">
<update_rate>100</update_rate>
<orientation_enabled>true</orientation_enabled>
<angular_velocity_enabled>true</angular_velocity_enabled>
<linear_acceleration_enabled>true</linear_acceleration_enabled>
<plugin filename="gz-sim-sensors-imu-system" name="gz::sim::systems::Imu">
<ros>
<namespace>/robot</namespace>
<remap>/imu:=imu/data</remap>
</ros>
</plugin>
</sensor>
</link>
<sensor name="imu_sensor" type="imu">
<update_rate>100</update_rate>
<orientation_enabled>true</orientation_enabled>
<angular_velocity_enabled>true</angular_velocity_enabled>
<linear_acceleration_enabled>true</linear_acceleration_enabled>
<!-- 陀螺仪噪声 -->
<gyroscope>
<x>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>0.002</stddev>
</noise>
</x>
<y>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>0.002</stddev>
</noise>
</y>
0.0
0.002
0.0
0.01
0.0
0.01
0.0
0.01
<link name="gps_link">
<pose>0 0 0.2 0 0 0</pose>
<sensor name="gps_sensor" type="gps">
<update_rate>10</update_rate>
<position_sensing>
<horizontal>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</horizontal>
</position_sensing>
<vertical_sensing>
<horizontal>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</horizontal>
</vertical_sensing>
/robot
/gps:=gps/data
<sensor name="ultrasonic_sensor" type="ultrasonic">
<update_rate>20</update_rate>
<ray>
<scan>
<horizontal>
<samples>5</samples>
<resolution>1</resolution>
<min_angle>-0.26</min_angle>
<max_angle>0.26</max_angle>
</horizontal>
</scan>
<range>
<min>0.02</min>
<max>2.0</max>
<resolution>0.01</resolution>
</range>
</ray>
<plugin filename="gz-sim-sensors-ultrasonic-system" name="gz::sim::systems::Ultrasonic">
<>
/robot
/ultrasonic:=ultrasonic/scan
<sensor name="contact_sensor" type="contact">
<update_rate>100</update_rate>
<contact>
<collision>base_collision</collision>
</contact>
<plugin filename="gz-sim-sensors-contact-system" name="gz::sim::systems::Contact">
<ros>
<namespace>/robot</namespace>
<remap>/contact:=contact/force</remap>
</ros>
</plugin>
</sensor>
<!-- 车顶激光雷达 -->
<link name="lidar_mount">
<pose>0 0 0.3 0 0 0</pose>
<sensor name="top_lidar" type="gpu_lidar">...</sensor>
</link>
<!-- 前保险杠摄像头 -->
<link name="front_camera">
<pose>0.5 0 0.2 0 0 0</pose>
<sensor name="front_cam" type="camera">...</sensor>
</link>
<!-- 后保险杠超声波 -->
<link name="rear_ultrasonic">
<pose>-0.5 0 0.1 0 0 0</pose>
<sensor name="rear_ultra" type="ultrasonic">...</sensor>
</link>
<!-- IMU 安装位置 -->
<link name="imu_mount">
0 0 0 0 0 0
...
<plugin filename="gz-sim-sensors-lidar-system" name="gz::sim::systems::GpuRaySensor">
<ros>
<namespace>/my_robot</namespace>
<remap>/scan:=sensors/scan</remap>
<remap>/points:=sensors/points</remap>
<remap>/cloud:=sensors/pointcloud</remap>
</ros>
</plugin>
<!-- 相机和激光雷达外参标定 -->
<link name="sensor_fusion">
<pose>0.2 0 0.15 0 0 0</pose>
<!-- 相机和激光雷达安装在一起 -->
</link>
解决方案:确认传感器已正确附加到链接,ROS 主题名称正确
解决方案:增加 update_rate,减少采样数
解决方案:添加噪声配置,调整 stddev 参数