Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when calling WorldControl service over model with AckermannSteering plugin #2465

Closed
zhileiren opened this issue Jul 8, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@zhileiren
Copy link

Environment

  • OS Version: Ubuntu 22.04
  • Source or binary build?
    source build
    gz-sim version: 5641ef2
    built with
    gcc version: 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
    build options: -DCMAKE_BUILD_TYPE=Coverage

Description

  • Expected behavior: Gazebo doesn't crash
  • Actual behavior: Gazebo crashes

Steps to reproduce

  1. gz sim a.txt -r

  2. dynamically creating a model with AckermannSteering plugin:

gz service --timeout 10000 -s /world/world_0/create --reptype gz.msgs.Boolean --reqtype gz.msgs.EntityFactory --req 'sdf: "<sdf version=\"1.11\"><model name=\"vehicle_blue\">\n      <pose>0 2 0.325 0 -0 0</pose>\n\n      <link name=\"chassis\">\n        <pose>-0.151427 -0 0.175 0 -0 0</pose>\n        <inertial>\n          <mass>1.14395</mass>\n          <inertia>\n            <ixx>0.126164</ixx>\n            <ixy>0</ixy>\n            <ixz>0</ixz>\n            <iyy>0.416519</iyy>\n            <iyz>0</iyz>\n            <izz>0.481014</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"visual\">\n          <geometry>\n            <box>\n              <size>2.01142 1 0.568726</size>\n            </box>\n          </geometry>\n          <material>\n            <ambient>0.5 0.5 1.0 1</ambient>\n            <diffuse>0.5 0.5 1.0 1</diffuse>\n            <specular>0.0 0.0 1.0 1</specular>\n          </material>\n        </visual>\n        <collision name=\"collision\">\n          <geometry>\n            <box>\n              <size>2.01142 1 0.568726</size>\n            </box>\n          </geometry>\n        </collision>\n      </link>\n\n      <link name=\"front_left_wheel\">\n        <pose>0.554283 0.625029 -0.025 -1.5707 0 0</pose>\n        <inertial>\n          <mass>2</mass>\n          <inertia>\n            <ixx>0.145833</ixx>\n            <ixy>0</ixy>\n            <ixz>0</ixz>\n            <iyy>0.145833</iyy>\n            <iyz>0</iyz>\n            <izz>0.125</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"visual\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>0.2 0.2 0.2 1</ambient>\n            <diffuse>0.2 0.2 0.2 1</diffuse>\n            <specular>0.2 0.2 0.2 1</specular>\n          </material>\n        </visual>\n        <collision name=\"collision\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>0.5</mu>\n                <mu2>1.0</mu2>\n                <fdir1>0 0 1</fdir1>\n              </ode>\n              <bullet>\n                <friction>0.5</friction>\n                <friction2>1</friction2>\n                <rolling_friction>0.1</rolling_friction>\n              </bullet>\n            </friction>\n          </surface>\n        </collision>\n      </link>\n\n      <link name=\"rear_left_wheel\">\n        <pose>-0.957138 0.625029 -0.025 -1.5707 0 0</pose>\n        <inertial>\n          <mass>2</mass>\n          <inertia>\n            <ixx>0.145833</ixx>\n            <ixy>0</ixy>\n            <ixz>0</ixz>\n            <iyy>0.145833</iyy>\n            <iyz>0</iyz>\n            <izz>0.125</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"visual\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>0.2 0.2 0.2 1</ambient>\n            <diffuse>0.2 0.2 0.2 1</diffuse>\n            <specular>0.2 0.2 0.2 1</specular>\n          </material>\n        </visual>\n        <collision name=\"collision\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>0.5</mu>\n                <mu2>1.0</mu2>\n                <fdir1>0 0 1</fdir1>\n              </ode>\n              <bullet>\n                <friction>0.5</friction>\n                <friction2>1</friction2>\n                <rolling_friction>0.5</rolling_friction>\n              </bullet>\n            </friction>\n          </surface>\n        </collision>\n      </link>\n\n      <link name=\"front_right_wheel\">\n        <pose>0.554282 -0.625029 -0.025 -1.5707 0 0</pose>\n        <inertial>\n          <mass>2</mass>\n          <inertia>\n            <ixx>0.145833</ixx>\n            <ixy>0</ixy>\n            <ixz>0</ixz>\n            <iyy>0.145833</iyy>\n            <iyz>0</iyz>\n            <izz>0.125</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"visual\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>0.2 0.2 0.2 1</ambient>\n            <diffuse>0.2 0.2 0.2 1</diffuse>\n            <specular>0.2 0.2 0.2 1</specular>\n          </material>\n        </visual>\n        <collision name=\"collision\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>0.5</mu>\n                <mu2>1.0</mu2>\n                <fdir1>0 0 1</fdir1>\n              </ode>\n              <bullet>\n                <friction>0.5</friction>\n                <friction2>1</friction2>\n                <rolling_friction>0.1</rolling_friction>\n              </bullet>\n            </friction>\n          </surface>\n        </collision>\n      </link>\n\n      <link name=\"rear_right_wheel\">\n        <pose>-0.957138 -0.625029 -0.025 -1.5707 0 0</pose>\n        <inertial>\n          <mass>2</mass>\n          <inertia>\n            <ixx>0.145833</ixx>\n            <ixy>0</ixy>\n            <ixz>0</ixz>\n            <iyy>0.145833</iyy>\n            <iyz>0</iyz>\n            <izz>0.125</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"visual\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>0.2 0.2 0.2 1</ambient>\n            <diffuse>0.2 0.2 0.2 1</diffuse>\n            <specular>0.2 0.2 0.2 1</specular>\n          </material>\n        </visual>\n        <collision name=\"collision\">\n          <geometry>\n            <cylinder>\n              <length>0.15</length>\n              <radius>0.3</radius>\n            </cylinder>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>0.5</mu>\n                <mu2>1.0</mu2>\n                <fdir1>0 0 1</fdir1>\n              </ode>\n              <bullet>\n                <friction>0.5</friction>\n                <friction2>1</friction2>\n                <rolling_friction>0.5</rolling_friction>\n              </bullet>\n            </friction>\n          </surface>\n        </collision>\n      </link>\n\n      <link name=\"front_left_wheel_steering_link\">\n        <pose>0.554283 0.5 0.02 0 0 0</pose>\n        <inertial>\n          <mass>0.5</mass>\n          <inertia>\n            <ixx>0.0153</ixx>\n            <iyy>0.025</iyy>\n            <izz>0.0153</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"steering_link_visual\">\n          <pose>0 0 0 0 0 0</pose>\n          <geometry>\n            <cylinder>\n              <length>0.1</length>\n              <radius>0.03</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>1 1 1</ambient>\n            <diffuse>1 1 1</diffuse>\n          </material>\n        </visual>\n      </link>\n\n      <link name=\"front_right_wheel_steering_link\">\n        <pose>0.554283 -0.5 0.02 0 0 0</pose>\n        <inertial>\n          <mass>0.5</mass>\n          <inertia>\n            <ixx>0.0153</ixx>\n            <iyy>0.025</iyy>\n            <izz>0.0153</izz>\n          </inertia>\n        </inertial>\n        <visual name=\"steering_link_visual\">\n          <pose>0 0 0 0 0 0</pose>\n          <geometry>\n            <cylinder>\n              <length>0.1</length>\n              <radius>0.03</radius>\n            </cylinder>\n          </geometry>\n          <material>\n            <ambient>1 1 1</ambient>\n            <diffuse>1 1 1</diffuse>\n          </material>\n        </visual>\n      </link>\n\n      <joint name=\"front_left_wheel_steering_joint\" type=\"revolute\">\n        <child>front_left_wheel_steering_link</child>\n        <parent>chassis</parent>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-0.6</lower>\n            <upper>+0.6</upper>\n            <velocity>1.0</velocity>\n            <effort>25</effort>\n          </limit>\n          <use_parent_model_frame>1</use_parent_model_frame>\n        </axis>\n      </joint>\n\n      <joint name=\"front_right_wheel_steering_joint\" type=\"revolute\">\n        <parent>chassis</parent>\n        <child>front_right_wheel_steering_link</child>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-0.6</lower>\n            <upper>+0.6</upper>\n            <velocity>1.0</velocity>\n            <effort>25</effort>\n          </limit>\n        </axis>\n      </joint>\n\n      <joint name=\"front_left_wheel_joint\" type=\"revolute\">\n        <parent>front_left_wheel_steering_link</parent>\n        <child>front_left_wheel</child>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-1.79769e+308</lower>\n            <upper>1.79769e+308</upper>\n          </limit>\n        </axis>\n      </joint>\n\n      <joint name=\"front_right_wheel_joint\" type=\"revolute\">\n        <parent>front_right_wheel_steering_link</parent>\n        <child>front_right_wheel</child>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-1.79769e+308</lower>\n            <upper>1.79769e+308</upper>\n          </limit>\n        </axis>\n      </joint>\n\n      <joint name=\"rear_left_wheel_joint\" type=\"revolute\">\n        <parent>chassis</parent>\n        <child>rear_left_wheel</child>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-1.79769e+308</lower>\n            <upper>1.79769e+308</upper>\n          </limit>\n        </axis>\n      </joint>\n\n      <joint name=\"rear_right_wheel_joint\" type=\"revolute\">\n        <parent>chassis</parent>\n        <child>rear_right_wheel</child>\n        <axis>\n          <xyz>0 0 1</xyz>\n          <limit>\n            <lower>-1.79769e+308</lower>\n            <upper>1.79769e+308</upper>\n          </limit>\n        </axis>\n      </joint>\n\n      <plugin filename=\"gz-sim-ackermann-steering-system\" name=\"gz::sim::systems::AckermannSteering\">\n        <left_joint>front_left_wheel_joint</left_joint>\n        <left_joint>rear_left_wheel_joint</left_joint>\n        <right_joint>front_right_wheel_joint</right_joint>\n        <right_joint>rear_right_wheel_joint</right_joint>\n        <left_steering_joint>front_left_wheel_steering_joint</left_steering_joint>\n        <right_steering_joint>front_right_wheel_steering_joint</right_steering_joint>\n        <kingpin_width>1.0</kingpin_width>\n        <steering_limit>0.5</steering_limit>\n        <wheel_base>1.0</wheel_base>\n        <wheel_separation>1.25</wheel_separation>\n        <wheel_radius>0.3</wheel_radius>\n        <min_velocity>-1</min_velocity>\n        <max_velocity>1</max_velocity>\n        <min_acceleration>-3</min_acceleration>\n        <max_acceleration>3</max_acceleration>\n      </plugin>\n\n    </model></sdf>"
pose {
  position {
    x: 1.697057974471674
    y: -5.807148102869744
    z: 0.23030063614806195
  }
}
name: "model"
allow_renaming: true'
  1. call service /world/world_0/control
