Comments (1)
Hi, sorry for the late answer. But somehow I missed the opening of this issue. But better a late answer than none...
As we are currently focusing on integration with CARLA simulation (carla-simulator/carla#1935) and beyond the open pull request working on supporting scene creation based on the open drive map including intersection and traffic light handling, we didn't look into the details and actual implementation of unstructured roads, yet. But I see, when you are focusing on a mobile robot, there are usually no predefined lanes... but the rules for unstructured roads also might have to be applied on the road if you think on the traffic around e.g. "Arc de Triomphe".
Let me try to give some comments here and start the discussion on how we might be able to actually implement this. I believe, an implementation will not require to calculate every possible trajectory. A safety layer like RSS mainly has to consider the outer boundaries of the reachable set; nothing else is done by the calculations at the 'in lane'/ 'structural' case. Therefore the trajectories to be calculated are the extreme ones (see e.g figure 11 in the original RSS paper https://arxiv.org/abs/1708.06374); one has to ensure that the checks consider the area in between as 'occupied', too when calculating the distances.
Then you have to take into accout that after the response time braking has to be applied as in the structural case (maybe that's not so obvious when you didn't work with RSS before). The lateral analogy is then to stop the change of circle radius what will lead to driving on a circle where the circle is the analogy of the lane. So the bounds on the heading change are only relevant within the response time and are the analogy of lateral acceleration within the respose time. After response time + some time to come to drive with a fixed radius (might be very short, I believe), the vehicles are expected to drive on a circle with that fixed radius.
This is true for the braking trajectories as well as for the continue forward trajectories! The difference between braking and continue forward trajectory is in the longitudinal direction only: the braking trajectories perform braking as in the structured case at least with brake min (and come to a full stop), where the continue forward trajectories are allowed to further accelerate or brake as they wish. So both longitudinal movement strategies are within some given the acceleration bounds what again allows to consider the extrema. In the unstructured case longitudinal and lateral dimensions are much more tight to each other, that's true, but looking at the combination of the extremes (lat-min/long-max), (lat-min/long-min), (lat-max/long-max), (lat-max/long-min), for every point in time (proper sampling rate to be determined) one should be able to span some kind of polygon hull approximation of the area the vehicle/robot potentially can be in (ensuring the worst case under the given constraints is always covered)... and based on this calculate if these two hulls overlap. A first quick check might even be able to take the union of these hulls over time into account (summing up to some kind of triangle-like polygon) as a speed up for vehicles that are still far away from each other (in respect to reaction time, speed and acceleration parameters) and only require the detailed sampling in time if the quick check detects a collision.
In addition, when taking the Definition 22 into account, for safety calculations one never compares two forward trajectories with each other. What in the end restricts the time horizon for the checks.
Having said this, I believe that the required calculations are in fact hand-able... at least to my current understanding; but we didn't look into the details there yet.
There are some other features even higher in the working list like: handling of occlusions in conjunction with CARLA implementation, AD map data and ego-vehicle sensor coverage as well as support for Pedestrians. Where the latter, is directly connected to the unstructured road use-case.
Hope this provides a bit more information ... but for sure, my current thoughts might be wrong here ... so don't nail me down ;-)
Bernd.
from ad-rss-lib.
Related Issues (20)
- Use standard from CMake HOT 1
- Can the Ad-RSS-lib be used/integrate with other simulators like LGSVL/ROS world HOT 1
- Is it possible to use ad-rss-lib with only LiDAR as an input? HOT 1
- LaneDirection estimation in RssObjectPositionExtractor::newLaneSegment HOT 2
- cmake ad_physics error HOT 1
- Always returning safe except when the Ego vehicle hits the leading vehicle HOT 2
- Issue with colcon building (duplicated dependency package spdlog) HOT 2
- "×××××× spdlog.cpp.o"can not be used when making a shared object; recompile with -fPIC HOT 3
- Carla-RSS "Build" process HOT 5
- Is this project dead? HOT 1
- No doxygen doku of map integration
- Question: Init object by metric coordinates in map_integration HOT 2
- Suppress spdlog HOT 2
- RSS Sensor crashes Carla Simulator-0.9.13 HOT 2
- Extended logging / response a log from RssCheck HOT 2
- Clang-format update HOT 1
- questoins about rss-lib document HOT 8
- compile error of boost lib HOT 2
- fatal error: odrSpiral.h: No such file or directory
- Unclear usage in the python example HOT 1
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 ad-rss-lib.