SMACC2
Loading...
Searching...
No Matches
cl_nav2z Namespace Reference

Namespaces

namespace  backward_global_planner
 
namespace  backward_local_planner
 
namespace  components
 
namespace  forward_global_planner
 
namespace  forward_local_planner
 
namespace  odom_tracker
 
namespace  pure_spinning_local_planner
 
namespace  undo_path_global_planner
 

Classes

class  CbAbortNavigation
 
class  CbAbsoluteRotate
 
struct  CbActiveStop
 
struct  CbLoadWaypointsFile
 
class  CbNav2ZClientBehaviorBase
 
class  CbNavigateBackwards
 
class  CbNavigateForward
 
struct  CbNavigateForwardOptions
 
class  CbNavigateGlobalPosition
 
struct  CbNavigateGlobalPositionOptions
 
class  CbNavigateNamedWaypoint
 
class  CbNavigateNextWaypoint
 
class  CbNavigateNextWaypointFree
 
class  CbNavigateNextWaypointUntilReached
 
class  CbPauseSlam
 
struct  CbPositionControlFreeSpace
 
struct  CbPureSpinning
 
class  CbResumeSlam
 
class  CbRetry
 
class  CbRotate
 
class  CbRotateLookAt
 
struct  CbSaveSlamMap
 
class  CbSeekWaypoint
 
struct  CbSpiralMotion
 
struct  CbSpiralMotionOptions
 
class  CbStopNavigation
 
struct  CbTrackPathOdometry
 
struct  CbTrackPathSLAM
 
class  CbUndoPathBackwards
 
struct  CbUndoPathBackwardsOptions
 
class  CbWaitNav2Nodes
 
class  CbWaitPose
 
class  CbWaitTransform
 
class  ClNav2Z
 
class  CpAmcl
 
class  CpCostmapProxy
 
class  CpCostmapSwitch
 
class  CpGoalCheckerSwitcher
 
class  CpPlannerSwitcher
 
class  CpPose
 
class  CpSlamToolbox
 
class  CpWaypointNavigator
 
class  CpWaypointNavigatorBase
 
class  CpWaypointsVisualizer
 
struct  EvGoalWaypointReached
 
struct  EvWaypointFinal
 
struct  NavigateNextWaypointOptions
 
struct  Pose2D
 

Typedefs

template<typename TService >
using CbServiceCall = smacc2::client_behaviors::CbServiceCall<TService>
 

Enumerations

enum class  SpinningPlanner { Default , PureSpinning , Forward }
 
enum class  Nav2Nodes {
  PlannerServer , ControllerServer , RecoveriesServer , BtNavigator ,
  MapServer , None
}
 
enum class  WaitPoseStandardReferenceFrame { Map , Odometry }
 
enum class  StandardReferenceFrames { Map , Odometry }
 

Functions

std::string toString (Nav2Nodes value)
 
Nav2Nodes fromString (std::string str)
 
std::string referenceFrameToString (StandardReferenceFrames referenceFrame)
 
geometry_msgs::msg::PoseStamped makePureSpinningSubPlan (const geometry_msgs::msg::PoseStamped &start, double dstRads, std::vector< geometry_msgs::msg::PoseStamped > &plan, double radstep=0.005)
 
geometry_msgs::msg::PoseStamped makePureStraightSubPlan (const geometry_msgs::msg::PoseStamped &startOrientedPose, const geometry_msgs::msg::Point &goal, double length, std::vector< geometry_msgs::msg::PoseStamped > &plan)
 

Variables

const std::string frameid = "map"
 

Typedef Documentation

◆ CbServiceCall

template<typename TService >
using cl_nav2z::CbServiceCall = smacc2::client_behaviors::CbServiceCall<TService>

Definition at line 33 of file cb_save_slam_map.hpp.

Enumeration Type Documentation

◆ Nav2Nodes

enum class cl_nav2z::Nav2Nodes
strong
Enumerator
PlannerServer 
ControllerServer 
RecoveriesServer 
BtNavigator 
MapServer 
None 

Definition at line 29 of file cb_wait_nav2_nodes.hpp.

◆ SpinningPlanner

enum class cl_nav2z::SpinningPlanner
strong
Enumerator
Default 
PureSpinning 
Forward 

Definition at line 113 of file cb_nav2z_client_behavior_base.hpp.

◆ StandardReferenceFrames

Enumerator
Map 
Odometry 

Definition at line 37 of file cp_pose.hpp.

◆ WaitPoseStandardReferenceFrame

Enumerator
Map 
Odometry 

Definition at line 28 of file cb_wait_pose.hpp.

29{
30 Map,
32};

Function Documentation

◆ fromString()

Nav2Nodes cl_nav2z::fromString ( std::string str)

Definition at line 116 of file cb_wait_nav2_nodes.cpp.

117{
118 if (id == "planner_server")
119 return Nav2Nodes::PlannerServer;
120 else if (id == "controller_server")
121 return Nav2Nodes::ControllerServer;
122 else if (id == "behavior_server")
123 return Nav2Nodes::RecoveriesServer;
124 else if (id == "bt_navigator")
125 return Nav2Nodes::BtNavigator;
126 else if (id == "map_server")
127 return Nav2Nodes::MapServer;
128 else
129 return Nav2Nodes::None;
130}

References BtNavigator, ControllerServer, MapServer, None, PlannerServer, and RecoveriesServer.

Referenced by cl_nav2z::CbWaitNav2Nodes::onMessageReceived().

Here is the caller graph for this function:

◆ makePureSpinningSubPlan()

geometry_msgs::msg::PoseStamped cl_nav2z::makePureSpinningSubPlan ( const geometry_msgs::msg::PoseStamped & start,
double dstRads,
std::vector< geometry_msgs::msg::PoseStamped > & plan,
double radstep = 0.005 )

