2

Veins で事故回避スキームを実装しています。TracIDemo11p.cc を修正し、onData 関数を次のように変更しました -

void TraCIDemo11p::onData(WaveShortMessage* wsm) {
    findHost()->getDisplayString().updateWith("r=16,green");
    annotations->scheduleErase(1, annotations->drawLine(wsm->getSenderPos(), traci->getPositionAt(simTime()), "blue"));
    if (!sentMessage)
    {
        traci->commandSlowDown(0.0,4);  //speed changes smoothly to 0 in 4sec
        sendMessage(wsm->getWsmData());
    }
}

メッセージ受信後、4秒以内に減速停止させたい。しかし、このことは起こっていません。事故が発生すると、最初の車両はすぐにブレーキをかけ、残りの車両は通常どおり停止します。どこが間違っていますか?提案してください。

4

2 に答える 2

0

事故回避動作は、デフォルトで TraCI コマンドをオーバーライドします。「速度モード」コマンドを使用して、安全でない運転を明示的に有効にする必要があります。http://sumo.dlr.de/wiki/TraCI/Change_Vehicle_State#speed_mode_.280xb3.29を参照してください。

于 2016-05-31T06:04:07.607 に答える