jinx
08-15-04, 09:00 AM
Hi,
Maybe this belongs more in the software section but it's about hardware performance so I post it here.
We've been evaluating the Isopod v0.6 for the past 6 months as a possible IO controller candidate for our new low-cost mobile robot platform for University research. We will be mass-producing more than a hundred of these by next year, when we finalise design and test the software control package.
Our experience with the Isopod so far has not been great. Though it boasts of an impressive list of features, we haven't really been able to squeeze what we want from it, with real-time robot control.
The first problem comes with the speed of the ADC sampling. We aren't able to get more than 30 samples per second, fromt the port, when our current requirements are at least 5Khz. We need this for inertial guidance using accelerometers.
We also need to send 10Hz sonar packets back to the main robot over serial. But the moment we do that, the serial line is chocked and the isopod responds to servo commands coming from the robot really late.
All this doesn't seem to be the performance of an 40-80Mhz processor.
I suspect it is also a problem with the way our code is organised. Maybe we aren't taking enough advantage of the Isomax parallel processing? We are using macros wherever possible to minimise state machine usage.
Since we need to finalise our candidate in the next 1 1/2 weeks, I was hoping that the NMI team would be able to help us out. It is critical that we get the I/O right, because we cannot recall 100 copies of the robot,once we give it for prodcution.
I am not pasting the code here since it's quite long. Is there some way I could mail it/post it separately so that you folks can take a look at it? Then you would be able to tell us whether the code is really causing the problem or whether the Isopod is not capable of giving what we're asking from it.
We really like the Isopod features and programming style and would be really sorry to have to let it go. Hence this urgent post for help.
thanks for your time,
regards.
jinx.
Maybe this belongs more in the software section but it's about hardware performance so I post it here.
We've been evaluating the Isopod v0.6 for the past 6 months as a possible IO controller candidate for our new low-cost mobile robot platform for University research. We will be mass-producing more than a hundred of these by next year, when we finalise design and test the software control package.
Our experience with the Isopod so far has not been great. Though it boasts of an impressive list of features, we haven't really been able to squeeze what we want from it, with real-time robot control.
The first problem comes with the speed of the ADC sampling. We aren't able to get more than 30 samples per second, fromt the port, when our current requirements are at least 5Khz. We need this for inertial guidance using accelerometers.
We also need to send 10Hz sonar packets back to the main robot over serial. But the moment we do that, the serial line is chocked and the isopod responds to servo commands coming from the robot really late.
All this doesn't seem to be the performance of an 40-80Mhz processor.
I suspect it is also a problem with the way our code is organised. Maybe we aren't taking enough advantage of the Isomax parallel processing? We are using macros wherever possible to minimise state machine usage.
Since we need to finalise our candidate in the next 1 1/2 weeks, I was hoping that the NMI team would be able to help us out. It is critical that we get the I/O right, because we cannot recall 100 copies of the robot,once we give it for prodcution.
I am not pasting the code here since it's quite long. Is there some way I could mail it/post it separately so that you folks can take a look at it? Then you would be able to tell us whether the code is really causing the problem or whether the Isopod is not capable of giving what we're asking from it.
We really like the Isopod features and programming style and would be really sorry to have to let it go. Hence this urgent post for help.
thanks for your time,
regards.
jinx.