-
Add user to dialout group (for serial port access):
sudo usermod -a -G dialout $(whoami)Log out and back in for changes to take effect.
-
(Optional) Change sensor configuration
If the sensor is only going to be used with USB select “Disabled - USB only” as Primary communication interface on the sensor configuration tool (requires chrome browser).
-
(Optional) Create environment setup script: Create
set_ros_env.shin your workspace root:export ROS_DOMAIN_ID=... export RMW_IMPLEMENTATION=... export ROS_NETWORK_INTERFACE=...
The sensor config is baked into the image at build time. You must change
serial_number and product_name in /ros2_ws/src/bota_driver_ros2_example/bota_config/bota_binary.json,
and rebuild, or mount a custom config via a volume in docker-compose.yaml.
This is the primary entrypoint. It builds the image on first run and brings the
node up on ROS_DOMAIN_ID=100 with rmw_cyclonedds_cpp bound to the ecosystem's
network interface, so the FT topics are visible to the rest of the host stack.
cd ~/repos/botasys_ft_sensor_ros2
ROS_DISTRO=jazzy docker compose up --build bota_ft_sensorOverridable environment variables (see docker-compose.yaml for defaults):
ROS_DISTRO(defaultjazzy)ROS_DOMAIN_ID(default100)RMW_IMPLEMENTATION(defaultrmw_cyclonedds_cpp)NETWORK_INTERFACE(defaultenx607d0937fb24) — must match the active interface of the rest of the ecosystemBOTA_DEVICE(default/dev/ttyACM0)
For local experimentation without Docker:
pixi run -e jazzy setup # clones + builds the driver into ros2_ws/
pixi run -e jazzy bota-runNote: this path does not configure CycloneDDS or the ecosystem domain, so topics published this way may not be visible to the rest of the host stack.
For more information, visit the BOTA Driver Python Example repository.