You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

586 lines
24 KiB

<?xml version="1.0" encoding="UTF-8"?>
<sdf version="1.9">
<model name="uuv_bluerov2_heavy">
<pose>0 0 -96.5 0 0 0</pose>
<link name="base_link">
<pose>0 0 0 0 -0 0</pose>
<inertial>
<mass>11</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_link_collision'>
<pose>0 0 0 0 -0 0</pose>
<geometry>
<box>
<size>0.5 0.5 0.5</size> <!-- Size of the box: To be adjusted, copy-pasted
from omnicopter -->
</box>
</geometry>
<surface>
<contact>
<ode>
<min_depth>0.001</min_depth>
<max_vel>0</max_vel>
</ode>
</contact>
<friction>
<ode />
</friction>
</surface>
</collision>
<visual name="base_link_visual">
<pose>0 0 -0.06 0 -0 0</pose>
<geometry>
<mesh>
<uri>model://uuv_bluerov2_heavy/meshes/BlueROV2heavy.dae</uri>
</mesh>
</geometry>
</visual>
<sensor name="air_pressure_sensor" type="air_pressure">
<gz_frame_id>base_link</gz_frame_id>
<always_on>1</always_on>
<update_rate>50</update_rate>
<air_pressure>
<pressure>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.01</stddev>
</noise>
</pressure>
</air_pressure>
</sensor>
<sensor name="imu_sensor" type="imu">
<gz_frame_id>base_link</gz_frame_id>
<always_on>1</always_on>
<update_rate>250</update_rate>
<imu>
<angular_velocity>
<x>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00018665</stddev>
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
</noise>
</x>
<y>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00018665</stddev>
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
</noise>
</y>
<z>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00018665</stddev>
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
</noise>
</z>
</angular_velocity>
<linear_acceleration>
<x>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00186</stddev>
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
</noise>
</x>
<y>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00186</stddev>
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
</noise>
</y>
<z>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.00186</stddev>
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
</noise>
</z>
</linear_acceleration>
</imu>
</sensor>
<sensor name="navsat_sensor" type="navsat">
<gz_frame_id>base_link</gz_frame_id>
<always_on>1</always_on>
<update_rate>30</update_rate>
</sensor>
</link>
<joint name="thruster0_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster0</child>
</joint>
<link name="thruster0">
<pose>0.14 -0.10 -0.06 0 1.570796 -2.356194</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster0_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster1_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster1</child>
</joint>
<link name="thruster1">
<pose>0.14 0.10 -0.06 0 1.570796 2.356194</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster1_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster2_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster2</child>
</joint>
<link name="thruster2">
<pose>-0.14 -0.10 -0.06 0 1.570796 -0.78539815</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster2_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster3_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster3</child>
</joint>
<link name="thruster3">
<pose>-0.14 0.10 -0.06 0 1.570796 0.78539815</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster3_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster4_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster4</child>
</joint>
<link name="thruster4">
<pose>0.12 -0.22 0.0 3.1415 0 0</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster4_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster5_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster5</child>
</joint>
<link name="thruster5">
<pose>0.12 0.22 0.0 3.1415 0 0</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster5_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster6_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster6</child>
</joint>
<link name="thruster6">
<pose>-0.12 -0.22 0.0 3.1415 0 0</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster6_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name="thruster7_joint" type="revolute">
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
</axis>
<parent>base_link</parent>
<child>thruster7</child>
</joint>
<link name="thruster7">
<pose>-0.12 0.22 0.0 3.1415 0 0</pose>
<inertial>
<mass>1e-10</mass>
<inertia>
<ixx>1e-06</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-06</iyy>
<iyz>0</iyz>
<izz>1e-06</izz>
</inertia>
</inertial>
<visual name="thruster7_visual">
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://uuv_bluerov2_heavy/meshes/prop.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster0_joint</jointName>
<linkName>thruster0</linkName>
<motorNumber>0</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster1_joint</jointName>
<linkName>thruster1</linkName>
<motorNumber>1</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster2_joint</jointName>
<linkName>thruster2</linkName>
<motorNumber>2</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster3_joint</jointName>
<linkName>thruster3</linkName>
<motorNumber>3</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster4_joint</jointName>
<linkName>thruster4</linkName>
<motorNumber>4</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster5_joint</jointName>
<linkName>thruster5</linkName>
<motorNumber>5</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster6_joint</jointName>
<linkName>thruster6</linkName>
<motorNumber>6</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="libGenericMotorModelPlugin.so" name="gz::sim::systems::GenericMotorModel">
<jointName>thruster7_joint</jointName>
<linkName>thruster7</linkName>
<motorNumber>7</motorNumber>
<turningDirection>ccw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1100.0</maxRotVelocity>
<motorConstant>10</motorConstant>
<momentConstant>0.01</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<rotorDragCoefficient>0</rotorDragCoefficient>
<rollingMomentCoefficient>0</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>0.025</rotorVelocitySlowdownSim>
<motorType>force_polynomial</motorType>
<controlMethod>duty_cycle</controlMethod>
<minCommand>0.00</minCommand>
<minDutyCycle>1100</minDutyCycle>
<maxDutyCycle>1900</maxDutyCycle>
<bidirectionalMotor>1</bidirectionalMotor>
<positiveThrustPolynomial>[0.0, 4.53, 0.0, 0.0, 0.0, 0.0]</positiveThrustPolynomial>
<negativeThrustPolynomial>[0.0, 3.52, 0.0, 0.0, 0.0, 0.0]</negativeThrustPolynomial>
</plugin>
<plugin filename="gz-sim-odometry-publisher-system"
name="gz::sim::systems::OdometryPublisher">
<dimensions>3</dimensions>
</plugin>
</model>
</sdf>