gz service --timeout 10000 -s /world/world_0/control --reptype gz.msgs.Boolean --reqtype gz.msgs.WorldControl --req 'header {
  stamp {
    sec: 3589563572
    nsec: 28616
  }
}
pause: true
step: true
multi_step: 3324019261
reset {
  header {
    stamp {
      sec: 1840125899
      nsec: 18679
    }
  }
  all: true
  time_only: true
  model_only: true
}
seed: 4099918180
run_to_sim_time {
  sec: 1846651340
  nsec: 4481
}'

The crash could also be reproduced by extracting a.tar.gz
, and run

bash a.sh

Output

Stack trace (most recent call last) in thread 96154:
11   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
10   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff17f1de84f, in
9    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff17f14cac2, in
8    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7ff17ae89252, in
7    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b7f5f5, in
6    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b7f635, in
5    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b7f6a9, in
4    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b7f77b, in
3    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b7f813, in
2    Object "/home/ren/play/robot/workspace/install/lib/libgz-sim8.so.8", at 0x7ff178b6f9a3, in
1    Object "/data/play/robot/workspace/install/lib/gz-sim-8/plugins/libgz-sim-ackermann-steering-system.so", at 0x7ff13baf8097, in gz::sim::v8::systems::AckermannSteering::PostUpdate(gz::sim::v8::UpdateInfo const&, gz::sim::v8::EntityComponentManager const&)
0    Object "/data/play/robot/workspace/install/lib/gz-sim-8/plugins/libgz-sim-ackermann-steering-system.so", at 0x7ff13bafa472, in gz::sim::v8::systems::AckermannSteeringPrivate::UpdateVelocity(gz::sim::v8::UpdateInfo const&, gz::sim::v8::EntityComponentManager const&)
Segmentation fault (Address not mapped to object [(nil)])
@arjo129
Copy link
Contributor

arjo129 commented Jul 19, 2024

#2232 Has been merged, that resolves this problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Archived in project
Development

No branches or pull requests

2 participants