Nodes and launch files should be refactored to cleanly divide sensor & other code that can only run IRL, versus logic code that can run standalone or in simulation. This eases simulation development & running the code on non-Blobfish environments.
Launch files that launch both hardware nodes (i.e., camera/arduino communication/imu reading) and software (i.e., pid) should be split into a corresponding hardware.launch.py and software.launch.py. The naming isn't strictly necessary, just needs to be clear. There shouldn't be a third, separate, sim.launch.py since the goal is to test the actual software.launch.py.
Likewise, nodes that do some level of post-processing while also reading from sensors should be split as far as the post-processing code is general and not sensor-specific.
Nodes and launch files should be refactored to cleanly divide sensor & other code that can only run IRL, versus logic code that can run standalone or in simulation. This eases simulation development & running the code on non-Blobfish environments.
Launch files that launch both hardware nodes (i.e., camera/arduino communication/imu reading) and software (i.e., pid) should be split into a corresponding
hardware.launch.py
andsoftware.launch.py
. The naming isn't strictly necessary, just needs to be clear. There shouldn't be a third, separate,sim.launch.py
since the goal is to test the actualsoftware.launch.py
.Likewise, nodes that do some level of post-processing while also reading from sensors should be split as far as the post-processing code is general and not sensor-specific.