Close

​Gravity is Yet Another Variable

A project log for Tethered Haptics Using Morse Pulses

Waves of Dits and Dahs in a Tether Sea

lee-djavaherianLee Djavaherian 08/21/2018 at 05:460 Comments

I thought I had the five most important variables taken into account for practical tethered haptic detection on my oblique cablebot, but the force of gravity itself, not just the weight of the craft, added a sixth.  I didn't notice this when testing my craft horizontally or even at a slight X-axis tilt, but when I was testing the motor yesterday, at extreme tilts to the side, the threshold for X-axis detection seemed to increase, making recognition more difficult, even if I struck the tether along that same tilted axis.

This shouldn't be an issue for typical, vertical hoistbots that remain level, as you're always going to have the same constant level of acceleration due to gravity which can be subtracted by the accelerometer, but my prototype is an oblique cablebot which is designed to tilt throughout the day for accurate solar alignment.

Gravity does two additional things in my case: it presents a changing source of acceleration to the X-axis accelerometer when tilted at different angles (of which I already took advantage for pitch/roll detection for the craft), and it seems to limit the amplitude of the wave pulse along the same axis, reducing the detection sensitivity.

If the craft is plucked along a leveled X-axis, it can oscillate horizontally fairly easily, but if the craft is tilted sharply, like an airplane banking with its ailerons, gravity acts like a spring pushing against one side, and the taut tether acts like a spring pushing back (confining the pulse between a rock and a hard place, so to speak.)  Imagine placing a small wooden board on a lake and pushing it sideways, which only takes slight effort, versus turning the board sideways and trying to push it underwater or lift it out of the water, which takes more force to move the same distance.

So I turned on the LIS3DH high-pass filter using CTRL_REG2 to allow me to cancel out the DC component (gravity) for click detection, which allows the pulse to be more easily seen by the accelerometer.  This helps, but the reference needs to be adjusted, by using the REFERENCE register, for each tilt angle.  I've been experimenting with the Autoreset feature, as well.  So I plan to add more code to my prototype to set the reference a minute or so after each motor tilt operation (to allow the craft to swing to a halt).  And then I may also read the tilt angle and increase or decrease the threshold, CLICK_THS, dynamically, which should counter any remaining effect.

Again, the #TrillSat project prototype is a more complicated use of the THUMP haptic system.  I described some the particular difficulties in it's log entry here.

Discussions