Using OpenROV image with BeagleBone only?

software

#1

Hello.

Is it possible to use OpenROV image if I only have a beaglebone, usb camera, and ESC+motor? Currently I can control the motor and view the video from camera but of course the interface isn’t convenient (still using python and VNC, I’m not a programmer), I’m looking to get web based interface. I don’t have other sensor so I don’t see the need to get other OpenROV component, only interested to use it’s OS.

Thank you.


#2

The problem with that approach, as I see it, is that you’ll need to use the Programmable Realtime Units (PRUs) in the BBB, if you want any sort of predictable PWM control behavior. The Linux OS inside the BBB is not a “real time OS” in the sense that the kernel isn’t pre-emptive. So this basically means that if the kernel needs the processor and is doing something, then your code is not guaranteed to run in a predictable amount of time. The two PRUs on the BBB are what TI intends for you to use to give an independent means to “farm out” the PWM control–so that the main CPU doesn’t have to. And the problem with that, at least in my (limited) experience with the PRUS…is that they aren’t all that easy to program. LOL.

So the other option is to use a peripheral microcontroller such as the Arduino. The BBB simply sends the Arduino a message to effect some change in the PWM signal, and lets the Arduino’s processor do the work. It’s still not “real time” because it’s the same (non-preemptive) Linux kernel. However you only have to pass a few bytes of control data to the Arduino…and that shouldn’t be a big deal. The other thing is that there’s only a single processing core in the BBB’s CPU, so any time-slicing of work will still need to be run on the same processor. Contrast this with something like the new Raspberry Pi Generation 2 board, that has an ARM7-based quad-core CPU.

Anyway, it might not be as easy as you think to do what you want. You also must use a camera that encodes the video on its own–like a Logitech Pro C920, just as an example. That does h.264 encoding, so the BBB doesn’t have to–which is a good thing, as it doesn’t have a GPU (unlike the RPi which does).

Hope this information helps clarify things for you, at least to the level of understanding that I have.

TB


#3

I see, thanks for the explanation. I can get myself an Arduino Uno, will that work? Also is there any subforum here or somewhere else you recommend which can help me about BeagleBone programming? I tried the official forum but looks like it’s inactive with only very few thread got proper response.


#4

I would think it would work–it runs at the same speed as the Mega. I haven’t gotten my OpenROV kit yet (just ordered it yesterday) so I do not know the size of the Arduino binary code… Uno only has 32KB for flash storage, and the Mega has 256KB. Not sure why they used the Mega, other than more serial ports…and possibly more i2c buses. You need to ask someone more knowledgeable than I about the decision to use the Mega. I have both and generally use the Mega for stuff, but I am not sure why it was chosen for this project.

Sorry.

TB


#5

By the way, if you haven’t already seen it, be sure to check out Derek Molloy’s book “Exploring Beaglebone Black” (I think that’s the title). It is an AWESOME resource for the BBB unit. I read it 4-5 months ago when it first came out, and he’s an incredible educator. I have no affiliation to him, other than that he is a member of my embedded group on Facebook. But he is an excellent resource on all-things embedded…

His book is like $19 or so on Kindle.

TB