ros-controls / gz_ros2_control

Connect the latest version of Gazebo with ros2_control.
https://gazebosim.org
Apache License 2.0
117 stars 86 forks source link

carlike robot with ackermann steering controller (humble/fortress) #323

Closed knickels closed 5 months ago

knickels commented 5 months ago

I've installed the binary packages for ros-humble-ign-ros2-control-demos, and prerequisites, through apt, on Ubuntu 22.04. I'm using Gazebo Fortress (6.16.0) (installed via apt - ignition-tools).

I'm trying to adapt the tricycle example to use the ackermann steering controller. I'm surprised how many folks are trying this same thing with various versions of ROS, various versions of Gazebo, etc.... but haven't been able to find a good full example that uses the AckermannSteeringController. Even example_11 in https://github.com/ros-controls/ros2_control_demos/tree/humble uses a bicycle onctroller not an ackermann for their CarLike robot!

I first added a fourth wheel (mimic to other front wheel) to the tricycle demo from ign_ros2_control_demos, still using the tricycle controller but with the two front wheels at the same angle and speed it drug the car sideways - which makes sense kinematically. I then set mu1=mu2=0 to make the new wheel frictionless and it works just fine. So now I'm trying to use the ackermann steering controller.

I'm getting a segfault from gazebo, I think from the control plugin. I'm not sure how to get more verbosity from ignition/gazebo to see what it's unhappy with (I'm guessing in the controller parameters, that's the biggest change from my four-wheel-tricycle which works just fine).

Any debugging advise would be welcome! Gory details and copies of files below. --kn

Here is my setup, starting with my launch file (my package is in rover_description and rover_gazebo): $ ros2 launch rover_gazebo carlike_ackermann.launch.py

With the response of:

