Subject:
|
Re: Sensor port cross talk
|
Newsgroups:
|
lugnet.robotics.rcx.java
|
Date:
|
Thu, 1 Aug 2002 00:39:12 GMT
|
Viewed:
|
4447 times
|
| |
| |
This is certainly a known defect in the input circuitry in the RCX. I know
nothing about other kernels apart from the standard Lego one (via NQC) but
the results of my examining the problem indicated that the ports are scanned
in reverse order, 3 - 2 - 1, and that inadequate settling time is allowed
between channels for full 10 bit accuracy - but then this is only an RCX,
not a real scientific instrument. So 3 will affect 2, 2 will affect 1 and 1
won't affect anything.
The real answer is to realise, that as in other areas where software has to
deal with "real world" data, it will be noisey and unreliable - that is
where the rigid determinism of pure software meets the random effects often
encountered in sensor data processing - at the input terminals.
The "normal" way to deal with this is to understand all the effects that may
upset sensor data measurements - settling time, quantization errors,
non-linearities and honest to goodness noise and create software filters
which take them all into account.
In particular, algorithms to process the raw data from R, 2R, 4R, 8R touch
sensor muxes have to be very carefully designed to optimise the threshold
spacing between the 16 discreet states possible.
JB
In lugnet.robotics.rcx, Roger Glassey writes:
> A light sensor connected to port 2 can cause on output from port 1. To see
> this (if you are using lejos), download the View object and hook up a light
> sensor to port 2. On my RCX, the port 1 raw values fluctuate between about
> 1010 and 1019. A similar effect can be observed by viewing port 2 and
> connecting the light sensor to port 3. These are the only combinations show
> this kind of cross talk. If the light sensor is connected to a port that is
> activated (so the red light glows), the cross talk effect is not visible.
> This caused a problem because I was using port 1 to multiplex several touch
> sensors, so S1 was in raw mode. A light sensor was connected to port 2 but
> was not activated. The SensorListener monitoring S1 suffered repeated
> calls to its stateChanged() method before any touch sensor was bumped.
> Which took me some time to figure out. The solution is to discard any raw
> values from S1 that are larger than 1000. (or else active S2 earlier)
> Has anyone else been bitten by this undocument feature?
> Roger
|
|
Message has 1 Reply: | | Re: Sensor port cross talk
|
| (...) Yes. I avoid using raw mode whenever possible because of the background fluctuations I see in sensor values. These could quite easily swamp the VM making the robot appear unresponsive. Whereever possible I use percentage values if I need (...) (22 years ago, 1-Aug-02, to lugnet.robotics.rcx.java)
|
Message is in Reply To:
| | Sensor port cross talk
|
| A light sensor connected to port 2 can cause on output from port 1. To see this (if you are using lejos), download the View object and hook up a light sensor to port 2. On my RCX, the port 1 raw values fluctuate between about 1010 and 1019. A (...) (22 years ago, 1-Aug-02, to lugnet.robotics.rcx)
|
4 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|