|
SMACC2
|
#include <cp_tunnel_centering.hpp>


Public Member Functions | |
| CpTunnelCentering (TunnelCenteringParams params={}) | |
| virtual | ~CpTunnelCentering () |
| void | onInitialize () override |
| float | lateralOffsetM () const |
| float | verticalOffsetM () const |
| bool | valid () const |
| float | leftWallM () const |
| float | rightWallM () const |
| float | floorM () const |
| float | ceilingM () const |
| const TunnelCenteringParams & | params () const |
Public Member Functions inherited from smacc2::ISmaccComponent | |
| ISmaccComponent () | |
| virtual | ~ISmaccComponent () |
| virtual std::string | getName () const |
Private Member Functions | |
| void | onCloud (const sensor_msgs::msg::PointCloud2 &msg) |
| void | onAttitude (const px4_msgs::msg::VehicleAttitude::SharedPtr msg) |
Private Attributes | |
| TunnelCenteringParams | params_ |
| smacc2::client_core_components::CpTopicSubscriber< sensor_msgs::msg::PointCloud2 > * | subscriber_ |
| rclcpp::Subscription< px4_msgs::msg::VehicleAttitude >::SharedPtr | attitudeSub_ |
| std::mutex | attitudeMutex_ |
| std::array< float, 4 > | attitudeQ_ {{1.0f, 0.0f, 0.0f, 0.0f}} |
| bool | haveAttitude_ = false |
| std::atomic< float > | lateral_ {0.0f} |
| std::atomic< float > | vertical_ {0.0f} |
| std::atomic< float > | left_ {0.0f} |
| std::atomic< float > | right_ {0.0f} |
| std::atomic< float > | floor_ {0.0f} |
| std::atomic< float > | ceiling_ {0.0f} |
| std::atomic< int64_t > | lastCloudNs_ {0} |
| std::chrono::steady_clock::time_point | lastLog_ |
Additional Inherited Members | |
Protected Member Functions inherited from smacc2::ISmaccComponent | |
| template<typename TOrthogonal , typename TClient > | |
| void | onComponentInitialization () |
| template<typename EventType > | |
| void | postEvent (const EventType &ev) |
| template<typename EventType > | |
| void | postEvent () |
| template<typename TOrthogonal , typename TSourceObject > | |
| void | onStateOrthogonalAllocation () |
| template<typename TComponent > | |
| void | requiresComponent (TComponent *&requiredComponentStorage, ComponentRequirement requirementType=ComponentRequirement::SOFT) |
| template<typename TComponent > | |
| void | requiresComponent (std::string name, TComponent *&requiredComponentStorage, ComponentRequirement requirementType=ComponentRequirement::SOFT) |
| template<typename TClient > | |
| void | requiresClient (TClient *&requiredClientStorage) |
| template<typename SmaccComponentType , typename TOrthogonal , typename TClient , typename... TArgs> | |
| SmaccComponentType * | createSiblingComponent (TArgs... targs) |
| template<typename SmaccComponentType , typename TOrthogonal , typename TClient , typename... TArgs> | |
| SmaccComponentType * | createSiblingNamedComponent (std::string name, TArgs... targs) |
| rclcpp::Node::SharedPtr | getNode () |
| rclcpp::Logger | getLogger () const |
| ISmaccStateMachine * | getStateMachine () |
Protected Attributes inherited from smacc2::ISmaccComponent | |
| ISmaccStateMachine * | stateMachine_ |
| ISmaccClient * | owner_ |
Definition at line 90 of file cp_tunnel_centering.hpp.
|
explicit |
Definition at line 57 of file cp_tunnel_centering.cpp.
|
virtual |
Definition at line 59 of file cp_tunnel_centering.cpp.
|
inline |
Definition at line 108 of file cp_tunnel_centering.hpp.
References ceiling_.
|
inline |
Definition at line 107 of file cp_tunnel_centering.hpp.
References floor_.
|
inline |
Definition at line 99 of file cp_tunnel_centering.hpp.
References lateral_.
Referenced by cl_px4_mr::CbPx4PathFollowerBase::applyCentering().

|
inline |
|
private |
Definition at line 94 of file cp_tunnel_centering.cpp.
References attitudeMutex_, attitudeQ_, and haveAttitude_.
Referenced by onInitialize().

