Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(perception): Use 2D bounding boxes for Occlusion Modifiers #343

Merged
merged 18 commits into from
Sep 12, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9736332
fix(perception): some fixes in perception model
schwepmo Aug 17, 2023
3bad5e6
feat(perception): initial, non-functional bounding box occlusion
schwepmo Aug 17, 2023
ce70fc2
feat(perception): added bounding box occlusion modifier (needs to be …
schwepmo Aug 17, 2023
96dd40e
feat(perception): added bounding box attribute to SpatialObject and p…
schwepmo Aug 18, 2023
0a4e4e4
feat(perception): added additional check in BoundingBoxOcclusionModif…
schwepmo Aug 21, 2023
3727cca
feat(perception): extended bounding box occlusion test
schwepmo Aug 21, 2023
1a2beb2
fix(perception): working on PR-review
schwepmo Aug 30, 2023
66ef4ba
Merge branch 'main' of github.com:eclipse/mosaic into 630-bounding-bo…
schwepmo Aug 30, 2023
1146d2e
fix(perception): working on PR-review
schwepmo Aug 30, 2023
b5493fa
fix(perception): working on PR-review
schwepmo Aug 30, 2023
c602258
cleanup(mapping): fixed check style warnings
schwepmo Sep 4, 2023
ab4e511
cleanup(apps): fixing spotbugs warning in example app
schwepmo Sep 4, 2023
ee82c00
cleanup(perception): fixing spotbugs warning in perception objects
schwepmo Sep 4, 2023
188b531
cleanup(perception): trying to fix spotbugs warning in perception obj…
schwepmo Sep 4, 2023
b4e93a1
cleanup(perception): trying to fix spotbugs warning in perception obj…
schwepmo Sep 4, 2023
a39a6e7
cleanup(example-apps): fixing spotbugs warning example app
schwepmo Sep 4, 2023
9c5ce92
cleanup(perception): tyring to spotbugs warnings in perception
schwepmo Sep 4, 2023
af515e4
cleanup(perception): reverted additional variable
schwepmo Sep 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import org.eclipse.mosaic.rti.TIME;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -186,6 +187,14 @@ public boolean equals(Object obj) {
.append(this.homePosition, event.homePosition)
.isEquals();
}

@Override
public int hashCode() {
return new HashCodeBuilder(17, 37)
.append(currentPosition)
.append(homePosition)
.toHashCode();
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,63 +225,51 @@ static class MonitoringTrafficObjectIndexProvider extends TrafficObjectIndex {

@Override
public List<VehicleObject> getVehiclesInRange(PerceptionModel searchRange) {
int numberOfVehicles = getNumberOfVehicles();
try (PerformanceMonitor.Measurement m = monitor.start("search-vehicle")) {
m.setProperties(getNumberOfVehicles(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(numberOfVehicles, SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
kschrab marked this conversation as resolved.
Show resolved Hide resolved
return super.getVehiclesInRange(searchRange);
}
}

@Override
public void removeVehicles(Iterable<String> vehiclesToRemove) {
int numberOfVehicles = getNumberOfVehicles();
try (PerformanceMonitor.Measurement m = monitor.start("remove-vehicle")) {
m.setProperties(getNumberOfVehicles(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(numberOfVehicles, SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
super.removeVehicles(vehiclesToRemove);
}
}

@Override
public void updateVehicles(Iterable<VehicleData> vehiclesToUpdate) {
int numberOfVehicles = getNumberOfVehicles();
try (PerformanceMonitor.Measurement m = monitor.start("update-vehicle")) {
m.setProperties(getNumberOfVehicles(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(numberOfVehicles, SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
super.updateVehicles(vehiclesToUpdate);
}
}

@Override
public int getNumberOfVehicles() {
return super.getNumberOfVehicles();
}

@Override
public List<TrafficLightObject> getTrafficLightsInRange(PerceptionModel perceptionModel) {
try (PerformanceMonitor.Measurement m = monitor.start("search-traffic-light")) {
m.setProperties(getNumberOfTrafficLights(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
kschrab marked this conversation as resolved.
Show resolved Hide resolved
return super.getTrafficLightsInRange(perceptionModel);
}
}

@Override
public void addTrafficLightGroup(TrafficLightGroup trafficLightGroup) {
super.addTrafficLightGroup(trafficLightGroup);
}

@Override
public void updateTrafficLights(Map<String, TrafficLightGroupInfo> trafficLightsToUpdate) {
try (PerformanceMonitor.Measurement m = monitor.start("update-traffic-light")) {
m.setProperties(getNumberOfTrafficLights(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
super.updateTrafficLights(trafficLightsToUpdate);
}
}

@Override
public int getNumberOfTrafficLights() {
return super.getNumberOfTrafficLights();
}

@Override
public Collection<Edge<Vector3d>> getSurroundingWalls(PerceptionModel perceptionModel) {
try (PerformanceMonitor.Measurement m = monitor.start("search-walls")) {
m.setProperties(getNumberOfTrafficLights(), SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
m.setProperties(SimulationKernel.SimulationKernel.getCurrentSimulationTime()).restart();
return super.getSurroundingWalls(perceptionModel);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,20 +181,6 @@ public void updateTrafficLights(Map<String, TrafficLightGroupInfo> trafficLights
}
}

/**
* Returns the number of TLs in the simulation.
*
* @return the number of TLs
*/
public int getNumberOfTrafficLights() {
if (trafficLightIndexProviderConfigured()) {
return trafficLightIndex.getNumberOfTrafficLights();
} else {
log.debug("No Traffic Light Index Provider configured. There are no indexed Traffic Lights.");
return 0;
}
}

public Collection<Edge<Vector3d>> getSurroundingWalls(PerceptionModel perceptionModel) {
if (wallIndex == null) {
log.debug("No Wall Index defined.");
Expand Down