Standalone examples

This page shows how to use the poulpe_ethercat_controller crate to communicate with the poulpe boards connected to the network. The examples are standalone and do not require the GRPC server to be running.

Table of contents
  1. Standalone examples
    1. Scan the network
    2. Read poulpe states
    3. Running a simple sinusoide trajectory

Scan the network

  • Scan the network to find the poulpe boards connected to the network
RUST_LOG=info cargo run --release --example scan_network

ex.

$ RUST_LOG=info cargo run --release --example scan_network

[2024-12-03T07:36:38Z INFO  network_scan] Creating the therCAT master
[2024-12-03T07:36:38Z INFO  ethercat_controller::ethercat_controller] Found 1 slaves
[2024-12-03T07:36:38Z INFO  ethercat_controller::ethercat_controller] Slave "NeckOrbita3d" at position 0
[2024-12-03T07:36:38Z INFO  network_scan] Waiting for therCAT master to be ready
[2024-12-03T07:36:38Z INFO  network_scan] EtherCAT master is ready
[2024-12-03T07:36:38Z INFO  network_scan] ---------------------------
[2024-12-03T07:36:38Z INFO  network_scan] Scanning network
[2024-12-03T07:36:38Z INFO  network_scan] Slave ID: 0, name: NeckOrbita3d

Read poulpe states

  • Read the state of the poulpe boards connected to the network
RUST_LOG=info cargo run --release --example poulpe_read_states # add the slave id ex. 0

ex.

$ RUST_LOG=info cargo run --release --example poulpe_read_states 0

[2024-12-03T07:52:18Z INFO  poulpe_read_states] Loading the controller
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethercat_controller] Found 1 slaves
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethserverercat_controller] Slave "NeckOrbita3d" at position 0
[2024-12-03T07:52:18Z INFO  poulpe_read_states] Waiting for controller to be ready
[2024-12-03T07:52:18Z INFO  poulpe_read_states] Controller is ready
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethercat_controller] Master and all slaves operational!
[2024-12-03T07:52:20Z INFO  poulpe_read_states] Pos: [0.44092038, 0.43091735, -3.8916345], 	 Vel: [9.1e-44, -8e-45, -7.533014e-5],	 Axis: [0.42992437, 0.41074842, 2.40121], 	 Board Temp: [38.634876, 38.82775, 38.124046], 	 Motor Temp: [-273.15, -273.15, -273.15]
[2024-12-03T07:52:20Z INFO  poulpe_read_states] Pos: [0.44092038, 0.43091735, -3.8916345], 	 Vel: [9.1e-44, -8e-45, -7.533014e-5],	 Axis: [0.42992437, 0.41074842, 2.40121], 	 Board Temp: [38.634876, 38.82775, 38.124046], 	 Motor Temp: [-273.15, -273.15, -273.15]
[2024-12-03T07:52:20Z INFO  poulpe_read_states] Pos: [0.44092038, 0.43091735, -3.8916345], 	 Vel: [9.1e-44, -8e-45, -7.533014e-5],	 Axis: [0.42992437, 0.41074842, 2.40121], 	 Board Temp: [38.634876, 38.82775, 38.124046], 	 Motor Temp: [-273.15, -273.15, -273.15]
[2024-12-03T07:52:20Z INFO  poulpe_read_states] Pos: [0.44092038, 0.43091735, -3.8916345], 	 Vel: [9.1e-44, -8e-45, -7.533014e-5],	 Axis: [0.42992437, 0.41074842, 2.40121], 	 Board Temp: [38.634876, 38.82775, 38.124046], 	 Motor Temp: [-273.15, -273.15, -273.15]
[2024-12-03T07:52:20Z INFO  poulpe_read_states] Pos: [0.44092038, 0.43091735, -3.8916345], 	 Vel: [9.1e-44, -8e-45, -7.533014e-5],	 Axis: [0.42992437, 0.41074842, 2.40121], 	 Board Temp: [38.634876, 38.82775, 38.124046], 	 Motor Temp: [-273.15, -273.15, -273.15]

Running a simple sinusoide trajectory

  • Run a simple sinusoide trajectory on the poulpe boards connected to the network
RUST_LOG=info cargo run --release --example poulpe_sinus # add the slave id ex. 0

ex.

$ RUST_LOG=info cargo run --release --example poulpe_sinus 0

[2024-12-03T07:52:18Z INFO  poulpe_read_states] Loading the controller
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethercat_controller] Found 1 slaves
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethercat_controller] Slave "NeckOrbita3d" at position 0
[2024-12-03T07:52:18Z INFO  poulpe_read_states] Waiting for controller to be ready
[2024-12-03T07:52:18Z INFO  poulpe_read_states] Controller is ready
[2024-12-03T07:52:18Z INFO  ethercat_controller::ethercat_controller] Master and all slaves operational!
...

Copyright © 2025 Pollen Robotics