INFO] [launch]: All log files can be found below /home/knickels/.ros/log/2024-06-06-17-12-18-222392-ROS2-446808
[INFO] [launch]: Default logging verbosity is set to INFO
ign_args is deprecated, migrate to gz_args!
[INFO] [parameter_bridge-1]: process started with pid [446809]
[INFO] [ruby $(which ign) gazebo-2]: process started with pid [446811]
[INFO] [robot_state_publisher-3]: process started with pid [446813]
[INFO] [create-4]: process started with pid [446816]
[create-4] [INFO] [1717711938.678527219] [ros_gz_sim]: Requesting list of world names.
[robot_state_publisher-3] [INFO] [1717711938.698189684] [robot_state_publisher]: got segment base_link
[robot_state_publisher-3] [INFO] [1717711938.698438895] [robot_state_publisher]: got segment chassis
[robot_state_publisher-3] [INFO] [1717711938.698456788] [robot_state_publisher]: got segment front_left_steering_link
[robot_state_publisher-3] [INFO] [1717711938.698465716] [robot_state_publisher]: got segment front_left_wheel_link
[robot_state_publisher-3] [INFO] [1717711938.698473551] [robot_state_publisher]: got segment front_right_steering_link
[robot_state_publisher-3] [INFO] [1717711938.698481071] [robot_state_publisher]: got segment front_right_wheel_link
[robot_state_publisher-3] [INFO] [1717711938.698488834] [robot_state_publisher]: got segment left_front_hub
[robot_state_publisher-3] [INFO] [1717711938.698496195] [robot_state_publisher]: got segment left_rear_hub
[robot_state_publisher-3] [INFO] [1717711938.698503522] [robot_state_publisher]: got segment left_rear_wheel
[robot_state_publisher-3] [INFO] [1717711938.698510725] [robot_state_publisher]: got segment right_front_hub
[robot_state_publisher-3] [INFO] [1717711938.698517751] [robot_state_publisher]: got segment right_rear_hub
[robot_state_publisher-3] [INFO] [1717711938.698524924] [robot_state_publisher]: got segment right_rear_wheel
[parameter_bridge-1] [INFO] [1717711938.702424120] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/clock (ignition.msgs.Clock) -> /clock (rosgraph_msgs/msg/Clock)] (Lazy 0)
[ruby $(which ign) gazebo-2] [Dbg] [gz.cc:161] Subscribing to [/gazebo/starting_world].
[ruby $(which ign) gazebo-2] [Dbg] [gz.cc:163] Waiting for a world to be set from the GUI...
[ruby $(which ign) gazebo-2] [Msg] Received world [empty.sdf] from the GUI.
[ruby $(which ign) gazebo-2] [Dbg] [gz.cc:167] Unsubscribing from [/gazebo/starting_world].
[ruby $(which ign) gazebo-2] [Msg] Ignition Gazebo Server v6.16.0
[ruby $(which ign) gazebo-2] [Msg] Loading SDF world file[/usr/share/ignition/ignition-gazebo6/worlds/empty.sdf].
[ruby $(which ign) gazebo-2] [Msg] Serving entity system service on [/entity/system/add]
[ruby $(which ign) gazebo-2] [Dbg] [Physics.cc:804] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/ign-physics-5/engine-plugins/libignition-physics-dartsim-plugin.so]
[ruby $(which ign) gazebo-2] [Dbg] [SystemManager.cc:70] Loaded system [gz::sim::systems::Physics] for entity [1]
[ruby $(which ign) gazebo-2] [Msg] Create service on [/world/empty/create]
[ruby $(which ign) gazebo-2] [Msg] Remove service on [/world/empty/remove]
[ruby $(which ign) gazebo-2] [Msg] Pose service on [/world/empty/set_pose]
[ruby $(which ign) gazebo-2] [Msg] Pose service on [/world/empty/set_pose_vector]
[ruby $(which ign) gazebo-2] [Msg] Light configuration service on [/world/empty/light_config]
[ruby $(which ign) gazebo-2] [Msg] Physics service on [/world/empty/set_physics]
[ruby $(which ign) gazebo-2] [Msg] SphericalCoordinates service on [/world/empty/set_spherical_coordinates]
[ruby $(which ign) gazebo-2] [Msg] Enable collision service on [/world/empty/enable_collision]
[ruby $(which ign) gazebo-2] [Msg] Disable collision service on [/world/empty/disable_collision]
[ruby $(which ign) gazebo-2] [Msg] Material service on [/world/empty/visual_config]
[ruby $(which ign) gazebo-2] [Msg] Material service on [/world/empty/wheel_slip]
[ruby $(which ign) gazebo-2] [Dbg] [SystemManager.cc:70] Loaded system [gz::sim::systems::UserCommands] for entity [1]
[ruby $(which ign) gazebo-2] [Dbg] [SystemManager.cc:70] Loaded system [gz::sim::systems::SceneBroadcaster] for entity [1]
[ruby $(which ign) gazebo-2] [Dbg] [SystemManager.cc:70] Loaded system [gz::sim::systems::Contact] for entity [1]
[ruby $(which ign) gazebo-2] [Msg] Loaded level [3]
[ruby $(which ign) gazebo-2] [Msg] Serving world controls on [/world/empty/control], [/world/empty/control/state] and [/world/empty/playback/control]
[ruby $(which ign) gazebo-2] [Msg] Serving GUI information on [/world/empty/gui/info]
[ruby $(which ign) gazebo-2] [Msg] World [empty] initialized with [1ms] physics profile.
[ruby $(which ign) gazebo-2] [Msg] Serving world SDF generation service on [/world/empty/generate_world_sdf]
[ruby $(which ign) gazebo-2] [Msg] Serving world names on [/gazebo/worlds]
[ruby $(which ign) gazebo-2] [Msg] Resource path add service on [/gazebo/resource_paths/add].
[ruby $(which ign) gazebo-2] [Msg] Resource path get service on [/gazebo/resource_paths/get].
[create-4] [INFO] [1717711939.198214460] [ros_gz_sim]: Requested creation of entity.
[create-4] [INFO] [1717711939.198249245] [ros_gz_sim]: OK creation of entity.
[INFO] [create-4]: process has finished cleanly [pid 446816]
[INFO] [ros2-5]: process started with pid [446895]
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:112:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:105:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:98:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:102:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/PluginMenu.qml:27:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/Gazebo/GazeboDrawer.qml:242:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:57:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].[Msg] Ignition Gazebo GUI    v6.16.0
[ruby $(which ign) gazebo-2] [Dbg] [Gui.cc:253] Waiting for subscribers to [/gazebo/starting_world]...
[ruby $(which ign) gazebo-2] [Dbg] [Application.cc:92] Initializing application.
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:555] Create main window
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [PathManager.cc:66] Requesting resource paths through [/gazebo/resource_paths/get]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Gui.cc:333] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [PathManager.cc:55] Received resource paths.
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Gui.cc:391] Requesting GUI from [/world/empty/gui/info]...
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [GuiRunner.cc:145] Requesting initial state from [/world/empty/state]...
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading config [/home/knickels/.ignition/gazebo/6/gui.config]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [MinimalScene]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [3D View] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libMinimalScene.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [EntityContextMenuPlugin]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Entity Context Menu] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libEntityContextMenuPlugin.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [GzSceneManager]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Scene Manager] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libGzSceneManager.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [InteractiveViewControl]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Camera reference visual topic advertised on [/gui/camera/view_control/reference_visual]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Camera view control sensitivity advertised on [/gui/camera/view_control/sensitivity]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Interactive view control] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libInteractiveViewControl.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [CameraTracking]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Camera tracking] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libCameraTracking.so]
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/Spawn/Spawn.qml:32:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/WorldControl/WorldControl.qml:30:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [MarkerManager]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Listening to stats on [/world/empty/stats]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Marker Manager] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libMarkerManager.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [SelectEntities]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Select entities] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libSelectEntities.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [Spawn]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Spawn] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [Spawn] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libSpawn.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [VisualizationCapabilities]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View as transparent service on [/gui/view/transparent]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View as wireframes service on [/gui/view/wireframes]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View center of mass service on [/gui/view/com]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View inertia service on [/gui/view/inertia]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View collisions service on [/gui/view/collisions]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View joints service on [/gui/view/joints]
[ruby $(which ign) gazebo-2] [GUI] [Msg] View frames service on [/gui/view/frames]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Visualization capabilities] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libVisualizationCapabilities.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [WorldControl]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Using world control service [/world/empty/control]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Listening to stats on [/world/empty/stats]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [WorldControl.cc:246] Using an event to share WorldControl msgs with the server
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [World control] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libWorldControl.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [WorldStats]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Listening to stats on [/world/empty/stats]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [World stats] to main window
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:104:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:99:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:94:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:89:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityTree/EntityTree.qml:148:7: QML ToolButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityTree/EntityTree.qml:148:7: QML ToolButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ruby $(which ign) gazebo-2] libEGL warning: egl: failed to create dri2 screen
[ruby $(which ign) gazebo-2] libEGL warning: egl: failed to create dri2 screen
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libWorldStats.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [Shapes]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Shapes] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [Shapes] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libShapes.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [Lights]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Lights] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [Lights] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libLights.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [TransformControl]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [TransformControl.cc:222] Legacy mode is disabled; this plugin must be used with MinimalScene.
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Transform control] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libTransformControl.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [Screenshot]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Screenshot service on [/gui/screenshot]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Screenshot] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/lib/x86_64-linux-gnu/ign-gui-6/plugins/libScreenshot.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [CopyPaste]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Copy/Paste] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [CopyPaste] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libCopyPaste.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [ComponentInspector]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Component inspector] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libComponentInspector.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:426] Loading plugin [EntityTree]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Added plugin [Entity tree] to main window
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-6/plugins/gui/libEntityTree.so]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:296] Loading window config
[ruby $(which ign) gazebo-2] [GUI] [Msg] Using server control service [/server_control]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:569] Applying config
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [MinimalScene.cc:602] Create scene [scene]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [INFO] [1717711940.885960691] [GazeboSimROS2ControlPlugin]: robot_param_node is robot_state_publisher
[ruby $(which ign) gazebo-2] [INFO] [1717711940.885995059] [GazeboSimROS2ControlPlugin]: robot_param_node is robot_description
[ruby $(which ign) gazebo-2] [ERROR] [1717711941.412472406] [gz_ros2_control]: robot_state_publisher service not available, waiting again...
[ruby $(which ign) gazebo-2] [ERROR] [1717711941.912768909] [gz_ros2_control]: robot_state_publisher service not available, waiting again...
[ruby $(which ign) gazebo-2] [INFO] [1717711942.220740967] [gz_ros2_control]: connected to service!! robot_state_publisher asking for robot_description
[ruby $(which ign) gazebo-2] [INFO] [1717711942.221149790] [gz_ros2_control]: Received URDF from param server
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225499502] [gz_ros2_control]: The position_proportional_gain has been set to: 0.1
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225557691] [gz_ros2_control]: Loading joint: front_right_steering_joint
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225576528] [gz_ros2_control]:   State:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225584648] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225591924] [gz_ros2_control]:   Command:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225597336] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225612489] [gz_ros2_control]: Loading joint: front_left_steering_joint
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225622504] [gz_ros2_control]:   State:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225630804] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225645082] [gz_ros2_control]:   Command:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225659244] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [9436740692853731264] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [4068291309002341380] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [16434675394613771646] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225953357] [gz_ros2_control]: Loading joint: rear_right_wheel_joint
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225976985] [gz_ros2_control]:   State:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225989424] [gz_ros2_control]:        velocity
[ruby $(which ign) gazebo-2] [INFO] [1717711942.225995806] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226008073] [gz_ros2_control]:   Command:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226022336] [gz_ros2_control]:        velocity
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [18219544957734274943] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [7098856614766153891] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [9436740692853731264] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [4068291309002341380] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [16434675394613771646] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226388684] [gz_ros2_control]: Loading joint: rear_left_wheel_joint
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226406115] [gz_ros2_control]:   State:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226415997] [gz_ros2_control]:        velocity
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226425063] [gz_ros2_control]:        position
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226433768] [gz_ros2_control]:   Command:
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226441999] [gz_ros2_control]:        velocity
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [18219544957734274943] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [7098856614766153891] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226646329] [resource_manager]: Initialize hardware 'IgnitionSystem' 
[ruby $(which ign) gazebo-2] [WARN] [1717711942.226667621] [gz_ros2_control]: On init...
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226756050] [resource_manager]: Successful initialization of hardware 'IgnitionSystem'
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226806266] [resource_manager]: 'configure' hardware 'IgnitionSystem' 
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226815561] [gz_ros2_control]: System Successfully configured!
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226834797] [resource_manager]: Successful 'configure' of hardware 'IgnitionSystem'
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226846587] [resource_manager]: 'activate' hardware 'IgnitionSystem' 
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226855031] [resource_manager]: Successful 'activate' of hardware 'IgnitionSystem'
[ruby $(which ign) gazebo-2] [INFO] [1717711942.226864045] [gz_ros2_control]: Loading controller_manager
[ruby $(which ign) gazebo-2] [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf3v125WorldE], which doesn't have `operator<<`. Component will not be serialized.
[ruby $(which ign) gazebo-2] [WARN] [1717711942.250103814] [gz_ros2_control]:  Desired controller update period (0.02 s) is slower than the gazebo simulation period (0.001 s).
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] [GUI] [Wrn] [Component.hh:189] Trying to create a component of type [14423792621074650228Trying to deserialize component with data type [N3sdf3v125WorldE] attached to entity [], which doesn't have 0`operator>>`. Component will not be deserialized.], but this entity does not 
[ruby $(which ign) gazebo-2] exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] [Err] [EntityComponentManager.cc:1051] Trying to create a component of type [14423792621074650228] attached to entity [0], but this entity does not exist. This create component request will be ignored.
[ruby $(which ign) gazebo-2] Stack trace (most recent call last) in thread 446981:
[ruby $(which ign) gazebo-2] #9    Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in 
[ruby $(which ign) gazebo-2] #8    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7736e9f2684f, in 
[ruby $(which ign) gazebo-2] #7    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7736e9e94ac2, in 
[ruby $(which ign) gazebo-2] #6    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7736e60dc252, in 
[ruby $(which ign) gazebo-2] #5    Object "/lib/x86_64-linux-gnu/libignition-gazebo6.so.6", at 0x7736e52294c9, in 
[ruby $(which ign) gazebo-2] #4    Object "/opt/ros/humble/lib/libign_ros2_control-system.so", at 0x7736c2e9fe45, in ign_ros2_control::IgnitionROS2ControlPlugin::PostUpdate(ignition::gazebo::v6::UpdateInfo const&, ignition::gazebo::v6::EntityComponentManager const&)
[ruby $(which ign) gazebo-2] #3    Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0x7736c135a6f4, in controller_manager::ControllerManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[ruby $(which ign) gazebo-2] #2    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7736c170369c, in hardware_interface::ResourceManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[ruby $(which ign) gazebo-2] #1    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7736c1720e8f, in hardware_interface::System::read(rclcpp::Time const&, rclcpp::Duration const&)
[ruby $(which ign) gazebo-2] #0    Object "/opt/ros/humble/lib/libign_hardware_plugins.so", at 0x7736c0086a14, in ign_ros2_control::IgnitionSystem::read(rclcpp::Time const&, rclcpp::Duration const&)
[ruby $(which ign) gazebo-2] Segmentation fault (Address not mapped to object [0x8])
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:52: TypeError: Cannot read property 'dialogOnExitText' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:54: TypeError: Cannot read property 'exitDialogShowCloseGui' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:53: TypeError: Cannot read property 'exitDialogShowShutdown' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:251: TypeError: Cannot read property 'showDrawer' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/SideDrawer.qml:93: TypeError: Cannot read property 'showDefaultDrawerOpts' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/IgnSplit.qml:56: TypeError: Cannot read property 'pluginCount' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:41: TypeError: Cannot read property 'toolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:42: TypeError: Cannot read property 'toolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:43: TypeError: Cannot read property 'toolBarColorDark' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:44: TypeError: Cannot read property 'toolBarTextColorDark' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:45: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:46: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:47: TypeError: Cannot read property 'pluginToolBarColorDark' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:48: TypeError: Cannot read property 'pluginToolBarTextColorDark' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:50: TypeError: Cannot read property 'defaultExitAction' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:51: TypeError: Cannot read property 'showDialogOnExit' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:55: TypeError: Cannot read property 'exitDialogShutdownText' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:56: TypeError: Cannot read property 'exitDialogCloseGuiText' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:66: TypeError: Cannot read property 'toolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:76: TypeError: Cannot read property 'toolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:219: TypeError: Cannot read property 'showPluginMenu' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:202: TypeError: Cannot read property 'showDrawer' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:188: TypeError: Cannot read property 'showDrawer' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:128: TypeError: Cannot read property 'pluginToolBarColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::qml/IgnCard.qml:139: TypeError: Cannot read property 'pluginToolBarTextColorLight' of null
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [TransformControl.cc:531] TransformControl plugin is using camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Spawn.cc:289] Spawn plugin is using camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [SelectEntities.cc:451] SelectEntities plugin is using camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [MarkerManager.cc:173] Advertise /marker/list service.
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [MarkerManager.cc:183] Advertise /marker/list.
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [MarkerManager.cc:193] Advertise /marker_array.
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [CameraTracking.cc:181] CameraTrackingPrivate plugin is moving camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Move to service on [/gui/move_to]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Follow service on [/gui/follow]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Move to pose service on [/gui/move_to/pose]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Follow offset service on [/gui/follow/offset]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [InteractiveViewControl.cc:174] InteractiveViewControl plugin is moving camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [EntityContextMenuPlugin.cc:79] Entity context menu plugin is using camera [scene::Camera(65527)]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [SignalHandler.cc:141] Received signal[2].
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Gui.cc:472] Shutting down ign-gazebo-gui
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [Application.cc:140] Terminating application.
[ruby $(which ign) gazebo-2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2]
[ruby $(which ign) gazebo-2] [GUI] [Dbg] [MinimalScene.cc:657] Destroy scene [scene]
[INFO] [ruby $(which ign) gazebo-2]: process has finished cleanly [pid 446811]
[INFO] [launch]: process[ruby $(which ign) gazebo-2] was required: shutting down launched system
[INFO] [ros2-5]: sending signal 'SIGINT' to process[ros2-5]
[INFO] [robot_state_publisher-3]: sending signal 'SIGINT' to process[robot_state_publisher-3]
[INFO] [parameter_bridge-1]: sending signal 'SIGINT' to process[parameter_bridge-1]
[robot_state_publisher-3] [INFO] [1717711942.746114740] [rclcpp]: signal_handler(signum=2)
[parameter_bridge-1] [INFO] [1717711942.747058656] [rclcpp]: signal_handler(signum=2)
[INFO] [parameter_bridge-1]: process has finished cleanly [pid 446809]
[INFO] [robot_state_publisher-3]: process has finished cleanly [pid 446813]
[ERROR] [ros2-5]: process has died [pid 446895, exit code 2, cmd 'ros2 control load_controller --set-state active joint_state_broadcaster'].
 knickels at ROS2 in ~/rover_sim_ws  

