garmi.configs
=============

.. py:module:: garmi.configs


Classes
-------

.. autoapisummary::

   garmi.configs.GarmiInteractiveMarkerChain
   garmi.configs.WorldWithGarmiConfig
   garmi.configs.GarmiVelocityInterface


Module Contents
---------------

.. py:class:: GarmiInteractiveMarkerChain(*args, **kwds)

   Bases: :py:obj:`enum.Enum`


   The kinematic chains controllable via interactive markers.


   .. py:attribute:: LEFT_ARM


   .. py:attribute:: RIGHT_ARM


.. py:class:: WorldWithGarmiConfig

   Bases: :py:obj:`giskardpy.model.world_config.WorldWithMobileRobot`


   World configuration for the GARMI robot.

   Builds a map -> odom -> GARMI kinematic tree using an omni-drive base.


   .. py:attribute:: odometry_body_name
      :type:  semantic_digital_twin.datastructures.prefixed_name.PrefixedName

      Name of the body the robot drives relative to.



   .. py:attribute:: robot_class
      :type:  type[semantic_digital_twin.robots.garmi.Garmi]

      The robot class that is applied to the parsed description.



.. py:class:: GarmiVelocityInterface

   Bases: :py:obj:`giskardpy.middleware.ros2.robot_interface_config.ClosedLoopRobotInterfaceConfig`


   Closed-loop velocity interface for the real GARMI robot.

   Synchronizes the world state from the merged whole-robot joint state topic and sends
   arm joint velocities to the per-arm group controllers, as documented in
   garmi_description's docs/real_robot.md (the public interface contract).


   .. py:method:: setup() -> None

      Implement this method to configure how Giskard reads the state of the robot and
      how it sends commands, using the ``sync_*`` and ``add_*`` methods.



