|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#16
|
||||
|
||||
|
Re: Optical mouse for mecanum Odometry?
Quote:
|
|
#17
|
||||
|
||||
|
Re: Optical mouse for mecanum Odometry?
Quote:
If you let A = R/r, b = Ω, and x = V, then the inverse kinematic equation for b (given A and x) is: b = Ax ... and the least-squares forward kinematic solution is given by solving the inverse kinematic equation for x (given A and b), which can be done several different ways (one of which is shown in the linked paper). The residuals are then a straightforward computation: residuals = b - Ax If you intend to pursue this further and need help with the math you can start a new thread. |
|
#18
|
|||
|
|||
|
Re: Optical mouse for mecanum Odometry?
The quick answer is many have tried to use optical mice for Odometry, and the consensus is it doesn't work. Commercial robots (Fetch, Savioke) solve SLAM(Simultaneous Location and Mapping) using a variety of techniques combined with odometry. These include lidar, sonar, optical flow, compasses, accelorometers, etc. Some use wifi and optical features (Fiducuals). While odometry is ok for rough distance, it is not so good for determining pose.
It is interesting to consider why this is. Typically, a differential robot is controlled by adjusting the speed of the motors via PID. So getting the robot to go straight in autonomous should be easy (Ha.). Even if you could get motors to respond perfectly to speed commands, wheel alignment, slipping, mechanical differences all conspire to mess with you. Turning is worse. to turn in place with a diff drive, the wheels need to rotate opposite directions simultaneously for preciously . With good odometry you should be able to get an FRC robot to go forward 10ft within about 6 inches in autonomous. Try to make a 10ft square and see you'll be 3 feet off and turned 30 degrees. |
|
#19
|
||||
|
||||
|
Re: Optical mouse for mecanum Odometry?
Quote:
Mecanum "forward kinematics" (least squares fit of vehicle motion given wheel speeds): Code:
FWD = r*(w1+w2+w3+w4)/4 STR = r*(w1-w2+w3-w4)/4 Wv = (1/k)*(w1+w2-w3-w4)/4 r is wheel radius k is |trackwidth/2| + |wheelbase/2| w1,w2,w3,w4 are FL,BL,BR,&FR wheel speeds in rads/sec Wv is robot clockwise rotation rate in radians per second |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|