Here is the launch file, not much changed from tricycle_drive_example.launch.py in the ign_ros2_control_demos repo: carlike_ackerman_launch_py.txt

The URDF it pulls in: carlike_ackermann_urdf.txt

And finally the steering controller parameters. ackermann_steering_controller_yaml.txt

christophfroehlich commented 5 months ago

I'm trying to adapt the tricycle example to use the ackermann steering controller. I'm surprised how many folks are trying this same thing with various versions of ROS, various versions of Gazebo, etc.... but haven't been able to find a good full example that uses the AckermannSteeringController. Even example_11 in https://github.com/ros-controls/ros2_control_demos/tree/humble uses a bicycle onctroller not an ackermann for their CarLike robot!

I discussed this here: Ackermann steering is a setup where the two steering wheels can set their steering angle independently. Why should the car-like robot from example_11 not use the bicycle controller? What you mention, a mimicked steering wheel, does not make any sense physically? But the URDF you posted seems to have independent steering -> this should be fine. But numenclature from literature: car-like is not Ackermann!

Be aware that the tricycle controller from the demo of this repo has steering and traction on the same wheel, why the current ackermann steering controller implementation supports only traction on the other axle than steering.

Nevertheless, I was able to reproduce your segfault. Use the correct joint names (left_rear_wheel_joint instead of rear_left_wheel_joint) and it launches successfully. Additionally, use the correct controller name in your launch file and also your controller will be activated:

