diff --git a/ethercat_driver_ros2/sphinx/index.rst b/ethercat_driver_ros2/sphinx/index.rst index b701791..79ae84d 100644 --- a/ethercat_driver_ros2/sphinx/index.rst +++ b/ethercat_driver_ros2/sphinx/index.rst @@ -19,6 +19,7 @@ EtherCAT Driver ROS2 Stack user_guide/config_generic_slave user_guide/config_cia402_drive + user_guide/sdo_async_com .. toctree:: :maxdepth: 1 diff --git a/ethercat_driver_ros2/sphinx/user_guide/sdo_async_com.rst b/ethercat_driver_ros2/sphinx/user_guide/sdo_async_com.rst new file mode 100644 index 0000000..89111e7 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/user_guide/sdo_async_com.rst @@ -0,0 +1,29 @@ +SDO acyclic exchange using ROS2 services +======================================== + +Service Data Objects (SDO) contain object dictionary entries that can be exchanged acyclically. SDO works as a mailbox sending and buffering received data. This communication is acyclic and is dependent on available bandwidth in the communication cycle. This communication is not deterministic and is best suited for transmitting configuration data. + +The EtherCAT Driver ROS2 stack comes with a service server that allows the exchange of data with an EtherCAT slave using ROS2 services through SDO. +The following services are available: + +.. list-table:: + :header-rows: 1 + + * - Service + - Interface + - Description + * - :code:`ethercat_manager/get_sdo` + - :code:`ethercat_msgs::srv::GetSdo` + - Read data from slave SDO register + * - :code:`ethercat_manager/set_sdo` + - :code:`ethercat_msgs::srv::SetSdo` + - Write data to slave SDO register + +Usage +----- + +Build and source the :code:`ethercat_manager` package and run: + +.. code-block:: shell + + $ ros2 run ethercat_manager ethercat_sdo_srv_server