feat:完善了自动标定车间的环境
This commit is contained in:
@@ -1,91 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
project(calibration_sim)
|
||||
|
||||
# 1. 基础编译设置
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
|
||||
# 2. 寻找依赖库
|
||||
find_package(ament_cmake REQUIRED)
|
||||
find_package(rclcpp REQUIRED)
|
||||
find_package(std_msgs REQUIRED)
|
||||
find_package(sensor_msgs REQUIRED) # 用于 PointCloud2
|
||||
find_package(geometry_msgs REQUIRED) # 用于坐标变换
|
||||
find_package(tf2_ros REQUIRED) # 坐标变换工具
|
||||
find_package(tf2_geometry_msgs REQUIRED)
|
||||
find_package(pcl_conversions REQUIRED)# ROS <-> PCL 转换桥梁
|
||||
|
||||
# 寻找系统级安装的 PCL 库 (非 ROS 包)
|
||||
find_package(PCL REQUIRED COMPONENTS common io visualization filters registration segmentation)
|
||||
|
||||
# 3. 定义可执行文件 (你的核心 C++ 节点)
|
||||
# 假设你将来会写一个 lidar_fusion_node.cpp
|
||||
#add_executable(lidar_fusion_node src/lidar_fusion_node.cpp)
|
||||
|
||||
# 4. 配置头文件路径
|
||||
#target_include_directories(lidar_fusion_node PUBLIC
|
||||
# $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
# $<INSTALL_INTERFACE:include>
|
||||
# ${PCL_INCLUDE_DIRS} # 必须包含 PCL 的头文件
|
||||
#)
|
||||
|
||||
# 5. 链接库文件
|
||||
# 链接 ROS 相关的依赖
|
||||
#ament_target_dependencies(lidar_fusion_node
|
||||
# rclcpp
|
||||
# std_msgs
|
||||
#sensor_msgs
|
||||
#geometry_msgs
|
||||
# tf2_ros
|
||||
# tf2_geometry_msgs
|
||||
# pcl_conversions
|
||||
#)
|
||||
|
||||
# 链接 PCL 相关的依赖 (PCL 不是 ament 包,需要单独链接)
|
||||
#target_link_libraries(lidar_fusion_node
|
||||
# ${PCL_LIBRARIES}
|
||||
#)
|
||||
|
||||
# 6. 安装规则 (至关重要!)
|
||||
|
||||
# 安装可执行文件 (C++ 节点)
|
||||
#install(TARGETS
|
||||
# lidar_fusion_node
|
||||
# DESTINATION lib/${PROJECT_NAME}
|
||||
#)
|
||||
|
||||
# 安装脚本文件 (如果你有 Python 节点)
|
||||
# install(PROGRAMS
|
||||
# scripts/my_python_script.py
|
||||
# DESTINATION lib/${PROJECT_NAME}
|
||||
# )
|
||||
|
||||
# 安装资源目录 (Launch, URDF, RViz, Worlds)
|
||||
# 如果没有这步,你的 ros2 launch 命令会找不到文件
|
||||
install(DIRECTORY
|
||||
launch
|
||||
urdf
|
||||
rviz
|
||||
worlds
|
||||
config
|
||||
DESTINATION share/${PROJECT_NAME}
|
||||
)
|
||||
|
||||
# 7. 导出依赖与生成包
|
||||
if(BUILD_TESTING)
|
||||
find_package(ament_lint_auto REQUIRED)
|
||||
# the following line skips the linter which checks for copyrights
|
||||
# comment the line when a copyright and license is added to all source files
|
||||
set(ament_cmake_copyright_FOUND TRUE)
|
||||
# the following line skips the linter which checks for eccentric indentation
|
||||
# comment the line when it conforms to defaults
|
||||
set(ament_cmake_cpplint_FOUND TRUE)
|
||||
ament_lint_auto_find_test_dependencies()
|
||||
endif()
|
||||
|
||||
ament_package()
|
||||
@@ -1,73 +0,0 @@
|
||||
import os
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import IncludeLaunchDescription, ExecuteProcess
|
||||
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
||||
from launch_ros.actions import Node
|
||||
import xacro
|
||||
|
||||
def generate_launch_description():
|
||||
pkg_name = 'calibration_sim'
|
||||
|
||||
# 1. 解析 URDF
|
||||
infra_xacro = os.path.join(get_package_share_directory(pkg_name), 'urdf', 'workshop_sensors.xacro')
|
||||
infra_doc = xacro.process_file(infra_xacro)
|
||||
infra_xml = infra_doc.toxml()
|
||||
|
||||
agv_xacro = os.path.join(get_package_share_directory(pkg_name), 'urdf', 'agv.xacro')
|
||||
agv_doc = xacro.process_file(agv_xacro)
|
||||
agv_xml = agv_doc.toxml()
|
||||
|
||||
world_path = os.path.join(
|
||||
get_package_share_directory('calibration_sim'),
|
||||
'worlds',
|
||||
'calibration_room.world'
|
||||
)
|
||||
|
||||
# 2. 启动 Gazebo
|
||||
gazebo = IncludeLaunchDescription(
|
||||
PythonLaunchDescriptionSource([os.path.join(
|
||||
get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')]),
|
||||
launch_arguments={'world': world_path}.items(), # 【关键】指定 world 参数
|
||||
)
|
||||
|
||||
# 3. 生成基础设施 (4个雷达)
|
||||
spawn_infra = Node(
|
||||
package='gazebo_ros', executable='spawn_entity.py',
|
||||
arguments=['-topic', 'robot_description_infra', '-entity', 'workshop_sensors'],
|
||||
output='screen'
|
||||
)
|
||||
|
||||
# 发布基础设施的 State Publisher (为了TF树)
|
||||
infra_state_publisher = Node(
|
||||
package='robot_state_publisher',
|
||||
executable='robot_state_publisher',
|
||||
name='infra_state_publisher',
|
||||
parameters=[{'robot_description': infra_xml}],
|
||||
remappings=[('robot_description', 'robot_description_infra')]
|
||||
)
|
||||
|
||||
# 4. 生成 AGV
|
||||
spawn_agv = Node(
|
||||
package='gazebo_ros', executable='spawn_entity.py',
|
||||
arguments=['-topic', 'robot_description_agv', '-entity', 'my_agv', '-z', '0.1'],
|
||||
output='screen'
|
||||
)
|
||||
|
||||
# 发布 AGV 的 State Publisher
|
||||
agv_state_publisher = Node(
|
||||
package='robot_state_publisher',
|
||||
executable='robot_state_publisher',
|
||||
name='agv_state_publisher',
|
||||
parameters=[{'robot_description': agv_xml}],
|
||||
remappings=[('robot_description', 'robot_description_agv')]
|
||||
)
|
||||
|
||||
return LaunchDescription([
|
||||
gazebo,
|
||||
infra_state_publisher,
|
||||
spawn_infra,
|
||||
agv_state_publisher,
|
||||
spawn_agv,
|
||||
# 这里还可以加上 RViz 的节点
|
||||
])
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||
<package format="3">
|
||||
<name>calibration_sim</name>
|
||||
<version>0.0.0</version>
|
||||
<description>Simulated environment for workshop calibration project</description>
|
||||
<maintainer email="user@todo.todo">User</maintainer>
|
||||
<license>TODO: License declaration</license>
|
||||
|
||||
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||
|
||||
<depend>rclcpp</depend>
|
||||
<depend>std_msgs</depend>
|
||||
<depend>sensor_msgs</depend>
|
||||
<depend>geometry_msgs</depend>
|
||||
<depend>tf2_ros</depend>
|
||||
<depend>tf2_geometry_msgs</depend>
|
||||
<depend>pcl_conversions</depend>
|
||||
|
||||
<depend>gazebo_ros</depend> <test_depend>ament_lint_auto</test_depend>
|
||||
<test_depend>ament_lint_common</test_depend>
|
||||
|
||||
<export>
|
||||
<build_type>ament_cmake</build_type>
|
||||
</export>
|
||||
</package>
|
||||
@@ -1,72 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="my_agv">
|
||||
|
||||
<link name="base_footprint"/>
|
||||
|
||||
<joint name="base_joint" type="fixed">
|
||||
<parent link="base_footprint"/>
|
||||
<child link="base_link"/>
|
||||
<origin xyz="0 0 0.1" rpy="0 0 0"/>
|
||||
</joint>
|
||||
|
||||
<link name="base_link">
|
||||
<visual>
|
||||
<geometry><box size="0.5 0.3 0.1"/></geometry>
|
||||
<material name="blue">
|
||||
<color rgba="0 0 1 1"/>
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<geometry><box size="0.5 0.3 0.1"/></geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="5.0"/>
|
||||
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:macro name="wheel" params="prefix y_offset">
|
||||
<link name="${prefix}_wheel">
|
||||
<visual>
|
||||
<geometry><cylinder radius="0.1" length="0.05"/></geometry>
|
||||
<material name="black">
|
||||
<color rgba="0 0 0 1"/>
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<geometry><cylinder radius="0.1" length="0.05"/></geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="1.0"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<joint name="${prefix}_wheel_joint" type="continuous">
|
||||
<parent link="base_link"/>
|
||||
<child link="${prefix}_wheel"/>
|
||||
<origin xyz="0 ${y_offset} -0.05" rpy="-1.57 0 0"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:wheel prefix="left" y_offset="0.2"/>
|
||||
<xacro:wheel prefix="right" y_offset="-0.2"/>
|
||||
|
||||
<gazebo>
|
||||
<plugin name="diff_drive" filename="libgazebo_ros_diff_drive.so">
|
||||
<ros>
|
||||
<namespace>/</namespace>
|
||||
</ros>
|
||||
<left_joint>left_wheel_joint</left_joint>
|
||||
<right_joint>right_wheel_joint</right_joint>
|
||||
<wheel_separation>0.4</wheel_separation>
|
||||
<wheel_diameter>0.2</wheel_diameter>
|
||||
<publish_odom>true</publish_odom>
|
||||
<publish_odom_tf>true</publish_odom_tf>
|
||||
<odometry_frame>odom</odometry_frame>
|
||||
<robot_base_frame>base_footprint</robot_base_frame>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
|
||||
</robot>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="calibration_board">
|
||||
|
||||
<link name="board_link">
|
||||
<visual>
|
||||
<geometry>
|
||||
<box size="1.0 1.0 0.02"/>
|
||||
</geometry>
|
||||
<material name="white">
|
||||
<color rgba="1 1 1 1"/>
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<geometry>
|
||||
<box size="1.0 1.0 0.02"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="1.0"/>
|
||||
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<gazebo reference="board_link">
|
||||
<material>Gazebo/Checkerboard</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo>
|
||||
<static>true</static>
|
||||
</gazebo>
|
||||
|
||||
</robot>
|
||||
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="workshop_infrastructure">
|
||||
|
||||
<gazebo> <static>true</static> </gazebo>
|
||||
|
||||
<link name="workshop_anchor">
|
||||
<visual> <geometry><sphere radius="0.01"/></geometry> </visual>
|
||||
<inertial>
|
||||
<mass value="100"/>
|
||||
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<material name="lidar_black"> <color rgba="0.1 0.1 0.1 1"/> </material>
|
||||
|
||||
<xacro:macro name="solid_state_lidar" params="name x y z yaw">
|
||||
<joint name="${name}_joint" type="fixed">
|
||||
<parent link="workshop_anchor"/>
|
||||
<child link="${name}_link"/>
|
||||
<origin xyz="${x} ${y} ${z}" rpy="0 0.35 ${yaw}"/>
|
||||
</joint>
|
||||
|
||||
<link name="${name}_link">
|
||||
<inertial>
|
||||
<mass value="0.5"/> <inertia ixx="0.001" ixy="0" ixz="0" iyy="0.001" iyz="0" izz="0.001"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<geometry><box size="0.114 0.136 0.049"/></geometry>
|
||||
<material name="lidar_black"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<geometry><box size="0.114 0.136 0.049"/></geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<gazebo reference="${name}_link">
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
|
||||
<sensor type="gpu_ray" name="${name}_sensor">
|
||||
<pose>0 0 0 0 0 0</pose>
|
||||
<visualize>false</visualize>
|
||||
<update_rate>10</update_rate> <ray>
|
||||
<scan>
|
||||
<horizontal>
|
||||
<samples>600</samples>
|
||||
<resolution>1</resolution>
|
||||
<min_angle>-0.7854</min_angle>
|
||||
<max_angle>0.7854</max_angle>
|
||||
</horizontal>
|
||||
|
||||
<vertical>
|
||||
<samples>128</samples>
|
||||
<resolution>1</resolution>
|
||||
<min_angle>-0.2181</min_angle>
|
||||
<max_angle>0.2251</max_angle>
|
||||
</vertical>
|
||||
</scan>
|
||||
|
||||
<range>
|
||||
<min>0.5</min> <max>210.0</max>
|
||||
</range>
|
||||
|
||||
<noise>
|
||||
<type>gaussian</type>
|
||||
<mean>0.0</mean>
|
||||
<stddev>0.03</stddev>
|
||||
</noise>
|
||||
</ray>
|
||||
|
||||
<plugin name="${name}_controller" filename="libgazebo_ros_ray_sensor.so">
|
||||
<ros>
|
||||
<namespace>/infrastructure</namespace>
|
||||
<remapping>~/out:=${name}/points</remapping>
|
||||
</ros>
|
||||
<output_type>sensor_msgs/PointCloud2</output_type>
|
||||
<frame_name>${name}_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:solid_state_lidar name="lidar_fl" x="4.8" y="4.8" z="2.4" yaw="-2.356"/>
|
||||
<xacro:solid_state_lidar name="lidar_fr" x="4.8" y="-4.8" z="2.4" yaw="2.356"/>
|
||||
<xacro:solid_state_lidar name="lidar_bl" x="-4.8" y="4.8" z="2.4" yaw="-0.785"/>
|
||||
<xacro:solid_state_lidar name="lidar_br" x="-4.8" y="-4.8" z="2.4" yaw="0.785"/>
|
||||
|
||||
</robot>
|
||||
@@ -1,101 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<sdf version="1.6">
|
||||
<world name="calibration_world">
|
||||
|
||||
<scene>
|
||||
<ambient>0.6 0.6 0.6 1.0</ambient>
|
||||
<background>0.7 0.7 0.7 1.0</background>
|
||||
<shadows>true</shadows>
|
||||
</scene>
|
||||
|
||||
<include><uri>model://ground_plane</uri></include>
|
||||
|
||||
<model name="calibration_room_structure">
|
||||
<static>true</static>
|
||||
<pose>0 0 0 0 0 0</pose>
|
||||
<link name="wall_north"><pose>0 5 1.25 0 0 0</pose><collision name="c"><geometry><box><size>10.2 0.2 2.5</size></box></geometry></collision><visual name="v"><geometry><box><size>10.2 0.2 2.5</size></box></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/Grey</name></script></material></visual></link>
|
||||
<link name="wall_south"><pose>0 -5 1.25 0 0 0</pose><collision name="c"><geometry><box><size>10.2 0.2 2.5</size></box></geometry></collision><visual name="v"><geometry><box><size>10.2 0.2 2.5</size></box></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/Grey</name></script></material></visual></link>
|
||||
<link name="wall_east"><pose>5 0 1.25 0 0 0</pose><collision name="c"><geometry><box><size>0.2 10.0 2.5</size></box></geometry></collision><visual name="v"><geometry><box><size>0.2 10.0 2.5</size></box></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/Grey</name></script></material></visual></link>
|
||||
<link name="wall_west"><pose>-5 0 1.25 0 0 0</pose><collision name="c"><geometry><box><size>0.2 10.0 2.5</size></box></geometry></collision><visual name="v"><geometry><box><size>0.2 10.0 2.5</size></box></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/Grey</name></script></material></visual></link>
|
||||
</model>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_n1</name><pose>-3.75 4.89 1.25 1.57 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_n2</name><pose>-1.25 4.89 1.25 1.57 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_n3</name><pose> 1.25 4.89 1.25 1.57 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_n4</name><pose> 3.75 4.89 1.25 1.57 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_s1</name><pose>-3.75 -4.89 1.25 1.57 0 3.14159</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_s2</name><pose>-1.25 -4.89 1.25 1.57 0 3.14159</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_s3</name><pose> 1.25 -4.89 1.25 1.57 0 3.14159</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_s4</name><pose> 3.75 -4.89 1.25 1.57 0 3.14159</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_e1</name><pose>4.89 -3.75 1.25 1.57 0 -1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_e2</name><pose>4.89 -1.25 1.25 1.57 0 -1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_e3</name><pose>4.89 1.25 1.25 1.57 0 -1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_e4</name><pose>4.89 3.75 1.25 1.57 0 -1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_w1</name><pose>-4.89 -3.75 1.25 1.57 0 1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_w2</name><pose>-4.89 -1.25 1.25 1.57 0 1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_w3</name><pose>-4.89 1.25 1.25 1.57 0 1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>board_w4</name><pose>-4.89 3.75 1.25 1.57 0 1.57</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
|
||||
<model name="ceiling_lights_4x4">
|
||||
<static>true</static>
|
||||
<pose>0 0 2.5 0 0 0</pose>
|
||||
<link name="link">
|
||||
<visual name="v1_1"><cast_shadows>0</cast_shadows><pose>-4.5 -4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v1_2"><cast_shadows>0</cast_shadows><pose>-1.5 -4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v1_3"><cast_shadows>0</cast_shadows><pose> 1.5 -4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v1_4"><cast_shadows>0</cast_shadows><pose> 4.5 -4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v2_1"><cast_shadows>0</cast_shadows><pose>-4.5 -1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v2_2"><cast_shadows>0</cast_shadows><pose>-1.5 -1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v2_3"><cast_shadows>0</cast_shadows><pose> 1.5 -1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v2_4"><cast_shadows>0</cast_shadows><pose> 4.5 -1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v3_1"><cast_shadows>0</cast_shadows><pose>-4.5 1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v3_2"><cast_shadows>0</cast_shadows><pose>-1.5 1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v3_3"><cast_shadows>0</cast_shadows><pose> 1.5 1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v3_4"><cast_shadows>0</cast_shadows><pose> 4.5 1.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v4_1"><cast_shadows>0</cast_shadows><pose>-4.5 4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v4_2"><cast_shadows>0</cast_shadows><pose>-1.5 4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v4_3"><cast_shadows>0</cast_shadows><pose> 1.5 4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
<visual name="v4_4"><cast_shadows>0</cast_shadows><pose> 4.5 4.5 0 0 0 0</pose><geometry><cylinder><radius>0.1</radius><length>0.05</length></cylinder></geometry><material><script><uri>file://media/materials/scripts/gazebo.material</uri><name>Gazebo/WhiteGlow</name></script><emissive>0.5 0.5 0.5 1</emissive></material></visual>
|
||||
</link>
|
||||
</model>
|
||||
|
||||
<light name='l1_1' type='point'><pose>-4.5 -4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l1_2' type='point'><pose>-1.5 -4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l1_3' type='point'><pose> 1.5 -4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l1_4' type='point'><pose> 4.5 -4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l2_1' type='point'><pose>-4.5 -1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l2_2' type='point'><pose>-1.5 -1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l2_3' type='point'><pose> 1.5 -1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l2_4' type='point'><pose> 4.5 -1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l3_1' type='point'><pose>-4.5 1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l3_2' type='point'><pose>-1.5 1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l3_3' type='point'><pose> 1.5 1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l3_4' type='point'><pose> 4.5 1.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l4_1' type='point'><pose>-4.5 4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l4_2' type='point'><pose>-1.5 4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l4_3' type='point'><pose> 1.5 4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
<light name='l4_4' type='point'><pose> 4.5 4.5 2.45 0 0 0</pose><diffuse>0.3 0.3 0.3 1</diffuse><specular>0.1 0.1 0.1 1</specular><attenuation><range>6</range><constant>0.2</constant><linear>0.05</linear><quadratic>0.1</quadratic></attenuation><cast_shadows>0</cast_shadows></light>
|
||||
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_n1</name><pose>-3.75 3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_n2</name><pose>-1.25 3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_n3</name><pose> 1.25 3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_n4</name><pose> 3.75 3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_s1</name><pose>-3.75 -3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_s2</name><pose>-1.25 -3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_s3</name><pose> 1.25 -3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_s4</name><pose> 3.75 -3.75 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_e1</name><pose>3.75 -1.25 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_e2</name><pose>3.75 1.25 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_w1</name><pose>-3.75 -1.25 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
<include><uri>model://checkerboard_plane</uri><name>floor_w2</name><pose>-3.75 1.25 0.01 0 0 0</pose><scale>0.3125 0.3125 1</scale></include>
|
||||
|
||||
</world>
|
||||
</sdf>
|
||||
Reference in New Issue
Block a user