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

Add near and far clipping distance to ROS2 Camera sensor. #419

Merged
merged 1 commit into from
Jul 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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");
adamdbrw marked this conversation as resolved.
Show resolved Hide resolved
AZ_Assert(
m_cameraConfiguration.m_farClipDistance > m_cameraConfiguration.m_nearClipDistance,
"Far clip distance should be greater than near clip distance");
}

} // namespace ROS2