Testing a Ground-based PMW3901 Optical Flow Sensor

  Рет қаралды 4,948

New Zealand Personal Robotics Group

New Zealand Personal Robotics Group

4 жыл бұрын

Normally the PMW3901 Optical Flow Sensor is used by flying drones to measure the distance moved over the ground. In the case of a Mecanum-wheeled robot, the PMW3901's camera would be mounted just over its 80mm minimum focal distance and its x,y output used for the robot's odometry, i.e., to measure how far the robot has traveled.
While the sensor itself provides numeric values, this video shows a test rig using a 5x5 RGB LED matrix that indicates which direction the sensor has moved by color: red for port movement, green for starboard, cyan for forward and yellow for aft.

Пікірлер: 16
@VigneshBalasubramaniam
@VigneshBalasubramaniam Ай бұрын
Downside of these sensors is that they have to be pretty far away from the surface to track a fast moving robot. A way of solving this is simply flipping the sensor to instead aim at the ceiling instead of the floor, which should be much farther away in most scenarios.
@NewZealandPersonalRobotics
@NewZealandPersonalRobotics Ай бұрын
The working range of the PMW3901 is 80mm to infinity, as it was (to my understanding) designed for use with flying drones. So it's fine on a Mars rover or other robot that's at least 80mm from the ground, but can't be used any closer than that. But flipping them to look at the ceiling won't work either, as they are effectively a low-resolution camera that relies on detail in order to determine movement, and most ceilings have little to no detail, just an expanse of white paint. I lobbied Pimoroni to consider implementing a sister sensor, the ST PAA5100JE, which is almost identical to the PMW3901 except its operating range was designed for something like a robot vacuum, 15-35mm, and they happily went ahead and developed the product as a Breakout Garden board. I described this in a blog post at: robots.org.nz/2021/07/09/the-paa5100je-near-optical-flow-sensor/ Now, there's still that range between the two sensors, i.e., between 35mm and 80mm, that's not covered by either, and while it's possible to mount a PAA5100J below a tall robot, one would be sacrificing ground clearance. As with many things in robotics, a compromise...
@Simon_Rafferty
@Simon_Rafferty 3 ай бұрын
Targeting a drone in the event of jamming is way easier than using AI. You can use an off the shelf Optical Flow Sensor such as PMW3901 tied to the flight controller to keep it flying towards the same object, if it looses contact with the controller. So long as the target is kept in the centre of view during the approach, it will continue towards, even a moving target. All for $10 worth of hardware & a bit of easy software.
@shivam4499
@shivam4499 Жыл бұрын
Do you know what angle the cone of light sensed is? I couldn't find any of that information in the datasheet. I plan to use this similarly with a cutout near the lens and want to make sure the opening is big enough (or close enough) to not interfere with the light.
@CyberPilot360
@CyberPilot360 3 жыл бұрын
Pretty sweet. Did you use the ledn pin for syncing the led with the flow update rate ?
@NewZealandPersonalRobotics
@NewZealandPersonalRobotics 3 жыл бұрын
Thanks! If you mean the RGB LED, no. The code for the PMW3901 sensor doesn't send any data at all when it doesn't sense movement (so there's no default data rate), and then spits out x,y coordinate data as it does. I'm just listening for this data in a loop and updating the RGB LED as that data comes in.
@memelab2007
@memelab2007 11 ай бұрын
Cool demo. Are you processing this with an Arduino, and if so what library are you using? I have a version of this chip on a breakout board and am not having any luck initializing it. Thanks.
@theredstormer8078
@theredstormer8078 3 ай бұрын
The robot has a raspberry pi onboard so I would assume it uses that.
@HanClinto
@HanClinto 2 жыл бұрын
Have you found any optical flow sensors that include rotation as one of the values returned? It's annoying to me that we have to get rotation out of gyro or other means -- it seems like optical flow algorithms should be able to return rotation delta just as well as it does X and Y, but so far it seems like all of the ASICs that I've run across only return X and Y.
@NewZealandPersonalRobotics
@NewZealandPersonalRobotics 2 жыл бұрын
No, and there must be a good reason for that as I've viewed the tiny black and white movie that gets created so I get your point, but there must be some good technical reason why these sensors don't return a rotation delta. Even the significantly more expensive ones don't. Must be problematic to interpret image rotation in real time.
@ai-matt
@ai-matt 13 күн бұрын
You could have two of them and extrapolate the rotation based on the x/y change delta between them.
@HanClinto
@HanClinto 13 күн бұрын
@@ai-matt That's a really good idea -- I like that!
@akumal5819
@akumal5819 2 жыл бұрын
Does this flow sensor works on plain or less textured floor . are you still using this sensor for odometry ?
@NewZealandPersonalRobotics
@NewZealandPersonalRobotics 2 жыл бұрын
I've done some fairly extensive testing on the PixArt PAA5100JE, a sister to this sensor designed for close distances more suited to ground-based robots. I'd suggested to Pimoroni that it would be better than the PWM3901 (which is really designed for flying drones) and they're now selling it, which is great. What I've found is that you can calibrate to fairly accurate distance tracking on a single floor type, but if your robot goes from say grass to concrete to wood floor, the numbers sent back by the sensor will vary depending on surface, basicaly on surface complexity. It does still work on a "plain" floor if it has some kind of surface irregularity. On a smooth featureless tile its camera isn't able to discern detail, but you can help it out by adding additional white LEDs underneath to supplement the ones it has. But in short, it works better on surfaces that have *some* texture.
@akumal5819
@akumal5819 2 жыл бұрын
@@NewZealandPersonalRobotics I already bought PAA5100JE, which is only for close distance .now I've the PWM3901. .i'm going to tracking the ceiling. I've not installed on the robot yet Thank you very much for the reply.
Optical Flow - Computerphile
8:24
Computerphile
Рет қаралды 102 М.
He sees meat everywhere 😄🥩
00:11
AngLova
Рет қаралды 11 МЛН
Heartwarming: Stranger Saves Puppy from Hot Car #shorts
00:22
Fabiosa Best Lifehacks
Рет қаралды 20 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 54 МЛН
Did you believe it was real? #tiktok
00:25
Анастасия Тарасова
Рет қаралды 51 МЛН
US Testing Its Monstrously Powerful $500 Million Rail Gun
10:36
Fluctus
Рет қаралды 14 МЛН
25 COOL TOOLS YOU MUST SEE
10:02
TECH HUB
Рет қаралды 468
467 Radar Sensors from $3 to over $100: Which one is Best?
14:31
Andreas Spiess
Рет қаралды 163 М.
MR01 Mars Rover First Demo of Closed-loop Control
1:13
New Zealand Personal Robotics Group
Рет қаралды 602
The greatest clock (and map) ever made
21:19
Attoparsec
Рет қаралды 418 М.
Gearless Magnet Bike
17:57
Tom Stanton
Рет қаралды 6 МЛН
PX4FLOW Autonomous Flight with PX4FMU
1:47
PX4 Autopilot - Open Source Flight Control.
Рет қаралды 96 М.
В России ускорили интернет в 1000 раз
0:18
Короче, новости
Рет қаралды 1,8 МЛН
Klavye İle Trafik Işığını Yönetmek #shorts
0:18
Osman Kabadayı
Рет қаралды 380 М.
ИГРОВОВЫЙ НОУТ ASUS ЗА 57 тысяч
25:33
Ремонтяш
Рет қаралды 345 М.