I tried to adjust the collision objects, or delete them all as it looks like something with collision objects. But the result was still the same. My setup is Gazebo garden and ubuntu 20.04
I tried to adjust the collision objects, or delete them all as it looks like something with collision objects. But the result was still the same.
I tried to adjust the collision objects, or delete them all as it looks like something with collision objects. But the result was still the same. My setup is Gazebo garden and ubuntu 20.04
Adding joint plugins cause ODE internal error
I designed a model in Fusion and exported it to to SDF using SDFusion script.
Till now everything seems to work fine, the 2 of the 4 joints did not cause any problems and worked ok, but when I add the plugin for the other 2 joints I get this error:
ODE INTERNAL ERROR 1: assertion "aabbBound >= dMinIntExact && aabbBound < dMaxIntExact" failed in collide() [collision_space.cpp:460]
Stack trace (most recent call last):
#31 Object "gz sim --verbose=1 -r -s /home/joseph/px4_14/PX4-Autopilot/Tools/simulation/gz/worlds/default.sdf", at 0x557039bab1cd, in _start
#30 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff289a76082, in __libc_start_main
#29 Object "gz sim --verbose=1 -r -s /home/joseph/px4_14/PX4-Autopilot/Tools/simulation/gz/worlds/default.sdf", at 0x557039bab17e, in
#28 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289cf245d, in ruby_run_node
#27 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289ced5f0, in
#26 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e5cd01, in rb_vm_exec
#25 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e565f0, in
#24 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e45815, in
#23 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e5f2ea, in
#22 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e524c4, in
#21 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x7ff285a96714, in
#20 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7ff289e23939, in rb_nogvl
#19 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x7ff285a968fb, in
#18 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x7ff285a41409, in
#17 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x7ff285a41ff4, in
#16 Object "/usr/lib/x86_64-linux-gnu/libgz-sim7-gz.so.7.6.0", at 0x7ff284fefc0d, in runServer
#15 Object "/lib/x86_64-linux-gnu/libgz-sim7.so.7", at 0x7ff284bdf85b, in gz::sim::v7::Server::Run(bool, unsigned long, bool)
#14 Object "/lib/x86_64-linux-gnu/libgz-sim7.so.7", at 0x7ff284beb20e, in
#13 Object "/lib/x86_64-linux-gnu/libgz-sim7.so.7", at 0x7ff284bfbdd2, in gz::sim::v7::SimulationRunner::Run(unsigned long)
#12 Object "/lib/x86_64-linux-gnu/libgz-sim7.so.7", at 0x7ff284bfb570, in gz::sim::v7::SimulationRunner::Step(gz::sim::v7::UpdateInfo const&)
#11 Object "/lib/x86_64-linux-gnu/libgz-sim7.so.7", at 0x7ff284bf4299, in gz::sim::v7::SimulationRunner::UpdateSystems()
#10 Object "/usr/lib/x86_64-linux-gnu/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7ff2745d50a3, in gz::sim::v7::systems::Physics::Update(gz::sim::v7::UpdateInfo const&, gz::sim::v7::EntityComponentManager&)
#9 Object "/usr/lib/x86_64-linux-gnu/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7ff2745beb6a, in gz::sim::v7::systems::PhysicsPrivate::Step(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&)
#8 Object "/usr/lib/x86_64-linux-gnu/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7ff25c7ecb0b, in gz::physics::dartsim::SimulationFeatures::WorldForwardStep(gz::physics::Identity const&, gz::physics::SpecifyData<gz::physics::RequireData<gz::physics::WorldPoses>, gz::physics::ExpectData<gz::physics::ChangedWorldPoses, gz::physics::Contacts, gz::physics::JointPositions> >&, gz::physics::CompositeData&, gz::physics::ExpectData<gz::physics::ApplyExternalForceTorques, gz::physics::ApplyGeneralizedForces, gz::physics::VelocityControlCommands, gz::physics::ServoControlCommands, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&)
#7 Object "/lib/x86_64-linux-gnu/libdart.so.6", at 0x7ff25c4c2d20, in dart::simulation::World::step(bool)
#6 Object "/lib/x86_64-linux-gnu/libdart.so.6", at 0x7ff25c4a77b5, in dart::constraint::ConstraintSolver::solve()
#5 Object "/lib/x86_64-linux-gnu/libdart.so.6", at 0x7ff25c4a627d, in dart::constraint::ConstraintSolver::updateConstraints()
#4 Object "/lib/x86_64-linux-gnu/libdart-collision-ode.so.6", at 0x7ff25c610b6b, in dart::collision::OdeCollisionDetector::collide(dart::collision::CollisionGroup*, dart::collision::CollisionOption const&, dart::collision::CollisionResult*)
#3 Object "/lib/x86_64-linux-gnu/libode.so.8", at 0x7ff25be00456, in dxHashSpace::collide(void*, void (*)(void*, dxGeom*, dxGeom*))
#2 Object "/lib/x86_64-linux-gnu/libode.so.8", at 0x7ff25be08c57, in dDebug
#1 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff289a74858, in abort
#0 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff289a9500b, in gsignal
Aborted (Signal sent by tkill() 68794 1000)
And my sdf file is this:
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="VA25_VTOL_8">
<link name="left_aileron">
<self_collide>false</self_collide>
<pose>0.7838276492938377 0.7437513761748877 0.3226151407425975 0.0 -0.0 0.0</pose>
<inertial>
<pose>0.0 0.0 0.0 0 0 0</pose>
<mass>0.2075195906736219</mass>
<inertia>
<ixx>0.004639328106225412</ixx>
<ixy>0.00011534778131801886</ixy>
<ixz>-3.3698935533152508e-06</ixz>
<iyy>3.622073888525393e-05</iyy>
<iyz>1.1542852124915726e-05</iyz>
<izz>0.004671151873854069</izz>
</inertia>
</inertial>
<collision name="left_aileron_collision">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/left_aileron.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
</collision>
<visual name="left_aileron_visual">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/left_aileron.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="right_aileron">
<self_collide>false</self_collide>
<pose>0.7841266999404997 -0.6799887781862646 0.32260314824080005 0.0 -0.0 0.0</pose>
<inertial>
<pose>0.0 0.0 0.0 0 0 0</pose>
<mass>0.207508066232339</mass>
<inertia>
<ixx>0.004639128589166831</ixx>
<ixy>-0.00011534518553532963</ixy>
<ixz>-3.3698325271302566e-06</ixz>
<iyy>3.621969166158579e-05</iyy>
<iyz>-1.154250086589741e-05</iyz>
<izz>0.004670951608339374</izz>
</inertia>
</inertial>
<collision name="right_aileron_collision">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/right_aileron.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
</collision>
<visual name="right_aileron_visual">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/right_aileron.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="left_ruddervator">
<self_collide>false</self_collide>
<pose>0.019245965210225736 0.15184614204919272 0.4017142660362421 0.0 -0.0 0.0</pose>
<inertial>
<pose>0.0 0.0 0.0 0 0 0</pose>
<mass>0.05522739640235409</mass>
<inertia>
<ixx>0.00038256835251192884</ixx>
<ixy>2.0938677507076166e-05</ixy>
<ixz>2.0893317350946816e-05</ixz>
<iyy>0.00020035459730011527</iyy>
<iyz>-0.00019115648057952797</iyz>
<izz>0.00020036995484959148</izz>
</inertia>
</inertial>
<visual name="left_ruddervator_visual">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/left_ruddervator.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="right_ruddervator">
<self_collide>false</self_collide>
<pose>0.019249698492502014 -0.1515642581504666 0.40148577356656384 0.0 -0.0 0.0</pose>
<inertial>
<pose>0.0 0.0 0.0 0 0 0</pose>
<mass>0.05522723094122592</mass>
<inertia>
<ixx>0.0003825683512394051</ixx>
<ixy>-2.089331982008309e-05</ixy>
<ixz>2.09386804012488e-05</ixz>
<iyy>0.0002003699179794211</iyy>
<iyz>0.0001911564803055427</iyz>
<izz>0.00020035456240694014</izz>
</inertia>
</inertial>
<visual name="right_ruddervator_visual">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/right_ruddervator.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="base">
<self_collide>false</self_collide>
<pose>0.9024726334202346 0.01159045634930561 0.2795115726981846 0.0 -0.0 0.0</pose>
<inertial>
<pose>0.0 0.0 0.0 0 0 0</pose>
<mass>38.85005456400121</mass>
<inertia>
<ixx>4.773862562333618</ixx>
<ixy>-0.002871126139243279</ixy>
<ixz>0.09901728719870735</ixz>
<iyy>2.399717603969929</iyy>
<iyz>-0.020853780404358212</iyz>
<izz>6.9366771796705144</izz>
</inertia>
</inertial>
<collision name="base_collision">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/base.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
</collision>
<visual name="base_visual">
<geometry>
<mesh>
<uri>model://VA25_VTOL_8/meshes/CAD/base.stl</uri>
<scale>0.01 0.01 0.01</scale>
</mesh>
</geometry>
<material>
<ambient>.175 .175 .175 1.0</ambient>
<diffuse>.175 .175 .175 1.0</diffuse>
</material>
</visual>
<gravity>1</gravity>
<velocity_decay/>
<self_collide>0</self_collide>
<sensor name="imu_sensor" type="imu">
<always_on>1</always_on>
<update_rate>250</update_rate>
</sensor>
<sensor name="air_pressure_sensor" type="air_pressure">
<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>
</link>
<joint name="left_aileron_joint" type="revolute">
<parent>base</parent>
<child>left_aileron</child>
<pose>0.016164280041980846 0.034657323358010785 -0.005562735333249265 0 0 0</pose>
<axis>
<xyz>-0.037678878844781175 0.9992887623566787 0.00150715515379122</xyz>
<limit>
<lower>-0.6981317007977318</lower>
<upper>0.6981317007977318</upper>
</limit>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<joint name="right_aileron_joint" type="revolute">
<parent>base</parent>
<child>right_aileron</child>
<pose>0.015865229395315622 -0.03464405123119874 -0.005550742831451671 0 0 0</pose>
<axis>
<xyz>0.03767887884479353 0.9992887623566784 -0.0015071551537917574</xyz>
<limit>
<lower>-0.6981317007977318</lower>
<upper>0.6981317007977318</upper>
</limit>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<joint name="left_ruddervator_joint" type="revolute">
<parent>base</parent>
<child>left_ruddervator</child>
<pose>0.016004672326555003 0.003273461396103041 0.0033801627997988247 0 0 0</pose>
<axis>
<xyz>-0.08156122422289849 0.7047509371058911 0.7047509371058904</xyz>
<limit>
<lower>-0.6981317007977318</lower>
<upper>0.6981317007977318</upper>
</limit>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<joint name="right_ruddervator_joint" type="revolute">
<parent>base</parent>
<child>right_ruddervator</child>
<pose>0.016000939044278732 -0.0034122222669650706 0.003305665389560062 0 0 0</pose>
<axis>
<xyz>-0.08156122422289848 -0.7047509371058905 0.7047509371058909</xyz>
<limit>
<lower>-0.6981317007977318</lower>
<upper>0.6981317007977318</upper>
</limit>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.05984281113</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.05 0.3 0.05</cp>
<area>0.50</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base</link_name>
<control_joint_name>left_aileron_joint</control_joint_name>
<control_joint_rad_to_cl>-1.0</control_joint_rad_to_cl>
</plugin>
<plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>left_aileron_joint</joint_name>
<sub_topic>servo_0</sub_topic>
</plugin>
<plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>right_aileron_joint</joint_name>
<sub_topic>servo_1</sub_topic>
</plugin>
</model>
</sdf>
As this file works as intended and raises no errors, until I add these lines for other 2 joints:
<plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>left_ruddervator_joint</joint_name>
<sub_topic>servo_2</sub_topic>
</plugin>
<plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>right_ruddervator_joint</joint_name>
<sub_topic>servo_3</sub_topic>
</plugin>
I tried to adjust the collision objects, or delete them all as it looks like something with collision objects. But the result was still the same.