Pages: [1]   Go Down
Author Topic: Building a rover.  (Read 1217 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Queens, New York
Offline Offline
Faraday Member
**
Karma: 108
Posts: 3785
"Of all the things I've ever lost, I miss my mind the most" -Ozzy Osbourne
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Created Libraries:
TFT_Extension, OneWireKeypad, SerialServo, (UPD)WiiClassicController, VWID

UK
Offline Offline
Shannon Member
****
Karma: 223
Posts: 12630
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

I only provide help via the forum - please do not contact me for private consultancy.

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    Offline Offline
    Newbie
    *
    Karma: 0
    Posts: 6
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    Queens, New York
    Offline Offline
    Faraday Member
    **
    Karma: 108
    Posts: 3785
    "Of all the things I've ever lost, I miss my mind the most" -Ozzy Osbourne
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    Created Libraries:
    TFT_Extension, OneWireKeypad, SerialServo, (UPD)WiiClassicController, VWID

    United Kingdom
    Offline Offline
    Tesla Member
    ***
    Karma: 227
    Posts: 6639
    Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
    View Profile
    WWW
     Bigger Bigger  Smaller Smaller  Reset Reset

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

    Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

    Global Moderator
    UK
    Offline Offline
    Brattain Member
    *****
    Karma: 310
    Posts: 26626
    I don't think you connected the grounds, Dave.
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    "Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
    Do not send technical questions via personal messaging - they will be ignored.

    the land of sun+snow
    Offline Offline
    Faraday Member
    **
    Karma: 159
    Posts: 2927
    View Profile
    WWW
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    Offline Offline
    Newbie
    *
    Karma: 0
    Posts: 6
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    « Last Edit: December 12, 2012, 03:06:04 pm by Randolph » Logged

    Queens, New York
    Offline Offline
    Faraday Member
    **
    Karma: 108
    Posts: 3785
    "Of all the things I've ever lost, I miss my mind the most" -Ozzy Osbourne
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    Just out of curiosity, how big is the rover?
    Logged

    Created Libraries:
    TFT_Extension, OneWireKeypad, SerialServo, (UPD)WiiClassicController, VWID

    Offline Offline
    Newbie
    *
    Karma: 0
    Posts: 6
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    Just out of curiosity, how big is the rover?

    17"x17"x17" and under 20kg
    Logged

    Dubuque, Iowa, USA
    Offline Offline
    Faraday Member
    **
    Karma: 49
    Posts: 2551
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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!).
    Logged

    Offline Offline
    Newbie
    *
    Karma: 0
    Posts: 6
    View Profile
     Bigger Bigger  Smaller Smaller  Reset Reset

    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.
    Logged

    Pages: [1]   Go Up
    Jump to: