Building a rover.

Hello everyone!

I'm building a rover with several friends and we need help. Here's what we have:

  • Two stereo vision cameras for 3d terrain mapping and navigation. 4 hazard avoidance cameras mounted by the wheels. Cameras are high definition and record video and pictures.
  • camera mast is pan/tilt and must be controlled with fine movements(harmonic drives for gear reduction).
  • High gain and low gain communications
  • solar cells, charging unit, battery, dc-dc
  • Four wheels (hence fours motors) that have encoders. The rpm must be tracked and adjustable. Also, detect a change in current for slippage (that may affect odometry and location).
  • possible solar array articulation motors, and photo resistors for sun alignment
  • thermocouples and other sensors

That's the general list.

So basically the solar cells power the rover. The power is distributed from the cells to the battery and active hardware (e.g. SBC). Battery is there when the solar cells lack power production. We have no experience with electronics and need help developing a computer system. The system must control all of the above components and communicate to a control station. We have had success with general off the shelf computer boards but want to design a custom single board computer for compactness, reduced complexity and increased reliability. Meanwhile, it's my understanding that a Arduino board is great for developing such a system. We also have a cRio but we are limited on modules currently.

Any ideas?

An Arduino is limited to what it can control. What you want to do will require a laptop with an incredible processor, and software, along with a I/O interface. An Arduino can not do everything want nor does it have the capabilities of processing video. It could probably control the motors, and maybe an encoder, but 4 motors each with an encoder, not possible.

Randolph:
Also, detect a change in current for slippage (that may affect odometry and location).[/li][/list]

I don't think that will be a practical method for detecting slip. If you need to know the absolute position reliably then you need to provide some means to determine it - for example, using GPS.

PeterH:

Randolph:
Also, detect a change in current for slippage (that may affect odometry and location).[/li][/list]

I don't think that will be a practical method for detecting slip. If you need to know the absolute position reliably then you need to provide some means to determine it - for example, using GPS.

Well to elaborate we are going to use stereo vision to compare visual odometry with dead reckoning. This will be in a desert like environment.

HazardsMind:
An Arduino is limited to what it can control. What you want to do will require a laptop with an incredible processor, and software, along with a I/O interface. An Arduino can not do everything want nor does it have the capabilities of processing video. It could probably control the motors, and maybe an encoder, but 4 motors each with an encoder, not possible.

How about using multiple Arduinos? Such as one for the wheel motors, another for the camera mast articulation, another for the solar array articulation, etc... and have a main CPU. The problem is we don't know what to use as the main cpu. Currently, we have that setup you listed above. We have a computer in the rover. Though, it has a bunch of cables, it's bulky, has a lot of components we don't need and produces a lot of heat. We are going to have an embedded system to control everything possible. So, in order to outsource the manufacturing of this sbc we need a similar prototyping setup for software development.

Arduino is not what you need. You need a LOT of processing power, speed, and something that can do multiple things at once. I understand what you want to do, but you need something other than an arduino.

An Arduino may be OK for controlling the motors, but you need at least a Raspberry Pi to process the video.

I'd probably go for clusters of controllers for encoders and motors and the like, and leave the heavy-lifting of making sense of the readings to something with more horsepower.

I go with the guys suggesting multiple processors. You can use an Arduino for the low-level
motor and sensing control, but stack on something more powerful for the high-level stuff.
Suggestions are Arduino-DUE, various other ARM boards, or Digilent Chipkit boards with
PIC32 chips.

We have a company that will do the video compression, imaging and control (control of camera pan/tilt gimbal). This is a dual redundancy system. It seems as if we will be using CAN bus for a distributed sensor+actuator control
architecture. So, it goes something like cameras > camera interface board > digital video link > CAN/ethernet/serial. The CAN manages the sensors and actuators. We then have a master controller, ethernet switch and radios.

Just out of curiosity, how big is the rover?

HazardsMind:
Just out of curiosity, how big is the rover?

17"x17"x17" and under 20kg

I don't see where a CAN bus fits in.

If I were you, I'd get a small computer (Mini ITX / Micro ATX) and link it to an Arduino via USB; there are lots of small options out there that can be powered with 12V. Let the Arduino control the motors, encoders, rotating cameras/etc. and the computer to handle the navigation, camera data stream, and communications. Looking at the cRio you mentioned I can see where you'd want to get away from that ($3K!).

Chagrin:
I don't see where a CAN bus fits in.

If I were you, I'd get a small computer (Mini ITX / Micro ATX) and link it to an Arduino via USB; there are lots of small options out there that can be powered with 12V. Let the Arduino control the motors, encoders, rotating cameras/etc. and the computer to handle the navigation, camera data stream, and communications. Looking at the cRio you mentioned I can see where you'd want to get away from that ($3K!).

Well, we already have a cRio but it has some issues and we're sending it back (it's brand spanking new). The CAN bus is for a distributed sensor+actuator control architecture. The stereo vision system will have a DSP and a buffer and will send the compressed images/video directly to the communications. It will not be processed by the cpu. I'm meeting with a company next week which will help us develop a computer system. We have a rover, but need to really get our electronics down for us to proceed.

The rover will be completely aluminum (carbon fiber here and there), water tight sealed, solar powered, semi-autonomous navigation with high-bandwidth communications.