PDA

View Full Version : Roboard questions



mx270a
05-12-2009, 09:45 PM
Greetings everyone. I've been looking for a SBC and I think the roboard will do what I want, but I have a few questions about it. I intend to use this to get GPS and inertial data, and steer a vehicle based on that data. I anticipate running Linux on the roboard, which will also host a web server, which will be used to do most of the configuration.

Since this is a vehicle with a normal 12v DC system, will the roboard's tolerate noise from an alternator?

I would like the device to power on/off with the key switch, similar to a radio. I assume the roboard boots up when it gets power? Is there a shutdown controller to tell the OS to shut down, or is the linux file system alright with loss of power?

The machine wouldn't log/store any data, but it would have some configuration files that may get modified. Are those safe to store on the microSD card?

Does the signal lead on the PWM outputs run at the full input voltage, or something less like 5V?

I see that there are two watch dogs. If the OS locks up, will the watch dogs turn off all the outputs and reboot the machine?

Someone mentioned possibly an issue with the SD card not getting good connectivity, and taking a couple reboots to get the machine to boot right. Is this a common issue? I would be using the board in an environment with some possible vibration, so I just want to ensure that the card isn't going to wiggle loose.

Thanks,
Lance

DresnerRobotics
05-12-2009, 10:51 PM
I'm a fan of the Roboard, I think its a solid board. Now that said- If you're putting this in a vehicle, why wouldn't you use a full sized motherboard, if not a Nano, Mini, or Pico ITX formfactor? I would think for what you are outlining here, the more horsepower the better... and that is one area the Roboard lacks. The Roboard is great if you want PC capability on a humanoid or small mobile robot... anything larger I can't see how the use of a Pico-ITX board or better could be ruled out in favor of the Roboard.

Adrenalynn
05-12-2009, 11:22 PM
I second that. You're really wanting a miniITX at the least. And with the 120watt ATX compatible wide-range power supplies and modern low-power processing, a full size board is well within reach.

A full size vehicle on only GPS and Inertial? That sounds like suicide! Are you sure you're looking to go this route given proper consideration? Make sure you have at least half a mile between it and anything living! ;)

mx270a
05-12-2009, 11:55 PM
I'm currently using a 1.2GHz Intel Mini ITX system running WinXP to do the steering processing along with the graphic display. I need the ability to read some analog sensors and control some relays or other PWM device to steer the vehicle. I've been using a USB connected IO card called the Fusion Brain, which is working fine. I want to offload the steering math to a different box that is dedicated to nothing but that. Physical size isn't much of an issue, but I really like the idea of the PWM outputs and analog inputs being right on the main board. Something like the Roboard with an Intel processor and more Ram would be perfect. Do you know of such a board?

I'm not concerned with power requirements, but a processor that requires more power will create more heat, and I like the idea of a fanless system that can run in a relatively warm environment.

The vehicle is a 250 HP farm tractor. We use GPS based "auto steer" to keep the vehicle driving straight, which allows the operator to concentrate on other things. Some systems use only GPS data and a single yaw sensor. Some have a 6 axis IMU, and some have a potentiometer or similar to measure the steering angle. We're using higher quality GPS data than you probably expect. Repeatable position accuracy can be as good as under one inch.

Roughly what speed of an Intel CPU would the roboard be equivalent to in terms of processing power?

-Lance

Adrenalynn
05-13-2009, 01:46 AM
I'm more familiar with differential gps than you'd probably expect. ;)

Depends upon whether you're trying to do floating point on it or not.

It's a 6 stage pipeline 32bit core with an FPU that's great if you're writing a thinclient. ;)

Overall, I'd probably compare it to a 400-500Mhz P2.

A fanless 800mhz miniITX is gonna embarass it...

mx270a
05-13-2009, 10:17 AM
Yes, there is a fair amount of floating point math that needs to be done, but what I consider to be a lot might not be anywhere near the limits of what can be done in a hundred million clock cycles. The GPS data is coming in at 5Hz, but I would like to be processing IMU data at 50-100 Hz.

Do you know of a fanless miniITX with a DC-DC power supply, analog inputs, and PWM outputs all on board?

-Lance

DresnerRobotics
05-13-2009, 11:31 AM
Any computer with a serial port and an SSC-32 will have PWM output. The integrated I/O on the Roboard is a space/weight luxury. If space and weight aren't a constraint, it's more financially and realistically feasible just to use a computer with an I/O board (such as the SSC-32).

