Получение угла поворота автомобиля в SUMO с Traci4j
Я хочу работать вместе с SUMO и OMNeT++, чтобы создать симуляцию VANET. Для этой цели я использую библиотеку Traci4j для Java (доступна по адресу https://github.com/egueli/TraCI4J), которая позволяет взаимодействовать с SUMO с удаленного порта.
Прежде всего, я хотел бы заявить, что я знаю, что вены существуют, но мне настоятельно необходимо сделать это с помощью Java как части моего бакалаврского тезиса.
На данный момент я могу получить все транспортные средства, которые едут по моей сети, и определить их скорость и положение (X,Y). Тем не менее, я также хотел бы получить направление (угол), в котором движутся эти машины.
Я просматривал различные методы, содержащиеся в Traci4j, но ничего не нашел. Единственная связанная часть кода, которую я нашел, находится в классе Constants:
/** angle (get: vehicle) */
public static final int VAR_ANGLE = 0x43;
Но я не очень понимаю, для чего это нужно. Как вы думаете, возможно ли получить этот атрибут из транспортных средств?
Буду признателен за любую помощь. Спасибо!
1 ответ
Атрибут угла доступен через TraCI, но соответствующее сообщение не реализовано в TraCI4J. Возможно, вы захотите переключиться на TraaS, в котором реализована эта функция и в целом считается лучше с точки зрения функционального охвата протокола TraCI. Этот (непроверенный) фрагмент может помочь:
import de.tudresden.sumo.cmd.Vehicle;
import it.polito.appeal.traci.SumoTraciConnection;
SumoTraciConnection conn = new SumoTraciConnection(sumo_bin, config_file);
conn.runServer();
//load routes and initialize the simulation
conn.do_timestep();
double angle = (double) conn.do_job_get(Vehicle.getAngle("v0"));