Open Ezward opened 1 year ago
@Ezward,
Might this be accomplished by the use of an inexpensive Lidar Scanner, such as the Slamtech A1-A3 family of Lidar scanners, along with a non-RTK GPS as the accuracy of non-RTK GPSs is at best 2.5 meters and GPS positional knowledge (drift) can deteriorate over time of use?
Regards, TCIII
@Ezward,
Might this be accomplished by the use of an inexpensive Lidar Scanner, such as the Slamtech A1-A3 family of Lidar scanners, along with a non-RTK GPS as the accuracy of non-RTK GPSs is at best 2.5 meters and GPS positional knowledge (drift) can deteriorate over time of use?
Regards, TCIII
A Lidar would help with the slow/stopping if a person or other obstacle was detected. I think it would not help with mapping the sidewalk outside (assuming there are no permanent obstacles on the sidewalk as the would void the 'walk' promise). But inside a network of hallways it could be very useful because 1) it could be used to know the precise width as the car drives 2) assuming the walls are perpendicular to each other you could also probably use it to figure out the car's heading relative to the walls 3) hallways probably have more semi-permanent obstacles I think, so they could be mapped.
What if we could correct the gps position based on recognizing a milestone on the path that has been well localized?
We know from using non-RTK GPS with the path follow template that non-RTK can be useful if it can be 'zeroed' out to subtract gps drift at the start of a race; then the drift during a race may be small enough to not be a problem. So if we can correct the gps position periodically as we drive, then even a cheap GPS could be used to navigate the path.
Now thinking about this in the sidewalk navigation scenario, what if you could correct your position when you come to a known milestone on the course. For instance what if each intersection was well localized ahead of time; perhaps by using satellite data/images or simply by using an RTK gps to measure each intersection's position. Of if not an intersection then a sign along the way; the sign itself might indicate it's position using a QR-Code; the vehicle, if it recognizes the QR code, will estimate it's position relative to the sign and then use that and the value contained in the QR code to reset it's gps position. That could be fun.
@Ezward,
An excellent suggestion.
This project is beginning to sound like the Hobby version of the Lunar Rover Challenge.
TCIII
Another simpler project might be to create a turn-by-turn navigation; like google navigate. A gps map of the sidewalk network would be given.
@Ezward,
As an alternative to using GPS for location, we could use extremely high resolution wheel encoders.
I have a 6WD robot chassis where the middle set of wheels is driven by motors with a high resolution wheel encoder on the back of the drive motor.
Due to the high resolution of the motor encoders, I can achieve an output of 0.3142 mm/ encoder tick of travel. Additionally, since the encoders are on motors in the middle of the chassis, left and right turns as well as pivot turns are accurately recorded.
The Rpi 4B mounted on this 6WD chassis is running the 921-path-follow-in-simulator
branch and does so quite well given the high resolution knowledge of wheel travel.
Without the use of GPS-RTK, the accuracy of a Ublox NEO-M9N GPS, without dead reckoning, is at best 2.5 meters and can drift with time.
Comments?
@Ezward,
As an alternative to using GPS for location, we could use extremely high resolution wheel encoders.
I have a 6WD robot chassis where the middle set of wheels is driven by motors with a high resolution wheel encoder on the back of the drive motor. Due to the high resolution of the motor encoders, I can achieve an output of 0.3142 mm/ encoder tick of travel. Additionally, since the encoders are on motors in the middle of the chassis, left and right turns as well as pivot turns are accurately recorded. The Rpi 4B mounted on this 6WD chassis is running the
921-path-follow-in-simulator
branch and does so quite well given the high resolution knowledge of wheel travel.Without the use of GPS-RTK, the accuracy of a Ublox NEO-M9N GPS, without dead reckoning, is at best 2.5 meters and can drift with time.
Comments?
@TCIII I think encoders are really great to maintain a path between GPS updates, which might be slow (7 per second) and as a backup for short periods of time if GPS fails. However because they accumulate error we need some external way to localize to effectively reset the accumulated error. So we need GPS or visual odometry or something.
Potential data sets for a sidewalk segmentation model
Free space segmentation for navigating sidewalks: https://docs.nvidia.com/isaac/archive/2020.1nx/packages/freespace_dnn/doc/freespace_segmentation.html
If we were to do this indoors using corridors, where is a paper on corridor navigation; https://www.semanticscholar.org/paper/Vision-based-assistance-for-wheelchair-navigation-Pasteau-Krupa/3306150d768c833864c0fbd243ab06fd6a6af70e
Visual odometry and depth camera for wheel chair navigation; https://www.cs.ubc.ca/~mack/Publications/ViswanathanIROSWorkshop2011.pdf
Good article on image segmentation techniques; https://www.v7labs.com/blog/image-segmentation-guide
Interesting discussion. May I know how is the plan on going now?
@Alex-Beh,
Due to all the prior programming commitments, probably on a back burner at the moment.
TCIII
The idea here is to create an autopilot that can flexibly drive on a network of sidewalks, making decisions at each intersection. The goal would be an autopilot that could be reprogrammed to drive a specific path or circuit within a sidewalk network simply by giving it a list of turns.
Create an autopilot that can
The first version of the autopilot would do this without GPS. So if a outdoor sidewalk network is not available, but an indoor network of hallways is available, then the same kind of autopilot could be created for the hallway navigation.
The 'make a decision' piece would be configurable
Elaborations (these can all be done as separate projects)