In order to use vendor-supplied libraries and modules which communicate directly with an I2C bus, add a node to the rq_addons image.
Using the solution provided here will require a user change to the roboquest_core ROS parameters, via /opt/persist/i2c/i2c.yaml, and a hardware wiring change, moving the motor controller to I2C bus 1 from bus 6. As soon as the motor controller is moved to I2C1, the /control_hat service attribute "set_motors" no longer controls the electrical power to the motor. The motor controller will be enabled when the HAT is powered. This change occurs because "set_motors" is controlling power to the VCC pin on I2C6, not to the motor controller directly.
Depends upon both rq_core Issue 79 and rq_core Issue 85.
In order to use vendor-supplied libraries and modules which communicate directly with an I2C bus, add a node to the rq_addons image.
Using the solution provided here will require a user change to the roboquest_core ROS parameters, via /opt/persist/i2c/i2c.yaml, and a hardware wiring change, moving the motor controller to I2C bus 1 from bus 6. As soon as the motor controller is moved to I2C1, the /control_hat service attribute "set_motors" no longer controls the electrical power to the motor. The motor controller will be enabled when the HAT is powered. This change occurs because "set_motors" is controlling power to the VCC pin on I2C6, not to the motor controller directly.