phyelds-argos
Run phyelds aggregate programs on any ARGoS3 robot:
foot-bot, e-puck, eye-bot, Spiri, Pi-Puck, BuilderBot, drone, block or prototype.
ARGoS owns the robots, physics and radios. Each robot runs a phyelds.vm.device.Device;
its bytes travel through the robot's simulated radio, one round per tick.
Install this package into Python 3.12 or 3.13, with ARGoS3, a C++17 compiler and CMake 3.18+ installed. Build the plugin with the same Python that has your programs:
python -m phyelds.argos.build --build-dir build
# Without Qt/OpenGL (the controller still drives the LEDs):
python -m phyelds.argos.build --build-dir build-headless --no-gui
The package ships C++ sources, not a binary tied to a particular ARGoS/Python ABI.
The command compiles libphyelds_argos.so and, unless --no-gui is used,
libphyelds_argos_qt.so. It uses the calling interpreter and its development
headers/shared library, rather than whichever python3 happens to be on the PATH.
Rebuild after moving or replacing that Python environment.
In an ARGoS experiment use phyelds_controller, with
library="build/libphyelds_argos" and <params program="your_module:your_function" source="0" max_speed="0.1" />. Robot names must end in a unique unsigned 32-bit
integer, for example fb0, fb1. The controller uses the devices the experiment
declares: it needs the positioning sensor and a range_and_bearing or
simple_radios radio (actuator and sensor); motion (differential_steering,
pipuck_differential_drive, builderbot_differential_drive, quadrotor_speed,
drone_flight_system), proximity sensors and LEDs are optional, and outputs a robot
cannot act on are ignored. Positioning supplies yaw only, unless gps="true".
Programs read source and heading; the time, in seconds, with local_time();
obstacle with a proximity sensor or rangefinders; the neighbors_distances and
neighbors_vectors maps, keyed by numeric robot ID, with the range-and-bearing
radio; and position with gps="true", which simple radios need for geometry.
Distances are metres; vectors and headings share the global compass frame. The
standard geometry helpers use the measured sensors without GPS.
Programs write velocity (an iterable with two or three components, m/s), led
(three integer RGB channels, 0–255) and label (text). phyelds.argos names these
sensors and actuators once, as typed objects: source.sense(), led.send((255, 0, 0)),
velocity.send(v). The maps and position are read by the geometry helpers. Missing
outputs mean zero velocity, black LEDs and an empty label. With the GUI enabled,
<user_functions library="build/libphyelds_argos_qt" label="phyelds_qtuser_functions" />
draws the LED colour as a halo and the label above each robot.
Radio frames are [u32 sender][u16 length][Device payload], with the header encoded by
ARGoS CByteArray, padded with zeros on the range-and-bearing radio. Compact paths are
used by default; paths="debug" is available for debugging, but all communicating
robots must use the same mode and program version. Use a sufficiently large
rab_data_size (4096 in the examples).
Oversize messages fail explicitly; they are never truncated. Bad frame lengths are
ignored. Payload/codec errors stop the experiment with the robot ID and Python traceback.
trace="true" logs each robot's label after every round for diagnostics.
See the integration guide for an experiment and the five-example project. The host build needs no Boost.Python, pybind11, FCPP or phyelds simulator. Python execution is protected by the GIL even when ARGoS uses worker threads; individual rounds are not executed in parallel.
Metadata
Release files for phyelds-argos 9.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| phyelds_argos-9.0.0.tar.gz | 13.4 kB | Without provenance | Details for phyelds_argos-9.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| phyelds_argos-9.0.0-py3-none-any.whl | Python 3 | none | any | Details for phyelds_argos-9.0.0-py3-none-any.whl |
Total release size: 28.6 kB
Release files / phyelds_argos-9.0.0.tar.gz
| Download URL | phyelds_argos-9.0.0.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3b6ee37dbc1281597478e2d49fa3fecc48ca0b3c0632574964d262eb32ba0e4
|
|
BLAKE2b-256 checksum How to use checksums |
a3e68b984f4898c07349313ba3da5a8bde3f86366fe59374f599060bdf3bfd6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.0 CPython/3.13.17 Linux/7.0.0-1017-azure
|
Release files / phyelds_argos-9.0.0-py3-none-any.whl
| Download URL | phyelds_argos-9.0.0-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ff005bd738526c04e5c4d4baf907aaa9790572454983c232da406e7235229e66
|
|
BLAKE2b-256 checksum How to use checksums |
2c0e5d718d36d751a1581c77adb9c383613558c51bbe774a98b8fd5c14593ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.0 CPython/3.13.17 Linux/7.0.0-1017-azure
|
Security for phyelds-argos 9.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.