Go to the documentation of this file.
15 #ifndef TRAJECTORY_FOLLOWER__LONGITUDINAL_CONTROLLER_UTILS_HPP_
16 #define TRAJECTORY_FOLLOWER__LONGITUDINAL_CONTROLLER_UTILS_HPP_
19 #include <experimental/optional>
22 #include "eigen3/Eigen/Core"
23 #include "eigen3/Eigen/Geometry"
25 #include "autoware_auto_planning_msgs/msg/trajectory.hpp"
27 #include "geometry_msgs/msg/pose.hpp"
31 #include "tf2/utils.h"
42 namespace longitudinal_utils
49 using geometry_msgs::msg::Pose;
50 using geometry_msgs::msg::Quaternion;
63 const Point & current_pos,
79 const Trajectory & trajectory,
const size_t closest_idx,
102 const Quaternion & o_from,
103 const Quaternion & o_to,
112 TRAJECTORY_FOLLOWER_PUBLIC
123 const float64_t interpolate_ratio = len_to_interpolated / len_segment;
126 const size_t i = nearest_seg_idx;
129 points.at(i).pose.position.x, points.at(
130 i + 1).pose.position.x, interpolate_ratio);
132 points.at(i).pose.position.y, points.at(
133 i + 1).pose.position.y, interpolate_ratio);
135 points.at(i).pose.orientation, points.at(i + 1).pose.orientation, interpolate_ratio);
136 interpolated_point.longitudinal_velocity_mps =
138 points.at(i).longitudinal_velocity_mps, points.at(
139 i + 1).longitudinal_velocity_mps, interpolate_ratio);
140 interpolated_point.lateral_velocity_mps =
142 points.at(i).lateral_velocity_mps, points.at(
143 i + 1).lateral_velocity_mps, interpolate_ratio);
144 interpolated_point.acceleration_mps2 =
146 points.at(i).acceleration_mps2, points.at(
147 i + 1).acceleration_mps2, interpolate_ratio);
148 interpolated_point.heading_rate_rps =
150 points.at(i).heading_rate_rps, points.at(
151 i + 1).heading_rate_rps, interpolate_ratio);
154 return interpolated_point;
184 #endif // TRAJECTORY_FOLLOWER__LONGITUDINAL_CONTROLLER_UTILS_HPP_
autoware_auto_planning_msgs::msg::TrajectoryPoint TrajectoryPoint
Definition: motion_testing_publisher.hpp:36
MOTION_COMMON_PUBLIC size_t findNearestSegmentIndex(const Points &points, const geometry_msgs::msg::Point &point)
find nearest segment index to point segment is straight path between two continuous points of traject...
Definition: trajectory_common.cpp:137
This file includes common type definition.
TRAJECTORY_FOLLOWER_PUBLIC float64_t applyDiffLimitFilter(const float64_t input_val, const float64_t prev_val, const float64_t dt, const float64_t lim_val)
limit variable whose differential is within a certain value
Definition: longitudinal_controller_utils.cpp:176
Definition: trajectory_common.hpp:37
This file includes common functionality for 2D geometry, such as dot products.
MOTION_COMMON_PUBLIC float64_t calcLongitudinalOffsetToSegment(const Points &points, const size_t seg_idx, const geometry_msgs::msg::Point &p_target)
calculate length along trajectory from seg_idx point to nearest point to p_target on trajectory If se...
Definition: trajectory_common.cpp:114
MOTION_COMMON_PUBLIC float64_t calcSignedArcLength(const Points &points, const size_t src_idx, const size_t dst_idx)
calculate arc length along points
Definition: trajectory_common.cpp:156
TRAJECTORY_FOLLOWER_PUBLIC TrajectoryPoint lerpTrajectoryPoint(const T &points, const Point &point)
apply linear interpolation to trajectory point that is nearest to a certain point
Definition: longitudinal_controller_utils.hpp:113
bool bool8_t
Definition: types.hpp:39
TIME_UTILS_PUBLIC std::chrono::nanoseconds interpolate(std::chrono::nanoseconds a, std::chrono::nanoseconds b, float t) noexcept
Standard interpolation.
Definition: time_utils.cpp:96
TRAJECTORY_FOLLOWER_PUBLIC float64_t getPitchByPose(const Quaternion &quaternion)
calculate pitch angle from estimated current pose
Definition: longitudinal_controller_utils.cpp:75
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
TRAJECTORY_FOLLOWER_PUBLIC float64_t calcStopDistance(const Point ¤t_pos, const Trajectory &traj)
calculate distance to stopline from current vehicle position where velocity is 0
Definition: longitudinal_controller_utils.cpp:61
TRAJECTORY_FOLLOWER_PUBLIC bool8_t isValidTrajectory(const Trajectory &traj)
check if trajectory is invalid or not
Definition: longitudinal_controller_utils.cpp:38
Definition: debug_values.hpp:29
TRAJECTORY_FOLLOWER_PUBLIC Pose calcPoseAfterTimeDelay(const Pose ¤t_pose, const float64_t delay_time, const float64_t current_vel)
calculate vehicle pose after time delay by moving the vehicle at current velocity for delayed time
Definition: longitudinal_controller_utils.cpp:135
Definition: controller_base.hpp:31
TRAJECTORY_FOLLOWER_PUBLIC float64_t getPitchByTraj(const Trajectory &trajectory, const size_t closest_idx, const float64_t wheel_base)
calculate pitch angle from trajectory on map NOTE: there is currently no z information so this always...
Definition: longitudinal_controller_utils.cpp:85
TRAJECTORY_FOLLOWER_PUBLIC float64_t calcElevationAngle(const TrajectoryPoint &p_from, const TrajectoryPoint &p_to)
calculate elevation angle
Definition: longitudinal_controller_utils.cpp:123
autoware_auto_planning_msgs::msg::Trajectory Trajectory
Definition: motion_common.hpp:41
geometry_msgs::msg::Point32 Point
Definition: cluster2d.cpp:28
double float64_t
Definition: types.hpp:47
TRAJECTORY_FOLLOWER_PUBLIC Quaternion lerpOrientation(const Quaternion &o_from, const Quaternion &o_to, const float64_t ratio)
apply linear interpolation to orientation
Definition: longitudinal_controller_utils.cpp:155