Initial Commit
This commit is contained in:
12
models/custom_ugv/model.config
Normal file
12
models/custom_ugv/model.config
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<model>
|
||||
<name>Custom UGV</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.6">model.sdf</sdf>
|
||||
<author>
|
||||
<name>UAV-UGV Simulation</name>
|
||||
</author>
|
||||
<description>
|
||||
Custom ground vehicle with cameras for GPS-denied navigation.
|
||||
</description>
|
||||
</model>
|
||||
159
models/custom_ugv/model.sdf
Normal file
159
models/custom_ugv/model.sdf
Normal file
@@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" ?>
|
||||
<sdf version="1.6">
|
||||
<model name="custom_ugv">
|
||||
<static>false</static>
|
||||
|
||||
<link name="base_link">
|
||||
<pose>0 0 0.1 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>5.0</mass>
|
||||
<inertia>
|
||||
<ixx>0.1</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.15</iyy><iyz>0</iyz><izz>0.1</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<collision name="collision">
|
||||
<geometry><box><size>0.4 0.3 0.15</size></box></geometry>
|
||||
</collision>
|
||||
<visual name="visual">
|
||||
<geometry><box><size>0.4 0.3 0.15</size></box></geometry>
|
||||
<material><ambient>0.3 0.3 0.8 1</ambient></material>
|
||||
</visual>
|
||||
</link>
|
||||
|
||||
<link name="left_wheel">
|
||||
<pose>0 0.175 0.05 -1.5708 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="collision">
|
||||
<geometry><cylinder><radius>0.05</radius><length>0.04</length></cylinder></geometry>
|
||||
<surface>
|
||||
<friction><ode><mu>1.0</mu><mu2>1.0</mu2></ode></friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<visual name="visual">
|
||||
<geometry><cylinder><radius>0.05</radius><length>0.04</length></cylinder></geometry>
|
||||
<material><ambient>0.1 0.1 0.1 1</ambient></material>
|
||||
</visual>
|
||||
</link>
|
||||
|
||||
<link name="right_wheel">
|
||||
<pose>0 -0.175 0.05 -1.5708 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="collision">
|
||||
<geometry><cylinder><radius>0.05</radius><length>0.04</length></cylinder></geometry>
|
||||
<surface>
|
||||
<friction><ode><mu>1.0</mu><mu2>1.0</mu2></ode></friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<visual name="visual">
|
||||
<geometry><cylinder><radius>0.05</radius><length>0.04</length></cylinder></geometry>
|
||||
<material><ambient>0.1 0.1 0.1 1</ambient></material>
|
||||
</visual>
|
||||
</link>
|
||||
|
||||
<link name="caster">
|
||||
<pose>-0.15 0 0.025 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.1</mass>
|
||||
<inertia>
|
||||
<ixx>0.0001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.0001</iyy><iyz>0</iyz><izz>0.0001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<collision name="collision">
|
||||
<geometry><sphere><radius>0.025</radius></sphere></geometry>
|
||||
<surface>
|
||||
<friction><ode><mu>0.0</mu><mu2>0.0</mu2></ode></friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<visual name="visual">
|
||||
<geometry><sphere><radius>0.025</radius></sphere></geometry>
|
||||
<material><ambient>0.1 0.1 0.1 1</ambient></material>
|
||||
</visual>
|
||||
</link>
|
||||
|
||||
<joint name="left_wheel_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>left_wheel</child>
|
||||
<axis><xyz>0 0 1</xyz></axis>
|
||||
</joint>
|
||||
|
||||
<joint name="right_wheel_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>right_wheel</child>
|
||||
<axis><xyz>0 0 1</xyz></axis>
|
||||
</joint>
|
||||
|
||||
<joint name="caster_joint" type="ball">
|
||||
<parent>base_link</parent>
|
||||
<child>caster</child>
|
||||
</joint>
|
||||
|
||||
<link name="camera_link">
|
||||
<pose>0.22 0 0.15 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.01</mass>
|
||||
<inertia>
|
||||
<ixx>0.00001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.00001</iyy><iyz>0</iyz><izz>0.00001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="visual">
|
||||
<geometry><box><size>0.02 0.04 0.02</size></box></geometry>
|
||||
<material><ambient>0 0 0 1</ambient></material>
|
||||
</visual>
|
||||
<sensor name="camera" type="camera">
|
||||
<camera>
|
||||
<horizontal_fov>1.57</horizontal_fov>
|
||||
<image><width>640</width><height>480</height><format>R8G8B8</format></image>
|
||||
<clip><near>0.1</near><far>50</far></clip>
|
||||
</camera>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>30</update_rate>
|
||||
<plugin name="camera_plugin" filename="libgazebo_ros_camera.so">
|
||||
<ros>
|
||||
<namespace>/ugv</namespace>
|
||||
<remapping>image_raw:=camera/forward/image_raw</remapping>
|
||||
<remapping>camera_info:=camera/forward/camera_info</remapping>
|
||||
</ros>
|
||||
<camera_name>forward_camera</camera_name>
|
||||
<frame_name>camera_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="camera_joint" type="fixed">
|
||||
<parent>base_link</parent>
|
||||
<child>camera_link</child>
|
||||
</joint>
|
||||
|
||||
<plugin name="diff_drive" filename="libgazebo_ros_diff_drive.so">
|
||||
<ros><namespace>/ugv</namespace></ros>
|
||||
<left_joint>left_wheel_joint</left_joint>
|
||||
<right_joint>right_wheel_joint</right_joint>
|
||||
<wheel_separation>0.35</wheel_separation>
|
||||
<wheel_diameter>0.1</wheel_diameter>
|
||||
<max_wheel_torque>5</max_wheel_torque>
|
||||
<max_wheel_acceleration>2.0</max_wheel_acceleration>
|
||||
<command_topic>cmd_vel</command_topic>
|
||||
<odometry_topic>odom</odometry_topic>
|
||||
<odometry_frame>odom</odometry_frame>
|
||||
<robot_base_frame>base_link</robot_base_frame>
|
||||
<publish_odom>true</publish_odom>
|
||||
<publish_odom_tf>true</publish_odom_tf>
|
||||
<publish_wheel_tf>true</publish_wheel_tf>
|
||||
</plugin>
|
||||
</model>
|
||||
</sdf>
|
||||
13
models/iris_with_camera/model.config
Normal file
13
models/iris_with_camera/model.config
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<model>
|
||||
<name>Iris with Camera</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.6">model.sdf</sdf>
|
||||
<author>
|
||||
<name>UAV-UGV Simulation</name>
|
||||
<email>developer@example.com</email>
|
||||
</author>
|
||||
<description>
|
||||
Iris quadcopter with forward and downward cameras for GPS-denied navigation.
|
||||
</description>
|
||||
</model>
|
||||
128
models/iris_with_camera/model.sdf
Normal file
128
models/iris_with_camera/model.sdf
Normal file
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" ?>
|
||||
<sdf version="1.6">
|
||||
<model name="iris_with_camera">
|
||||
<include>
|
||||
<uri>model://iris</uri>
|
||||
</include>
|
||||
|
||||
<link name="forward_camera_link">
|
||||
<pose>0.1 0 0 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.01</mass>
|
||||
<inertia>
|
||||
<ixx>0.00001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.00001</iyy><iyz>0</iyz><izz>0.00001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="visual">
|
||||
<geometry><box><size>0.02 0.02 0.02</size></box></geometry>
|
||||
<material><ambient>0 0 0 1</ambient></material>
|
||||
</visual>
|
||||
<sensor name="forward_camera" type="camera">
|
||||
<camera>
|
||||
<horizontal_fov>1.57</horizontal_fov>
|
||||
<image>
|
||||
<width>640</width>
|
||||
<height>480</height>
|
||||
<format>R8G8B8</format>
|
||||
</image>
|
||||
<clip><near>0.1</near><far>100</far></clip>
|
||||
</camera>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>30</update_rate>
|
||||
<visualize>true</visualize>
|
||||
<plugin name="camera_controller" filename="libgazebo_ros_camera.so">
|
||||
<ros>
|
||||
<namespace>/uav</namespace>
|
||||
<remapping>image_raw:=camera/forward/image_raw</remapping>
|
||||
<remapping>camera_info:=camera/forward/camera_info</remapping>
|
||||
</ros>
|
||||
<camera_name>forward_camera</camera_name>
|
||||
<frame_name>forward_camera_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="forward_camera_joint" type="fixed">
|
||||
<parent>iris::base_link</parent>
|
||||
<child>forward_camera_link</child>
|
||||
</joint>
|
||||
|
||||
<link name="downward_camera_link">
|
||||
<pose>0 0 -0.05 0 1.5708 0</pose>
|
||||
<inertial>
|
||||
<mass>0.01</mass>
|
||||
<inertia>
|
||||
<ixx>0.00001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.00001</iyy><iyz>0</iyz><izz>0.00001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="visual">
|
||||
<geometry><box><size>0.02 0.02 0.02</size></box></geometry>
|
||||
<material><ambient>0.3 0.3 0.3 1</ambient></material>
|
||||
</visual>
|
||||
<sensor name="downward_camera" type="camera">
|
||||
<camera>
|
||||
<horizontal_fov>1.2</horizontal_fov>
|
||||
<image>
|
||||
<width>320</width>
|
||||
<height>240</height>
|
||||
<format>R8G8B8</format>
|
||||
</image>
|
||||
<clip><near>0.1</near><far>50</far></clip>
|
||||
</camera>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>30</update_rate>
|
||||
<visualize>false</visualize>
|
||||
<plugin name="camera_controller" filename="libgazebo_ros_camera.so">
|
||||
<ros>
|
||||
<namespace>/uav</namespace>
|
||||
<remapping>image_raw:=camera/downward/image_raw</remapping>
|
||||
<remapping>camera_info:=camera/downward/camera_info</remapping>
|
||||
</ros>
|
||||
<camera_name>downward_camera</camera_name>
|
||||
<frame_name>downward_camera_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="downward_camera_joint" type="fixed">
|
||||
<parent>iris::base_link</parent>
|
||||
<child>downward_camera_link</child>
|
||||
</joint>
|
||||
|
||||
<link name="rangefinder_link">
|
||||
<pose>0 0 -0.06 0 1.5708 0</pose>
|
||||
<inertial>
|
||||
<mass>0.005</mass>
|
||||
<inertia>
|
||||
<ixx>0.000001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.000001</iyy><iyz>0</iyz><izz>0.000001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<sensor name="rangefinder" type="ray">
|
||||
<ray>
|
||||
<scan>
|
||||
<horizontal><samples>1</samples><resolution>1</resolution><min_angle>0</min_angle><max_angle>0</max_angle></horizontal>
|
||||
</scan>
|
||||
<range><min>0.1</min><max>10</max><resolution>0.01</resolution></range>
|
||||
</ray>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>30</update_rate>
|
||||
<plugin name="range_plugin" filename="libgazebo_ros_ray_sensor.so">
|
||||
<ros>
|
||||
<namespace>/uav</namespace>
|
||||
<remapping>~/out:=rangefinder/range</remapping>
|
||||
</ros>
|
||||
<output_type>sensor_msgs/Range</output_type>
|
||||
<frame_name>rangefinder_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="rangefinder_joint" type="fixed">
|
||||
<parent>iris::base_link</parent>
|
||||
<child>rangefinder_link</child>
|
||||
</joint>
|
||||
</model>
|
||||
</sdf>
|
||||
12
models/iris_with_sensors/model.config
Normal file
12
models/iris_with_sensors/model.config
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<model>
|
||||
<name>Iris with Sensors</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.6">model.sdf</sdf>
|
||||
<author>
|
||||
<name>UAV-UGV Simulation</name>
|
||||
</author>
|
||||
<description>
|
||||
Iris quadcopter with optical flow sensor for GPS-denied navigation.
|
||||
</description>
|
||||
</model>
|
||||
88
models/iris_with_sensors/model.sdf
Normal file
88
models/iris_with_sensors/model.sdf
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" ?>
|
||||
<sdf version="1.6">
|
||||
<model name="iris_with_sensors">
|
||||
<include>
|
||||
<uri>model://iris</uri>
|
||||
</include>
|
||||
|
||||
<link name="optical_flow_link">
|
||||
<pose>0 0 -0.05 0 1.5708 0</pose>
|
||||
<inertial>
|
||||
<mass>0.01</mass>
|
||||
<inertia>
|
||||
<ixx>0.00001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.00001</iyy><iyz>0</iyz><izz>0.00001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="visual">
|
||||
<geometry><cylinder><radius>0.01</radius><length>0.02</length></cylinder></geometry>
|
||||
<material><ambient>0.2 0.2 0.2 1</ambient></material>
|
||||
</visual>
|
||||
<sensor name="optical_flow_camera" type="camera">
|
||||
<camera>
|
||||
<horizontal_fov>1.0</horizontal_fov>
|
||||
<image>
|
||||
<width>160</width>
|
||||
<height>120</height>
|
||||
<format>R8G8B8</format>
|
||||
</image>
|
||||
<clip><near>0.1</near><far>20</far></clip>
|
||||
</camera>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>60</update_rate>
|
||||
<plugin name="optical_flow_plugin" filename="libgazebo_ros_camera.so">
|
||||
<ros>
|
||||
<namespace>/uav</namespace>
|
||||
<remapping>image_raw:=optical_flow/image_raw</remapping>
|
||||
</ros>
|
||||
<camera_name>optical_flow</camera_name>
|
||||
<frame_name>optical_flow_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="optical_flow_joint" type="fixed">
|
||||
<parent>iris::base_link</parent>
|
||||
<child>optical_flow_link</child>
|
||||
</joint>
|
||||
|
||||
<link name="imu_link">
|
||||
<pose>0 0 0 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.005</mass>
|
||||
<inertia>
|
||||
<ixx>0.000001</ixx><ixy>0</ixy><ixz>0</ixz>
|
||||
<iyy>0.000001</iyy><iyz>0</iyz><izz>0.000001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<sensor name="imu_sensor" type="imu">
|
||||
<imu>
|
||||
<angular_velocity>
|
||||
<x><noise type="gaussian"><mean>0</mean><stddev>0.0002</stddev></noise></x>
|
||||
<y><noise type="gaussian"><mean>0</mean><stddev>0.0002</stddev></noise></y>
|
||||
<z><noise type="gaussian"><mean>0</mean><stddev>0.0002</stddev></noise></z>
|
||||
</angular_velocity>
|
||||
<linear_acceleration>
|
||||
<x><noise type="gaussian"><mean>0</mean><stddev>0.017</stddev></noise></x>
|
||||
<y><noise type="gaussian"><mean>0</mean><stddev>0.017</stddev></noise></y>
|
||||
<z><noise type="gaussian"><mean>0</mean><stddev>0.017</stddev></noise></z>
|
||||
</linear_acceleration>
|
||||
</imu>
|
||||
<always_on>1</always_on>
|
||||
<update_rate>200</update_rate>
|
||||
<plugin name="imu_plugin" filename="libgazebo_ros_imu_sensor.so">
|
||||
<ros>
|
||||
<namespace>/uav</namespace>
|
||||
<remapping>~/out:=imu/data</remapping>
|
||||
</ros>
|
||||
<frame_name>imu_link</frame_name>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</link>
|
||||
|
||||
<joint name="imu_joint" type="fixed">
|
||||
<parent>iris::base_link</parent>
|
||||
<child>imu_link</child>
|
||||
</joint>
|
||||
</model>
|
||||
</sdf>
|
||||
Reference in New Issue
Block a user