Adrenalynn
05-13-2009, 02:44 PM
Or even better yet (and I'm a huge fan of the SSC-32), the Acroname sold here at Trossen. Up to 84 channels of PWM output and up to 36 channels of A/D input. Toss that board on a drainbamaged miniITX and you're a force to be seen.

nbdeveloper
05-23-2009, 10:11 AM
You know, I was getting pretty interested in this and thinking you've got to be using an old Toyota Tercel or Chevy Citation or some other late 70's early 80's hatch back but when I got to:

"The vehicle is a 250 HP farm tractor."

I just about died laughing. This definitley made my Memorial Day weekend. I think the 1/2 mile clearance can be reduced a bit. You don't have one of those high/low transmissions on that thing do you? It might be fun to get a solenoid on it. Wait, wait, wait...

Ok, get this rigged up with the RoBoard with a hidden web cam and a satellite internet connection then drive it down the road to 7-11 and see the reactions on peoples faces. Your town will be talking about the haunted tractor for years to come!

On a more serious note, are you setting this up to auto-crop a field for you? I'd be full in on a project like that. I like this robotics stuff but I think building a robot for the robots sake is silly. I recall seeing a video of a flopping fish robot and it just looked...junevile to me. Clever, but pointless. I hope that last comment doesn't invite an argument, I just sit on the practical side of the fence.

mx270a
05-23-2009, 10:39 AM
The transmission is an 18 speed. The newer tractors support the ability to change gears via command on the CanBus network. Actually, they can change gears, engine RPM, and all the other stuff.

John Deere has a system that is almost completely automated. When you come to the end of a field, the tractor will downshift a couple gears, lower the engine speed, raise the implement, turn the tractor 180 degrees, lower the implement back down, increase engine RPM, and upshift a couple gears. All the operator has to do is confirm that he want the tractor to turn prior to that sequence starting.

FYI, the Department of Transportation frowns on automatic steering while on the road.

The use of automatic steering and implement control are mainly due to efficiency. It produces more consistent seed placement in the field. It also means there is less overlap between passes, so there might be fewer passes across a field, which translates into a fuel and time savings.

I think I'm going to use an Intel based board as the primary computer. With the GPS data and steering control math, there are a lot of floating point calculations to do. However, the Roboard is still a pretty good solution for control of other things.

-Lance

Adrenalynn
05-23-2009, 10:53 AM
On a more serious note, are you setting this up to auto-crop a field for you? I'd be full in on a project like that. I like this robotics stuff but I think building a robot for the robots sake is silly. I recall seeing a video of a flopping fish robot and it just looked...junevile to me. Clever, but pointless. I hope that last comment doesn't invite an argument, I just sit on the practical side of the fence.


Like any other undertaking, there is a mastery of advanced skills that can be demonstrated in subtle ways that are more meaningful and appreciated by those with the experience to understand what it takes to cause them to behave in a certain fashion.

nbdeveloper
05-30-2009, 02:38 AM
touché

KLR233
07-22-2009, 03:03 PM
Hi everyone

I have just recieve my new toy, i strugled with the stuff during one entire week end to get it working! I'm running win xp sp1 with an usb wifi key on it and it's running fine!! Now it comes to coding. I'm trying to get three standard servo(futaba S3003) working but there is no way those little things moves!!
The executable (MFC + roboard lib + winio/dll/vxd/sys) produced with visual studio 2005 sp1 executes itself on the roboard without any problem(window showed, log working, no crash).
I've changed the pwm switch to be pull down, change the bios to get port0 & port1 to be gpio and each bits set as output with zero at start.
After init and choosing channel 0,1,2 doing the init then send pwm pulse and wait for the end (cycle 10000 µs duty 1500 µs) but those damn things just don't move. PLEASE HELP

here is the code

DWORD CMFCBotBrain2Dlg::MainThread(void * pthis)
{

unsigned long PWM_period = 10000;
unsigned long PWM_duty = 1500;
unsigned long SpeedCount = 100;
CString LogString_ST;
char pWork_c[150];

CMFCBotBrain2Dlg *pDial_O;
pDial_O = (CMFCBotBrain2Dlg *) pthis;
pDial_O->AddLog("Thread Start");
if (rcservo_Initialize(RCSERVO_USECHANNEL0 + RCSERVO_USECHANNEL1 + RCSERVO_USECHANNEL2) == RBAPI(false))
{
pDial_O->AddLog("RC SERVO INIT FAILED ");
pDial_O->AddLog(roboio_GetErrMsg());
}
else
{
pDial_O->AddLog("RC SERVO INIT SUCCESSFULL");
}

rcservo_EnterPWMMode();
do
{
rcservo_SendPWMPulses(RCSERVO_USECHANNEL0,PWM_peri od,PWM_duty,SpeedCount);
rcservo_SendPWMPulses(RCSERVO_USECHANNEL1,PWM_peri od,PWM_duty,SpeedCount);
rcservo_SendPWMPulses(RCSERVO_USECHANNEL2,PWM_peri od,PWM_duty,SpeedCount);
do
{
}
while(!rcservo_IsPWMCompleted(RCSERVO_USECHANNEL2) ,,);


if (PWM_duty != pDial_O-> PWM_duty)
{
PWM_duty = pDial_O->PWM_duty;
sprintf(pWork_c,"PWM DUTTY UPDATED %d",PWM_duty);
LogString_ST = pWork_c;
pDial_O->AddLog(LogString_ST);
}

}
while(pDial_O->QuitThread_b == false);

rcservo_Close();
pDial_O->AddLog("THREAD ENDED");
return (0);
}

CogswellCogs
07-23-2009, 10:43 AM
Disclaimer: I don't have a Roboard, but it's on my short list :)

First, do you see the log messages you expect ? I take it this method is supposed to run from a separate thread and I wonder if the thread gets started.

Second, do you have an oscilloscope to check the output pins ? It would be nice to know if thery're doing anything.

Third, I read that you can't use Roboard PWM library simultaneously with the R/C Servo library. Make sure you aren't trying both.

Sorry, that's the best I have.

Edit: I just realized something else. Are you sure the servos aren't moving ? 1500us is the center point for a servo. Maybe they don't need to move to get there.