One Day Build: Hardware Remote Control for Video with ROS2
As of this month, I am newly learning ROS2! While I once struggled to understand nodes, topics, parameters, and all the jargon, this project gave me the opportunity to sort out my confusion.
I built ros_videostreams to learn ROS 2's core concepts (nodes, topics, and launch files) by making something I could physically hold: a video remote control built from an Arduino, a potentiometer, and a momentary button. As a hardware / mechatronics girlie, this was the most comfortable place for me to start. The Arduino streams its readings over serial to a ROS 2 Jazzy node that publishes them to /potentiometer and /button topics, and a second node turns those events into next, previous, and play/pause commands, so turning the pot to its maximum or minimum skips forward or back and pressing the button toggles playback. A video player node then streams frames to rqt_image_view, playing a sample of biology videos I pulled from Hugging Face's FineVideo dataset, and a single launch file brings the whole pipeline up at once. Along the way I got comfortable debugging the ROS graph with rqt_graph, ros2 topic echo, and serial-port permissions, and my next step is adding voice control so I can simply say "next" or "previous." The full code, setup guide, and demo video are on GitHub.