batata004: @Paul_KD7HB thank you but in my case I wouldnt need the inverted pendulum to measure acceleration cause MPU6050 already does that, but it's not reliable enough, there is just too much noise.
@johnerrington thanks for your suggestion! I think the easier method might be using the additional wheel with encoder, but I am still investigating cause it would not be simple since the robot can make curves I would need a bearing on the wheel to allow it to rotate sideways!
You were asking about "movement" detection, not acceleration, etc. and a tilt switch on a cat whisker will give a DC signal when movement is detected.
Paul
@Paul_KD7HB is something is moving with constant speed there will be absolutely no tilt: impossible to distinguish if the robot is stationary or at constant speed.
batata004: @Paul_KD7HB is something is moving with constant speed there will be absolutely no tilt: impossible to distinguish if the robot is stationary or at constant speed.
Good observation! Of course, we are ALL moving if we are on the earth. So the movement sensor must be in relation to some other object, not actual movement. Determining that other object distance is the sensor needed.
Paul
I mean will the robot be in the jungle, the bottom of the ocean, on the polar ice caps, in your garage?
If being able to detect if the robot is moving or not is important, then use a dual movement detection scheme.
If an IMU was placed on a gimbal and the gimbal was counter torqued to keep it level the counter torque, as the robot moves, will be proportional to the movement of the robot. Of course you'll need an XY gimbal. With a MPU60XXXXX or a MPU90XXXX keeping a gimbal level as the device moves forward is easy to do, Kalman filters, Quaternions and the like. An Uno or Mega would not work; I tried it.
A Due, a STM32 or an ESP32 works on keeping a XY platform level on a moving device (hexapod).
Then add in a GPS and there is the dual verification thingy.
As your robot moves it cuts across magnetic lines of force, discounting objects moving by, as the robot moves, it will cut across those lines of force. Add in a GPS and you've got dual confirmations of movement.
As Idahowalker says, more information is needed on the environment. Is the environment in which the robot moves static or with many moving objects. Is the lighting completely uniform or will there be many shadows and different light levels.
In a static environment, with a lot of variations in lighting, even a simple photocell might work by monitoring a change in voltage. Although it might have to be tested, a PIR sensor without the lens cap might also work, but again it depends on if the environment is static or not.
We have similar problem. Our little buddy is rolling around inside an apartment. Sometimes something slippery might be under the wheel(s) and that's when we are lost. We have two wheels in front and a tail ball which is red by optical mouse's electronic and ps/2 mouse library. That is not the best solution, sometimes the ball won't roll even that the robot is moving perfectly as instructed, sometimes the mouse optics simply can't see the ball rolling.
We are looking for a subsitute for that. One thing that could help a bit is is gyroscope to find out one whell slipping, but as we are moving straight line and turning 90 degree, we are many times stucked on the doorways, wheels are too small (120mm dia) to get over the edge strip (is that a correct word?)
Have their been consideration given to using LIDAR?
I have a hexapod that walks around the house using LIDAR to navigate.
The LIDAR can be used to detect device movement, in a house, by measuring the distance to the thing in front of it. If the distance is changing then the robot is moving.