Definition at line 36 of file common.cpp.

39{
40 double startYaw = tf2::getYaw(start.pose.orientation);
41 // RCLCPP_INFO(getLogger(),"pure spinning start yaw: %lf", startYaw);
42 // RCLCPP_INFO(getLogger(),"pure spinning goal yaw: %lf", dstRads);
43 // RCLCPP_WARN_STREAM(getLogger(),"pure spinning start pose: " << start);
44
45 double goalAngleOffset = angles::shortest_angular_distance(startYaw, dstRads);
46 // RCLCPP_INFO(getLogger(),"shortest angle: %lf", goalAngleOffset);
47
48 if (goalAngleOffset >= 0)
49 {
50 // angle positive turn counterclockwise
51 // RCLCPP_INFO(getLogger(),"pure spinning counterclockwise");
52 for (double dangle = 0; dangle <= goalAngleOffset; dangle += radstep)
53 {
54 geometry_msgs::msg::PoseStamped p = start;
55 double yaw = startYaw + dangle;
56 // RCLCPP_INFO(getLogger(),"pure spinning counterclockwise, current path yaw: %lf, dangle: %lf,
57 // angleoffset %lf, radstep %lf pathsize(%ld)", yaw, dangle, goalAngleOffset, radstep, plan.size());
58 tf2::Quaternion q;
59 q.setRPY(0, 0, yaw);
60 p.pose.orientation = tf2::toMsg(q);
61 plan.push_back(p);
62 }
63 }
64 else
65 {
66 // angle positive turn clockwise
67 // RCLCPP_INFO(getLogger(),"pure spinning clockwise");
68 for (double dangle = 0; dangle >= goalAngleOffset; dangle -= radstep)
69 {
70 // RCLCPP_INFO(getLogger(),"dangle: %lf", dangle);
71 geometry_msgs::msg::PoseStamped p = start;
72 double yaw = startYaw + dangle;
73 // RCLCPP_INFO(getLogger(),"pure spinning clockwise, yaw: %lf, dangle: %lf, angleoffset %lf radstep
74 // %lf", yaw, dangle, goalAngleOffset,radstep);
75 tf2::Quaternion q;
76 q.setRPY(0, 0, yaw);
77 p.pose.orientation = tf2::toMsg(q);
78 plan.push_back(p);
79 }
80 }
81
82 // RCLCPP_INFO(getLogger(),"pure spinning end yaw: %lf", dstRads);
83 geometry_msgs::msg::PoseStamped end = start;
84 tf2::Quaternion q;
85 q.setRPY(0, 0, dstRads);
86 end.pose.orientation = tf2::toMsg(q);
87 plan.push_back(end);
88
89 return end;
90}

Referenced by cl_nav2z::backward_global_planner::BackwardGlobalPlanner::createDefaultBackwardPath(), and cl_nav2z::forward_global_planner::ForwardGlobalPlanner::createPlan().

Here is the caller graph for this function:

◆ makePureStraightSubPlan()

geometry_msgs::msg::PoseStamped cl_nav2z::makePureStraightSubPlan ( const geometry_msgs::msg::PoseStamped & startOrientedPose,
const geometry_msgs::msg::Point & goal,
double length,
std::vector< geometry_msgs::msg::PoseStamped > & plan )

Definition at line 92 of file common.cpp.

95{
96 double dx = 0.01; // 1 cm
97 double steps = length / dx;
98 double dt = 1.0 / steps;
99
100 plan.push_back(startOrientedPose);
101
102 for (double t = 0; t <= 1.0; t += dt)
103 {
104 geometry_msgs::msg::PoseStamped p = startOrientedPose;
105
106 p.pose.position.x = startOrientedPose.pose.position.x * (1 - t) + goal.x * t;
107 p.pose.position.y = startOrientedPose.pose.position.y * (1 - t) + goal.y * t;
108 p.pose.orientation = startOrientedPose.pose.orientation;
109
110 plan.push_back(p);
111 }
112
113 return plan.back();
114}

Referenced by cl_nav2z::backward_global_planner::BackwardGlobalPlanner::createDefaultBackwardPath(), and cl_nav2z::forward_global_planner::ForwardGlobalPlanner::createPlan().

Here is the caller graph for this function:

◆ referenceFrameToString()

std::string cl_nav2z::referenceFrameToString ( StandardReferenceFrames referenceFrame)

Definition at line 42 of file cp_pose.cpp.

43{
44 switch (referenceFrame)
45 {
46 case StandardReferenceFrames::Map:
47 return "map";
48 case StandardReferenceFrames::Odometry:
49 return "odom";
50 default:
51 return "odom";
52 }
53}

References Map, and Odometry.

◆ toString()

std::string cl_nav2z::toString ( Nav2Nodes value)

Definition at line 97 of file cb_wait_nav2_nodes.cpp.

98{
99 switch (value)
100 {
101 case Nav2Nodes::PlannerServer:
102 return "planner_server";
103 case Nav2Nodes::ControllerServer:
104 return "controller_server";
105 case Nav2Nodes::RecoveriesServer:
106 return "behavior_server";
107 case Nav2Nodes::BtNavigator:
108 return "bt_navigator";
109 case Nav2Nodes::MapServer:
110 return "map_server";
111 default:
112 return "";
113 }
114}

References BtNavigator, ControllerServer, MapServer, PlannerServer, and RecoveriesServer.

Referenced by cl_nav2z::CbWaitNav2Nodes::onEntry(), and cl_nav2z::CbWaitNav2Nodes::onMessageReceived().

Here is the caller graph for this function:

Variable Documentation

◆ frameid

const std::string cl_nav2z::frameid = "map"