|
private |
Definition at line 101 of file cp_tunnel_centering.cpp.
References attitudeMutex_, attitudeQ_, ceiling_, cl_px4_mr::TunnelCenteringParams::ceilingClearanceM, cl_px4_mr::TunnelCenteringParams::columnHalfWidthM, floor_, cl_px4_mr::TunnelCenteringParams::floorClearanceM, smacc2::ISmaccComponent::getLogger(), haveAttitude_, lastCloudNs_, lastLog_, lateral_, cl_px4_mr::TunnelCenteringParams::lateralSearchM, left_, cl_px4_mr::TunnelCenteringParams::levelFrame, cl_px4_mr::levelRotationFromPx4Quaternion(), cl_px4_mr::TunnelCenteringParams::lookAheadMaxM, cl_px4_mr::TunnelCenteringParams::lookAheadMinM, cl_px4_mr::TunnelCenteringParams::maxLateralM, cl_px4_mr::TunnelCenteringParams::maxVerticalM, cl_px4_mr::TunnelCenteringParams::minFloorClearanceM, cl_px4_mr::TunnelCenteringParams::minFloorPoints, cl_px4_mr::TunnelCenteringParams::minRangeM, cl_px4_mr::TunnelCenteringParams::minWallPoints, params_, right_, cl_px4_mr::TunnelCenteringParams::smoothing, vertical_, cl_px4_mr::TunnelCenteringParams::verticalSearchM, cl_px4_mr::TunnelCenteringParams::wallBandHalfHeightM, and cl_px4_mr::TunnelCenteringParams::wallFadeM.
Referenced by onInitialize().


|
overridevirtual |
Reimplemented from smacc2::ISmaccComponent.
Definition at line 61 of file cp_tunnel_centering.cpp.
References attitudeSub_, cl_px4_mr::TunnelCenteringParams::ceilingClearanceM, cl_px4_mr::TunnelCenteringParams::floorClearanceM, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), lastLog_, cl_px4_mr::TunnelCenteringParams::levelFrame, cl_px4_mr::TunnelCenteringParams::lookAheadMaxM, cl_px4_mr::TunnelCenteringParams::lookAheadMinM, cl_px4_mr::TunnelCenteringParams::maxLateralM, cl_px4_mr::TunnelCenteringParams::maxVerticalM, cl_px4_mr::TunnelCenteringParams::minFloorClearanceM, onAttitude(), onCloud(), smacc2::client_core_components::CpTopicSubscriber< MessageType >::onMessageReceived(), params_, smacc2::ISmaccComponent::requiresComponent(), subscriber_, and cl_px4_mr::TunnelCenteringParams::wallFadeM.

|
inline |
|
inline |
| bool cl_px4_mr::CpTunnelCentering::valid | ( | ) | const |
Definition at line 88 of file cp_tunnel_centering.cpp.
References lastCloudNs_.
Referenced by cl_px4_mr::CbPx4PathFollowerBase::applyCentering().

|
inline |
Definition at line 100 of file cp_tunnel_centering.hpp.
References vertical_.
Referenced by cl_px4_mr::CbPx4PathFollowerBase::applyCentering().

|
mutableprivate |
Definition at line 120 of file cp_tunnel_centering.hpp.
Referenced by onAttitude(), and onCloud().
|
private |
Definition at line 121 of file cp_tunnel_centering.hpp.
Referenced by onAttitude(), and onCloud().
|
private |
Definition at line 119 of file cp_tunnel_centering.hpp.
Referenced by onInitialize().
|
private |
Definition at line 129 of file cp_tunnel_centering.hpp.
Referenced by ceilingM(), and onCloud().
|
private |
Definition at line 128 of file cp_tunnel_centering.hpp.
|
private |
Definition at line 122 of file cp_tunnel_centering.hpp.
Referenced by onAttitude(), and onCloud().
|
private |
Definition at line 130 of file cp_tunnel_centering.hpp.
|
private |
Definition at line 131 of file cp_tunnel_centering.hpp.
Referenced by onCloud(), and onInitialize().
|
private |
Definition at line 124 of file cp_tunnel_centering.hpp.
Referenced by lateralOffsetM(), and onCloud().
|
private |
Definition at line 126 of file cp_tunnel_centering.hpp.
Referenced by leftWallM(), and onCloud().
|
private |
Definition at line 116 of file cp_tunnel_centering.hpp.
Referenced by onCloud(), onInitialize(), and params().
|
private |
Definition at line 127 of file cp_tunnel_centering.hpp.
Referenced by onCloud(), and rightWallM().
|
private |
Definition at line 117 of file cp_tunnel_centering.hpp.
Referenced by onInitialize().
|
private |
Definition at line 125 of file cp_tunnel_centering.hpp.
Referenced by onCloud(), and verticalOffsetM().