$ ros2 control list_controllers
joint_state_broadcaster[joint_state_broadcaster/JointStateBroadcaster] active    
ackermann_steering_controller[ackermann_steering_controller/AckermannSteeringController] active   

Summarized, ign_ros2_control should not crash with a segfault but give useful feedback if wrong joints are configure. I'll open a new issue for that.

knickels commented 5 months ago

Thanks for the extra eyeballs! I had checked those link names several times and somehow missed it. It's working now. I'll take a look at the kinematics references you gave, thanks for those pointers.

knickels commented 5 months ago

OK, I've read up on the kinematics. I see that the example_11 car has a virtual front wheel, which is controlled by the controller. It also has two visible wheels who mimic the turning angle. If all three wheels have friction, and point the same direction, why don't two of them slip against the ground?

In my model I had some wonky mass numbers, which may have contributed to the strange steering behavior, but I attributed it to this comment you make in ackermann-steering - "To prevent the front wheels from slipping, the steering angle of the front wheels cannot be equal. This is the so-called Ackermann steering." This model doesn't have the linkage you mention right below there.

But since this model doesn't run in gazebo, but rather publish it's own odometry, that doesn't matter so much? So the wheels in a physical car-like robot won't exactly match the wheel directions in this model?

christophfroehlich commented 5 months ago

Example 11 is just for exemplary purpose. The virtual_front_wheel wouldn't be necessary, it is just a virtual controller output instead of choosing the left or right one. You are right, physically mimicked steering wheels with linear kinematics would not work, but this was not the claim of this example.

knickels commented 5 months ago

Got it. Wasn't complaining, just checking my comprehension. Thanks again for the help.