Skip to content

Commit

Permalink
Add near and far clipping distance to ROS2 Camera sensor.
Browse files Browse the repository at this point in the history
Co-authored-by: Piotr Jaroszek <[email protected]>
Co-authored-by: Jan Hanca <[email protected]>

Signed-off-by: Michał Pełka <[email protected]>
  • Loading branch information
michalpelka committed Jul 21, 2023
1 parent 17ddb04 commit 9c99939
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 4 deletions.
18 changes: 15 additions & 3 deletions Gems/ROS2/Code/Source/Camera/CameraSensorConfiguration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ namespace ROS2
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{
serializeContext->Class<CameraSensorConfiguration>()
->Version(1)
->Version(2)
->Field("VerticalFieldOfViewDeg", &CameraSensorConfiguration::m_verticalFieldOfViewDeg)
->Field("Width", &CameraSensorConfiguration::m_width)
->Field("Height", &CameraSensorConfiguration::m_height)
->Field("Depth", &CameraSensorConfiguration::m_depthCamera)
->Field("Color", &CameraSensorConfiguration::m_colorCamera);
->Field("Color", &CameraSensorConfiguration::m_colorCamera)
->Field("ClipNear", &CameraSensorConfiguration::m_nearClipDistance)
->Field("ClipFar", &CameraSensorConfiguration::m_farClipDistance);

if (AZ::EditContext* ec = serializeContext->GetEditContext())
{
Expand All @@ -39,7 +41,17 @@ namespace ROS2
->DataElement(AZ::Edit::UIHandlers::Default, &CameraSensorConfiguration::m_height, "Image height", "Image height")
->Attribute(AZ::Edit::Attributes::Min, CameraSensorConfiguration::m_minHeight)
->DataElement(AZ::Edit::UIHandlers::Default, &CameraSensorConfiguration::m_colorCamera, "Color Camera", "Color Camera")
->DataElement(AZ::Edit::UIHandlers::Default, &CameraSensorConfiguration::m_depthCamera, "Depth Camera", "Depth Camera");
->DataElement(AZ::Edit::UIHandlers::Default, &CameraSensorConfiguration::m_depthCamera, "Depth Camera", "Depth Camera")
->DataElement(
AZ::Edit::UIHandlers::Default,
&CameraSensorConfiguration::m_nearClipDistance,
"Near clip distance",
"Minimum distance to detect objects")
->DataElement(
AZ::Edit::UIHandlers::Default,
&CameraSensorConfiguration::m_farClipDistance,
"Far clip distance",
"Maximum distance to detect objects");
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions Gems/ROS2/Code/Source/Camera/CameraSensorConfiguration.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@ namespace ROS2
int m_height = 480; //!< Camera image height in pixels.
bool m_colorCamera = true; //!< Use color camera?
bool m_depthCamera = true; //!< Use depth camera?
float m_nearClipDistance = 0.1f; //!< Near clip distance of the camera.
float m_farClipDistance = 100.0f; //!< Far clip distance of the camera.
};
} // namespace ROS2
11 changes: 10 additions & 1 deletion Gems/ROS2/Code/Source/Camera/CameraSensorDescription.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ namespace ROS2
, m_cameraName(cameraName)
, m_cameraNamespace(effectiveNamespace)
, m_viewToClipMatrix(CameraUtils::MakeClipMatrix(
m_cameraConfiguration.m_width, m_cameraConfiguration.m_height, m_cameraConfiguration.m_verticalFieldOfViewDeg))
m_cameraConfiguration.m_width,
m_cameraConfiguration.m_height,
m_cameraConfiguration.m_verticalFieldOfViewDeg,
m_cameraConfiguration.m_nearClipDistance,
m_cameraConfiguration.m_farClipDistance))
, m_cameraIntrinsics(CameraUtils::MakeCameraIntrinsics(
m_cameraConfiguration.m_width, m_cameraConfiguration.m_height, m_cameraConfiguration.m_verticalFieldOfViewDeg))
{
Expand All @@ -37,6 +41,11 @@ namespace ROS2
AZ_Assert(
m_cameraConfiguration.m_width > 0 && m_cameraConfiguration.m_height > 0, "Camera resolution dimensions should be above zero");
AZ_Assert(!m_cameraName.empty(), "Camera name cannot be empty");
AZ_Assert(m_cameraConfiguration.m_nearClipDistance > 0.0f, "Near clip distance should be greater than zero");
AZ_Assert(m_cameraConfiguration.m_farClipDistance > m_cameraConfiguration.m_nearClipDistance , "Far clip distance should be greater than the near plane distance");
AZ_Assert(
m_cameraConfiguration.m_farClipDistance > m_cameraConfiguration.m_nearClipDistance,
"Far clip distance should be greater than near clip distance");
}

} // namespace ROS2

0 comments on commit 9c99939

Please sign in to comment.