Comments (5)
(Gazebo's depth camera plugin pads invalid points with inf, for example, or D435 depth camera optionally pads these points with 0)
So those points are invalid? They shouldn't be used to raycast then. We need some kind of "hit" to know an obstacle is there to raytrace up-to. Laser scanners have the option for inf is valid because those are active laser sensors and no return is better-chance-than-not total clear space past the bounds of its power rating. 3D sensors are frequently passive or with an abundant reasons why you wouldn't get data back for a particular pixel, so the assumption that Inf
is a meaningful measurement is mostly untrue in my experience.
from navigation2.
3D sensors are frequently passive or with an abundant reasons why you wouldn't get data back for a particular pixel, so the assumption that
Inf
is a meaningful measurement is mostly untrue in my experience.
Depth cameras might perform worse than laser scanners in some environments, but this is not a reason to exclude such an important feature. People might have to rely on these solutions due to budget reasons. I am not sure it the correct approach to dismiss a feature simply because it might generate false positives due to low quality sensors. This should be up to the developers of the application, they can simply test it and disable it if it performs worse.
from navigation2.
Its a physical characteristic of the sensor modality and we should provide the appropriate features that represent the model of sensor we're working with. If we expect that a sensor will produce no measurements for some portions of the reading due to how it computes depth, then we can't derive any kind of clearing information from that lack of measurement - it is not necessarily or even likely from valid freespace with passive or even what you might refer to as an active RGB-D cameras.
from navigation2.
I really am not convinced this justifies the omission of this feature, but as I am relatively new, I respect your viewpoint. Thank you for the explanation.
from navigation2.
Here is the part where obstacle layer handle the inf laserscan data:
float epsilon = 0.0001; // a tenth of a millimeter
sensor_msgs::msg::LaserScan message = *raw_message;
for (size_t i = 0; i < message.ranges.size(); i++) {
float range = message.ranges[i];
if (!std::isfinite(range) && range > 0) {
message.ranges[i] = message.range_max - epsilon;
}
}
You can have a try to subscribe the laserscan and camera's pointcloud data. And you will observe that camera will return a empty list rather than a list full of inf value when camera is facing a empty space. Comparing with camera.Laserscan's return data will full of inf value. The code upon show up that you must have a value so that you can change their inf value to max_range.But if the list is empty.It's meaningless to handle them.
from navigation2.
Related Issues (20)
- [collision_monitor] Add temporal axis to min_points behavior HOT 2
- [ERROR] [1716697697.080277840] [rviz2]: Lookup would require extrapolation into the future. Requested time 1716697697.040514 but the latest data is at time 1716697697.039929, when looking up transform from frame [laser_frame] to frame [odom]
- Laser Scan rotates with robot ------- [ERROR] [1716697697.080277840] [rviz2]: Lookup would require extrapolation into the future. Requested time 1716697697.040514 but the latest data is at time 1716697697.039929, when looking up transform from frame [laser_frame] to frame [odom] HOT 1
- [for help] action `follow_path` doesn't work (humble) HOT 7
- Changing the params file HOT 1
- Understand MPPI Critics and parameters HOT 2
- 18 bugs (UAF) in `nav2_amcl` by setting dynamic parameters HOT 6
- MPPI ARM Binaries Issue HOT 9
- velocity smoother deadband velocity as an interval HOT 4
- Remove old Gazebo stuff once new gazebo lands HOT 9
- revisit nav2_behavior_tree workarounds HOT 3
- test_decorator_speed_controller complains about not finding template specialization (but succeeds) HOT 3
- Caching SmacPlannerHybrid's dist_heuristic_lookup_table HOT 1
- Issue on Starting up Nav 2 HOT 2
- Complete Port to modern Gazebo List
- Add in optional keepout / speed zones for example in new warehouse maps
- [AMCL] Robot pose's covariance on turns HOT 3
- Nav2 Docking: Add Option for Reversing into Dock
- Nav2 Docking: Optional Collision Checking on undocking / docking
- Nav2 Docking: Option for Non-Charging Dock Plugin Types
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from navigation2.