Hi,

I am currently looking  for a simulation tool to develop algorithms in the
field of automated driving. Realistic traffic is therefore really important
in order to project the reality into the simulation.
SUMO as a microscopic traffic simulator seems to provide great capabilities
in simulating traffic flow.

However no sub-microscopic effects are taken into account. The vehicle
dynamics in particular are disregarded.
Some recent developments look really promising:
- Sublane model
- Enhanced movetoXY function
- laneChange.duration (but very often not realistic)

Since my knowledge of SUMO is still somewhat limited, I would like to hear
your opinions regarding my plan to integrate vehicle dynamics into the
simulation.

My plan is the following:

A radius around one ego-vehicle will be defined. Other traffic participants
exist only within this radius.

A vehicle dynamics model needs to be defined:
Input: Accelerations (ax, ay) and Yaw-Rate
Output: Velocities (vx, vy) and Yaw-Angle
The vehicle state is comprised of accelerations, velocities and yaw-angle
and can be calculated with finite-differences and saved to a variable. For
the longitudinal dynamics, a first-order-lag system could be used (see
PLEXE).

Ideally SUMO provides a signal for every vehicle that marks the start of a
lane-change and also the information of the target-lane or ideally target
point (x,y,velocity) can be extracted (getBestLanes? getLaneID?).

Next, realistic lane-change trajectories should be learned from data. A
mean trajectory, parametrized by velocities could be extracted and used as
"candidate-trajectories". Some stochasticity can be provided by sampling
from a distribution and superimpose these over the "candidate-trajectories".

The whole process of updating the vehicles could look somehow like this
(short "pseudo-code"):

for veh_id in veh_ids:
    if laneChangeTrigger(veh_id) == true:
        goal_state = getGoalState(veh_id) <- "x,y,psi,v"
        candidate_trajectory = planTrajectory(veh_id, veh_id_state,
goal_state)
        realistic_trajectory = overlayTrajectory(candidate_trajectory)
        for trajectory_point in realistic_trajectory:
            veh_id_new_position = moveToXY(moveVehDynamically(veh_id,
trajectory_point,
                                                               veh_id_state)


Using a small value of --lateral-resolution should make sure that SUMO
internally gets the correct representation of the scene and free drivable
space.

These are some ideas regarding the integration. What do you think about
this? Does SUMO's TraCI interface provide all the necessary functionality
in order to realize the above described behaviour? Is it computationally
tractable? What problems could be encountered?


Best regards
Manuel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
sumo-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sumo-user

Reply via email to