I am part of a research program that is continuing the development of an ROV. Currently the ROV uses a beaglebone black with OpenROV 2.6 software and an Arduino Uno with custom software. The beagle powers the camera, and the Arduino controls the motors via pwm and other sensors. What is the benefit of using the Arduino for the motors over just using the beaglebone alone? Could a smaller\simpler CAPE replace the Uno, while the beaglebone takes over the camera, sensors, and other data collection?
Sure, there are a number of ways you could design the system that would work. At OpenROV we used a cape with an Arduino Uno for versions 2.3 and 2.4, and a controller board with an embedded Arduino Mega for 2.5-2.8, because we felt that this would be an easy architecture for people to prototype hooking things up to the robot- you can do your prototyping with an Arduino, which people are very familiar with. Also, using the BBB for just camera work and web serving makes sure that tweaks to the video system do not change the way that the motor control timing works.
Was it the right choice of hardware architectures? Who knows- it seems like it has held up pretty well though.