There isn’t any inherent conflict between using an install script and using cron–they do different things. For example, you could have a script that used
pip, etc. to install the right versions of your code and all its dependency packages, then you could run that code with cron.
On the other hand, there would be a conflict between using cron for scheduling and using a service (like ROS) for scheduling.
It sounds like your basic problem would be to get a unique identifier for each Raspberry Pi so that you could plug that into a device identifier slot in the reports back to the central server. An ethernet or wifi MAC address would probably be a good identifier that you could check with a script or python code. Try checking the contents of
/sys/class/net/*/address. For example:
Alternately, if you use DHCP to set unique hostnames on the Raspbery Pis, you could include the hostname as the device identifier.
You might also look at the python uuid package examples for creating RFC 4122 universally unique identifiers.