This task should be done alongside Darius's camera tasks, in order to understand how the camera is programmed. See if there's any way to output data to print to a terminal, & write to a .txt file.
It doesn't need to be able to completely process barcode data yet, just figure out how to handle input/output between the client and TurtleBot.
Working notes:
I ended up using zbar_ros in order to get the robot to scan barcodes. Initially, the node would not work in practice, due to the mismatch in topics required for the code to function.
This week we managed to understand ROS2 arguments & remapping. Since the code expects an /image topic, it wouldn't work by default with the turtlebot, but by adding remapping arguments i.e.: ros2 run zbar_ros barcode_reader --ros-args -r /image:=/oakd/rgb/preview/image_raw . it works now that /image got remapped to /oakd/rgb/preview/image_raw
More info for arguments/remapping: 123
Here's how to change the camera properties and change which ones to use:
Once you SSH into the Raspberry Pi's terminal, you can find & edit the camera driver files using nano: sudo nano /opt/ros/humble/share/turtlebot4_bringup/config/oakd_pro.yaml
This is what the file looks like by default, and these are the camera specs. The one we've been seeing is the "preview", the default squareish sensor. The disabled one is the widescreen sensor, and to enable it you set i_publish_topic: true. The higher the resolution, the worse the bandwidth, the worse the latency/framerate.
Once you've edited the file, press Ctrl+C to exit, and Y to save as you're exiting.
In the Pi's terminal, run turtlebot4-setup > ROS Setup > Robot Upstart > Restart in order to apply the changes (no need to close Rviz or rqt)
More info for Turtlebot 4 bringup/sensor drivers: 123
This task should be done alongside Darius's camera tasks, in order to understand how the camera is programmed. See if there's any way to output data to print to a terminal, & write to a .txt file. It doesn't need to be able to completely process barcode data yet, just figure out how to handle input/output between the client and TurtleBot.
Working notes: