Merge remote-tracking branch 'origin/master' into Optimizations
This commit is contained in:
commit
29fc456008
Binary file not shown.
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 345 KiB |
|
@ -127,11 +127,7 @@ size.
|
||||||
###### Transform and bounding box
|
###### Transform and bounding box
|
||||||
|
|
||||||
The transform defines the location and orientation of the agent. The bounding
|
The transform defines the location and orientation of the agent. The bounding
|
||||||
box is assumed to be centered at the agent's location. The box extent gives the
|
box is centered at the agent's location. The box extent gives the radii
|
||||||
radii dimensions of the bounding box of the agent.
|
dimensions of the bounding box of the agent.
|
||||||
|
|
||||||
![Vehicle Bounding Box](img/vehicle_bounding_box.png)
|
![Vehicle Bounding Box](img/vehicle_bounding_box.png)
|
||||||
|
|
||||||
!!! important
|
|
||||||
As seen in the picture, the Z coordinate of the box is not fitted to
|
|
||||||
vehicle's height.
|
|
||||||
|
|
|
@ -136,7 +136,6 @@ void FCarlaEncoder::Encode(
|
||||||
void FCarlaEncoder::Encode(const UAgentComponent &AgentComponent, carla_agent &AgentData)
|
void FCarlaEncoder::Encode(const UAgentComponent &AgentComponent, carla_agent &AgentData)
|
||||||
{
|
{
|
||||||
AgentData.id = AgentComponent.GetId();
|
AgentData.id = AgentComponent.GetId();
|
||||||
::Encode(AgentComponent.GetComponentTransform(), AgentData.transform);
|
|
||||||
FCarlaEncoder Encoder(AgentData);
|
FCarlaEncoder Encoder(AgentData);
|
||||||
AgentComponent.AcceptVisitor(Encoder);
|
AgentComponent.AcceptVisitor(Encoder);
|
||||||
}
|
}
|
||||||
|
@ -149,6 +148,7 @@ FCarlaEncoder::FCarlaEncoder(carla_agent &InData) : Data(InData) {}
|
||||||
|
|
||||||
void FCarlaEncoder::Visit(const UTrafficSignAgentComponent &Agent)
|
void FCarlaEncoder::Visit(const UTrafficSignAgentComponent &Agent)
|
||||||
{
|
{
|
||||||
|
::Encode(Agent.GetComponentTransform(), Data.transform);
|
||||||
auto &TrafficSign = Agent.GetTrafficSign();
|
auto &TrafficSign = Agent.GetTrafficSign();
|
||||||
switch (TrafficSign.GetTrafficSignState()) {
|
switch (TrafficSign.GetTrafficSignState()) {
|
||||||
case ETrafficSignState::TrafficLightRed:
|
case ETrafficSignState::TrafficLightRed:
|
||||||
|
@ -200,6 +200,7 @@ void FCarlaEncoder::Visit(const UTrafficSignAgentComponent &Agent)
|
||||||
void FCarlaEncoder::Visit(const UVehicleAgentComponent &Agent)
|
void FCarlaEncoder::Visit(const UVehicleAgentComponent &Agent)
|
||||||
{
|
{
|
||||||
auto &Vehicle = Agent.GetVehicle();
|
auto &Vehicle = Agent.GetVehicle();
|
||||||
|
::Encode(Vehicle.GetVehicleTransform(), Data.transform);
|
||||||
Data.type = CARLA_SERVER_AGENT_VEHICLE;
|
Data.type = CARLA_SERVER_AGENT_VEHICLE;
|
||||||
Data.forward_speed = Vehicle.GetVehicleForwardSpeed();
|
Data.forward_speed = Vehicle.GetVehicleForwardSpeed();
|
||||||
::Encode(Vehicle.GetVehicleBoundsExtent(), Data.box_extent);
|
::Encode(Vehicle.GetVehicleBoundsExtent(), Data.box_extent);
|
||||||
|
@ -207,6 +208,7 @@ void FCarlaEncoder::Visit(const UVehicleAgentComponent &Agent)
|
||||||
|
|
||||||
void FCarlaEncoder::Visit(const UWalkerAgentComponent &Agent)
|
void FCarlaEncoder::Visit(const UWalkerAgentComponent &Agent)
|
||||||
{
|
{
|
||||||
|
::Encode(Agent.GetComponentTransform(), Data.transform);
|
||||||
Data.type = CARLA_SERVER_AGENT_PEDESTRIAN;
|
Data.type = CARLA_SERVER_AGENT_PEDESTRIAN;
|
||||||
Data.forward_speed = Agent.GetForwardSpeed();
|
Data.forward_speed = Agent.GetForwardSpeed();
|
||||||
::Encode(Agent.GetBoundingBoxExtent(), Data.box_extent);
|
::Encode(Agent.GetBoundingBoxExtent(), Data.box_extent);
|
||||||
|
|
|
@ -64,7 +64,7 @@ void ACarlaVehicleController::Tick(float DeltaTime)
|
||||||
auto Vehicle = GetPossessedVehicle();
|
auto Vehicle = GetPossessedVehicle();
|
||||||
CarlaPlayerState->UpdateTimeStamp(DeltaTime);
|
CarlaPlayerState->UpdateTimeStamp(DeltaTime);
|
||||||
const FVector PreviousSpeed = CarlaPlayerState->ForwardSpeed * CarlaPlayerState->GetOrientation();
|
const FVector PreviousSpeed = CarlaPlayerState->ForwardSpeed * CarlaPlayerState->GetOrientation();
|
||||||
CarlaPlayerState->Transform = Vehicle->GetActorTransform();
|
CarlaPlayerState->Transform = Vehicle->GetVehicleTransform();
|
||||||
CarlaPlayerState->ForwardSpeed = Vehicle->GetVehicleForwardSpeed();
|
CarlaPlayerState->ForwardSpeed = Vehicle->GetVehicleForwardSpeed();
|
||||||
const FVector CurrentSpeed = CarlaPlayerState->ForwardSpeed * CarlaPlayerState->GetOrientation();
|
const FVector CurrentSpeed = CarlaPlayerState->ForwardSpeed * CarlaPlayerState->GetOrientation();
|
||||||
CarlaPlayerState->Acceleration = (CurrentSpeed - PreviousSpeed) / DeltaTime;
|
CarlaPlayerState->Acceleration = (CurrentSpeed - PreviousSpeed) / DeltaTime;
|
||||||
|
@ -113,7 +113,7 @@ void ACarlaVehicleController::IntersectPlayerWithRoadMap()
|
||||||
auto Vehicle = GetPossessedVehicle();
|
auto Vehicle = GetPossessedVehicle();
|
||||||
constexpr float ChecksPerCentimeter = 0.1f;
|
constexpr float ChecksPerCentimeter = 0.1f;
|
||||||
auto Result = RoadMap->Intersect(
|
auto Result = RoadMap->Intersect(
|
||||||
Vehicle->GetActorTransform(),
|
Vehicle->GetVehicleTransform(),
|
||||||
Vehicle->GetVehicleBoundsExtent(),
|
Vehicle->GetVehicleBoundsExtent(),
|
||||||
ChecksPerCentimeter);
|
ChecksPerCentimeter);
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,13 @@ ACarlaWheeledVehicle::~ACarlaWheeledVehicle() {}
|
||||||
// -- Get functions ------------------------------------------------------------
|
// -- Get functions ------------------------------------------------------------
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
|
FTransform ACarlaWheeledVehicle::GetVehicleTransform() const
|
||||||
|
{
|
||||||
|
FTransform Transform = VehicleBounds->GetComponentTransform();
|
||||||
|
Transform.SetScale3D(GetActorTransform().GetScale3D());
|
||||||
|
return Transform;
|
||||||
|
}
|
||||||
|
|
||||||
float ACarlaWheeledVehicle::GetVehicleForwardSpeed() const
|
float ACarlaWheeledVehicle::GetVehicleForwardSpeed() const
|
||||||
{
|
{
|
||||||
return GetVehicleMovementComponent()->GetForwardSpeed() * 0.036f;
|
return GetVehicleMovementComponent()->GetForwardSpeed() * 0.036f;
|
||||||
|
@ -44,7 +51,7 @@ float ACarlaWheeledVehicle::GetVehicleForwardSpeed() const
|
||||||
|
|
||||||
FVector ACarlaWheeledVehicle::GetVehicleOrientation() const
|
FVector ACarlaWheeledVehicle::GetVehicleOrientation() const
|
||||||
{
|
{
|
||||||
return GetActorTransform().GetRotation().GetForwardVector();
|
return GetVehicleTransform().GetRotation().GetForwardVector();
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 ACarlaWheeledVehicle::GetVehicleCurrentGear() const
|
int32 ACarlaWheeledVehicle::GetVehicleCurrentGear() const
|
||||||
|
|
|
@ -41,6 +41,11 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
/// Transform of the vehicle. Location is shifted so it matches center of the
|
||||||
|
/// vehicle bounds rather than the actor's location.
|
||||||
|
UFUNCTION(Category = "CARLA Wheeled Vehicle", BlueprintCallable)
|
||||||
|
FTransform GetVehicleTransform() const;
|
||||||
|
|
||||||
/// Forward speed in km/h. Might be negative if goes backwards.
|
/// Forward speed in km/h. Might be negative if goes backwards.
|
||||||
UFUNCTION(Category = "CARLA Wheeled Vehicle", BlueprintCallable)
|
UFUNCTION(Category = "CARLA Wheeled Vehicle", BlueprintCallable)
|
||||||
float GetVehicleForwardSpeed() const;
|
float GetVehicleForwardSpeed() const;
|
||||||
|
|
|
@ -8,4 +8,4 @@
|
||||||
0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT
|
0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT
|
||||||
0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT
|
0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT
|
||||||
0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq
|
0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq
|
||||||
Latest: 1_kSLT8Q05I7zC_X0q4ABMIB8gRd-W-ZF
|
Latest: 1LrXnaSD0eN3aeYFeBm2jNGSnA0JHwBng
|
||||||
|
|
Loading…
Reference in New Issue