A college level Mechanical Engineering team is building an underwater
remote operated vehicle (UROV). The vehicle will have:
2- 48vdc horizontal thrusters,
2- 48vdc vertical thrusters,
2- video cameras,
2- piston controlled arms with 3 degrees of freedom,
1- suction pump or piston syringe.
Based on the above requirements, the craft will need:
1- microprocessor board,
LAN communication,
2- video inputs,
4- digital inputs,
4- analog inputs,
12 PWM outputs,
4- digital outputs,
4- analog outputs,
The vehicle will get power and control commands from a shore based
tether and must be able to send video and communication in real time
back to the operator. The operator station could be a laptop with USB
joystick controls.
Is Beagle Board the right microprocessor for Mechanical Engineering
students with little computer building skills? If so, where do we
start? If not, any other recommendations?
Honestly I don't even see the need for a beagle board. Don't M/E student like smart relays ;)? If its tethered to the laptop what do you hope to accomplish with the bb that the laptop can't do?
-Alex
Alex,
The limitation is the diameter of the tether. I could write a long
explanation, but trust me when I say the laptop is only a human
interface / video output device. For very practical reasons, this
type of craft must have it's own computer, motor controllers, pumps,
valves, etc.
Kershaw
Hi R Kershaw,
I think BB-xM is the perfect board for you.
P.S. I'll probably do the same project (underwater robotics project on
BB, just hobby) and I'll be happy to talk with you about your
project. 
Cheers,
Max.
I wish you could post drawings of the vehicle and photos of it (including construction photos) somewhere so it can be seen. How deep are you going to submerge the vehicle? Are you shore-based, as in someone walks the vehicle out in the surf and lowers it by hand, and the tether is just a few hundred yards? (What happens when the tether cable snags on something?)
If you are going to operate the ROV deep, that seems to me you need some form of interior temperature regulation because temperatures will quickly go way low. I don't know what the lowest temperature the Beagleboard can stand is.
Someone, in an earlier posting to this archive some months ago, was using either a Beagleboard C4 or an xM prototype for a different underwater project. I don't know how deep the person submerged his Beagle but if memory serves me a hard drive was used to store data...or data was wifi'ed to disk storage.
So it seems to me you may want wireless communication of some sort. The "LAN communication" requirement seems a little broad to me.
I think photos of your project would be really nice.
Please note, I have no special expertise. I'm a BeagleBoard baby of no great skill.
Thanks
Bob Cochran
I will forward your email address to the students on the team. Thanks
for the offer to help.
No drawings available now. No construction started.
Maximum tether length will be 100 feet.
Vehicle will compete in a 40 foot deep pool with 75-80F water temps.
LAN will be hardwired. Wireless only works underwater with sonar
coupling, which is cost prohibitive.
Hard drive not needed. All data can be stored in on-shore laptop.
For all interested parties:
Thank you for the thumbs up. I also believe the BeagleBoard is a
real possibility. I have identified another board that will provide
16 PWM outputs via a USB connection.
Now, the hurdle is understanding how to load an operating system
into a BB xM, then how to program all of the commands. What is the
preferred OS for robot control? Are all of the communications and
commands written in the OS?
Keep in mind, I am a long time DOS/Windows user. I am NOT an
electrical engineer or programmer. The students may have a little
experience with LabView.
I use LAN when I really mean Ethernet, sorry.
I don't have a Beagleboard either but do have embedded programming,
Linux, and FIRST Robotics experience. Considering the Beagleboard as
a choice for your project ... I would certainly consider it.
But ... "Mechanical Engineering students with little computer building
skills" ...
... I think the ROV controls (digital I/O, analog I/O, PWM outputs)
could be easily handled by something as small as an Atmega or PIC
processor - for example the ArduinoMega (http://arduino.cc/en/Main/
ArduinoBoardMega) has the right quantity of signals you require, and
learning to programming an Arduino for an application such as this is
relatively simple using the Arduino IDE. And you could run Processing
on the laptop and communicate quite easily with the Arduino assuming
you can run USB in the tether.
... If the video just needs to be carried in the tether on dedicated
wires and connected to on-shore monitors, you could use standard
security cameras in waterproof enclosures?
Now back to the Beagleboard. Assuming the video has to be processed
on-board the ROV and streamed via the Ethernet connection to the land-
based computer, well, the Beagleboard-xM only has one "camera input"
and only the Leopard Imaging camera supported? Perhaps for the second
camera you could use a network IP or USB camera, or a serial camera
such as CMUcam? In any case with such cameras you will need a camera
driver plus Ethernet connection plus video streaming software on the
Beagleboard ... so we come to loading Linux onto the Beagleboard along
with camera and streaming support. Your students can mock this up
with a regular computer loaded with Linux, then port it over to the
Beagleboard environment.
The video thus taken care of with Linux techniques, the problem goes
back to programming the Beagleboard/Linux system for digital and PWM I/
O. You would use a custom programming written in C or C++. Perhaps
information from here will be useful http://elinux.org/images/a/ad/I2C_PWM_Hardware.pdf.
If your students know Labview, perhaps you would consider a National
Instruments CompactRIO or SingleboardRIO platform, and program with
Labview. Probably much too heavy for your ROV though ...
Mike
Now we are getting somewhere. Which FIRST team? Most of my robot experience also comes from FIRST (Robonauts Team 118), which is robot controls. The UROV team (not Robonauts) was given a much older version of something close to CRio. And your are correct, it is MUCH too heavy. I doubt their professor will allow them to strip the CPU and I/O cards from the housings. The UROV will be about 24 inches cubed, so brain space is very limited, and the thrusters will only have about 30 lbs of lift power.
Based on my limited understanding of the BeagleBoard xM, it seems running 2 USB cameras would be straightforward. The same seems true of a USB to PWM board. Affordable tethers usually contain 2 power conductors and 4-6 communication wires. It is not practical to dedicate 3 of those wires for 2 video signals. Today, I discovered the BB xM comes with an OS loaded on the on-board microSD card.
I am not fluent in computer programming or board architecture, but my research on the Arduino indicates that path will require multiple boards and a high level of geek skills. I will dig into the links you provided. I have contacts with a lot of CRio/C++ experience. The problem is…$300 for BB xM and add-on boards versus $2000 for a CRio and a couple of cards. CRio also does a poor job of transmitting real time video. A UROV is non-functional without video.
You have a pretty good grasp of what hurdles we face, so I’d like to pick your brain as the project moves forward. The team faces a critical decision this weekend. The project cannot be completed without recruiting a programming student.
Kershaw
No problem, pick away Robert!
Team 768 Roboticats aka SKY Robotics ... unfortunately they have not
operated the past couple of years due to lack of funding and teacher
supervisors, too bad - we Mentors miss it!
I agree - unless you stick with smart relays or PLC and dumb cameras -
you need a programmer. You may need more than one (Beagleboard /
Arduino, laptop) but someone must keep the big picture and everything
coordinated.
Since you are experienced with FIRST, you know that tele-operating a
device doesn't require very much code per function. You can, however,
go overboard - try to keep the coders thinking as simple as possible.
Yes, the Beagleboard runs Linux - that may excite your students
(certainly your programmer). Or you could just program the bare
board, but what a waste of potential. I really think you should
consider ArduinoMega instead - geek factor aside, there are lots of
samples and community support, and Arduino straddles the line between
electronics and software nicely.
It sounds like the tether is a limiting factor, as you intimated in
your first post. And I would like to hear the requirements for the
video.
Arduino would require two wires for signalling (USB/TTL) and it needs
5V or 3.3V to operate - which could come from a small battery or a
power supply driven from the tether cord power wires - so that's 4
wires. You can't find 2-3 more for raw camera signals?
With a Beagleboard, I guess you would communicate with the laptop
using Ethernet - that's four wires plus more for powering the board -
but at least you could pass all of your data on it, including video,
at very high speed.
Mike
have contacts with a lot of CRio/C++ experience. The problem is...$300 for
BB xM and add-on boards versus $2000 for a CRio and a couple of cards. CRio
also does a poor job of transmitting real time video. A UROV is
non-functional without video.
Looking at your requirements and constraints, I think it might be
interesting for you to take a look at what we have done for our hobby
project:
http://veter-project.blogspot.com/
http://www.gitorious.org/veter/pages/Home
This is the vehicle with beagle-board on board which can be controled
over the internet. The vehicle is equiped with video camera and
streams live video over the network.
We currently do not have so many IO channels as you requested (for
example, we have only two motors), but hardware and software could be
very easy extended to support more IO channels. In fact, at early
project stages we were playing with different additional boards such
as for example TrainerBoard or Arduino which might be used to provide
additional IO.
Andrey.