ackermann: rename DriveModes to AckermannDriveModes

This commit is contained in:
chfriedrich98
2025-06-16 09:07:09 +02:00
committed by chfriedrich98
parent eed966a1c6
commit 3e8f054a1c
12 changed files with 57 additions and 57 deletions
@@ -31,17 +31,17 @@
* *
****************************************************************************/ ****************************************************************************/
#include "AutoMode.hpp" #include "AckermannAutoMode.hpp"
using namespace time_literals; using namespace time_literals;
AutoMode::AutoMode(ModuleParams *parent) : ModuleParams(parent) AckermannAutoMode::AckermannAutoMode(ModuleParams *parent) : ModuleParams(parent)
{ {
updateParams(); updateParams();
_rover_position_setpoint_pub.advertise(); _rover_position_setpoint_pub.advertise();
} }
void AutoMode::updateParams() void AckermannAutoMode::updateParams()
{ {
ModuleParams::updateParams(); ModuleParams::updateParams();
_max_yaw_rate = _param_ro_yaw_rate_limit.get() * M_DEG_TO_RAD_F; _max_yaw_rate = _param_ro_yaw_rate_limit.get() * M_DEG_TO_RAD_F;
@@ -52,7 +52,7 @@ void AutoMode::updateParams()
} }
} }
void AutoMode::autoControl() void AckermannAutoMode::autoControl()
{ {
if (_position_setpoint_triplet_sub.updated()) { if (_position_setpoint_triplet_sub.updated()) {
if (_vehicle_local_position_sub.updated()) { if (_vehicle_local_position_sub.updated()) {
@@ -85,7 +85,7 @@ void AutoMode::autoControl()
} }
void AutoMode::updateWaypointsAndAcceptanceRadius() void AckermannAutoMode::updateWaypointsAndAcceptanceRadius()
{ {
position_setpoint_triplet_s position_setpoint_triplet{}; position_setpoint_triplet_s position_setpoint_triplet{};
_position_setpoint_triplet_sub.copy(&position_setpoint_triplet); _position_setpoint_triplet_sub.copy(&position_setpoint_triplet);
@@ -110,9 +110,9 @@ void AutoMode::updateWaypointsAndAcceptanceRadius()
position_setpoint_triplet.current.cruising_speed, 0.f, _param_ro_speed_limit.get()) : _param_ro_speed_limit.get(); position_setpoint_triplet.current.cruising_speed, 0.f, _param_ro_speed_limit.get()) : _param_ro_speed_limit.get();
} }
float AutoMode::updateAcceptanceRadius(const float waypoint_transition_angle, float AckermannAutoMode::updateAcceptanceRadius(const float waypoint_transition_angle,
const float default_acceptance_radius, const float acceptance_radius_gain, const float default_acceptance_radius, const float acceptance_radius_gain,
const float acceptance_radius_max, const float wheel_base, const float max_steer_angle) const float acceptance_radius_max, const float wheel_base, const float max_steer_angle)
{ {
// Calculate acceptance radius s.t. the rover cuts the corner tangential to the current and next line segment // Calculate acceptance radius s.t. the rover cuts the corner tangential to the current and next line segment
float acceptance_radius = default_acceptance_radius; float acceptance_radius = default_acceptance_radius;
@@ -135,8 +135,8 @@ float AutoMode::updateAcceptanceRadius(const float waypoint_transition_angle,
return acceptance_radius; return acceptance_radius;
} }
float AutoMode::arrivalSpeed(const float cruising_speed, const float min_speed, const float acc_rad, float AckermannAutoMode::arrivalSpeed(const float cruising_speed, const float min_speed, const float acc_rad,
const int curr_wp_type, const float waypoint_transition_angle, const float max_yaw_rate) const int curr_wp_type, const float waypoint_transition_angle, const float max_yaw_rate)
{ {
if (!PX4_ISFINITE(waypoint_transition_angle) if (!PX4_ISFINITE(waypoint_transition_angle)
|| curr_wp_type == position_setpoint_s::SETPOINT_TYPE_LAND || curr_wp_type == position_setpoint_s::SETPOINT_TYPE_LAND
@@ -51,15 +51,15 @@
/** /**
* @brief Class for ackermann auto mode. * @brief Class for ackermann auto mode.
*/ */
class AutoMode : public ModuleParams class AckermannAutoMode : public ModuleParams
{ {
public: public:
/** /**
* @brief Constructor for auto mode. * @brief Constructor for auto mode.
* @param parent The parent ModuleParams object. * @param parent The parent ModuleParams object.
*/ */
AutoMode(ModuleParams *parent); AckermannAutoMode(ModuleParams *parent);
~AutoMode() = default; ~AckermannAutoMode() = default;
/** /**
* @brief Generate and publish roverPositionSetpoint from positionSetpointTriplet. * @brief Generate and publish roverPositionSetpoint from positionSetpointTriplet.
@@ -31,8 +31,8 @@
# #
############################################################################ ############################################################################
px4_add_library(ManualMode px4_add_library(AckermannAutoMode
ManualMode.cpp AckermannAutoMode.cpp
) )
target_include_directories(ManualMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(AckermannAutoMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
@@ -31,11 +31,11 @@
* *
****************************************************************************/ ****************************************************************************/
#include "ManualMode.hpp" #include "AckermannManualMode.hpp"
using namespace time_literals; using namespace time_literals;
ManualMode::ManualMode(ModuleParams *parent) : ModuleParams(parent) AckermannManualMode::AckermannManualMode(ModuleParams *parent) : ModuleParams(parent)
{ {
updateParams(); updateParams();
_rover_throttle_setpoint_pub.advertise(); _rover_throttle_setpoint_pub.advertise();
@@ -46,13 +46,13 @@ ManualMode::ManualMode(ModuleParams *parent) : ModuleParams(parent)
_rover_position_setpoint_pub.advertise(); _rover_position_setpoint_pub.advertise();
} }
void ManualMode::updateParams() void AckermannManualMode::updateParams()
{ {
ModuleParams::updateParams(); ModuleParams::updateParams();
_max_yaw_rate = _param_ro_yaw_rate_limit.get() * M_DEG_TO_RAD_F; _max_yaw_rate = _param_ro_yaw_rate_limit.get() * M_DEG_TO_RAD_F;
} }
void ManualMode::manual() void AckermannManualMode::manual()
{ {
manual_control_setpoint_s manual_control_setpoint{}; manual_control_setpoint_s manual_control_setpoint{};
_manual_control_setpoint_sub.copy(&manual_control_setpoint); _manual_control_setpoint_sub.copy(&manual_control_setpoint);
@@ -67,7 +67,7 @@ void ManualMode::manual()
_rover_throttle_setpoint_pub.publish(rover_throttle_setpoint); _rover_throttle_setpoint_pub.publish(rover_throttle_setpoint);
} }
void ManualMode::acro() void AckermannManualMode::acro()
{ {
manual_control_setpoint_s manual_control_setpoint{}; manual_control_setpoint_s manual_control_setpoint{};
_manual_control_setpoint_sub.copy(&manual_control_setpoint); _manual_control_setpoint_sub.copy(&manual_control_setpoint);
@@ -83,7 +83,7 @@ void ManualMode::acro()
_rover_rate_setpoint_pub.publish(rover_rate_setpoint); _rover_rate_setpoint_pub.publish(rover_rate_setpoint);
} }
void ManualMode::stab() void AckermannManualMode::stab()
{ {
if (_vehicle_attitude_sub.updated()) { if (_vehicle_attitude_sub.updated()) {
vehicle_attitude_s vehicle_attitude{}; vehicle_attitude_s vehicle_attitude{};
@@ -129,7 +129,7 @@ void ManualMode::stab()
} }
} }
void ManualMode::position() void AckermannManualMode::position()
{ {
if (_vehicle_attitude_sub.updated()) { if (_vehicle_attitude_sub.updated()) {
vehicle_attitude_s vehicle_attitude{}; vehicle_attitude_s vehicle_attitude{};
@@ -217,7 +217,7 @@ void ManualMode::position()
} }
} }
void ManualMode::reset() void AckermannManualMode::reset()
{ {
_stab_yaw_setpoint = NAN; _stab_yaw_setpoint = NAN;
_pos_ctl_course_direction = Vector2f(NAN, NAN); _pos_ctl_course_direction = Vector2f(NAN, NAN);
@@ -57,15 +57,15 @@
/** /**
* @brief Class for ackermann manual mode. * @brief Class for ackermann manual mode.
*/ */
class ManualMode : public ModuleParams class AckermannManualMode : public ModuleParams
{ {
public: public:
/** /**
* @brief Constructor for ManualMode. * @brief Constructor for AckermannManualMode.
* @param parent The parent ModuleParams object. * @param parent The parent ModuleParams object.
*/ */
ManualMode(ModuleParams *parent); AckermannManualMode(ModuleParams *parent);
~ManualMode() = default; ~AckermannManualMode() = default;
/** /**
* @brief Publish roverThrottleSetpoint and roverSteeringSetpoint from manualControlSetpoint. * @brief Publish roverThrottleSetpoint and roverSteeringSetpoint from manualControlSetpoint.
@@ -31,8 +31,8 @@
# #
############################################################################ ############################################################################
px4_add_library(OffboardMode px4_add_library(AckermannManualMode
OffboardMode.cpp AckermannManualMode.cpp
) )
target_include_directories(OffboardMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(AckermannManualMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
@@ -31,23 +31,23 @@
* *
****************************************************************************/ ****************************************************************************/
#include "OffboardMode.hpp" #include "AckermannOffboardMode.hpp"
using namespace time_literals; using namespace time_literals;
OffboardMode::OffboardMode(ModuleParams *parent) : ModuleParams(parent) AckermannOffboardMode::AckermannOffboardMode(ModuleParams *parent) : ModuleParams(parent)
{ {
updateParams(); updateParams();
_rover_velocity_setpoint_pub.advertise(); _rover_velocity_setpoint_pub.advertise();
_rover_position_setpoint_pub.advertise(); _rover_position_setpoint_pub.advertise();
} }
void OffboardMode::updateParams() void AckermannOffboardMode::updateParams()
{ {
ModuleParams::updateParams(); ModuleParams::updateParams();
} }
void OffboardMode::offboardControl() void AckermannOffboardMode::offboardControl()
{ {
offboard_control_mode_s offboard_control_mode{}; offboard_control_mode_s offboard_control_mode{};
_offboard_control_mode_sub.copy(&offboard_control_mode); _offboard_control_mode_sub.copy(&offboard_control_mode);
@@ -53,15 +53,15 @@ using namespace matrix;
/** /**
* @brief Class for ackermann manual mode. * @brief Class for ackermann manual mode.
*/ */
class OffboardMode : public ModuleParams class AckermannOffboardMode : public ModuleParams
{ {
public: public:
/** /**
* @brief Constructor for OffboardMode. * @brief Constructor for AckermannOffboardMode.
* @param parent The parent ModuleParams object. * @param parent The parent ModuleParams object.
*/ */
OffboardMode(ModuleParams *parent); AckermannOffboardMode(ModuleParams *parent);
~OffboardMode() = default; ~AckermannOffboardMode() = default;
/** /**
* @brief Generate and publish roverSetpoints from trajectorySetpoint. * @brief Generate and publish roverSetpoints from trajectorySetpoint.
@@ -31,6 +31,8 @@
# #
############################################################################ ############################################################################
add_subdirectory(AutoMode) px4_add_library(AckermannOffboardMode
add_subdirectory(ManualMode) AckermannOffboardMode.cpp
add_subdirectory(OffboardMode) )
target_include_directories(AckermannOffboardMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
@@ -31,8 +31,6 @@
# #
############################################################################ ############################################################################
px4_add_library(AutoMode add_subdirectory(AckermannAutoMode)
AutoMode.cpp add_subdirectory(AckermannManualMode)
) add_subdirectory(AckermannOffboardMode)
target_include_directories(AutoMode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+4 -4
View File
@@ -36,7 +36,7 @@ add_subdirectory(AckermannRateControl)
add_subdirectory(AckermannAttControl) add_subdirectory(AckermannAttControl)
add_subdirectory(AckermannVelControl) add_subdirectory(AckermannVelControl)
add_subdirectory(AckermannPosControl) add_subdirectory(AckermannPosControl)
add_subdirectory(DriveModes) add_subdirectory(AckermannDriveModes)
px4_add_module( px4_add_module(
MODULE modules__rover_ackermann MODULE modules__rover_ackermann
@@ -50,9 +50,9 @@ px4_add_module(
AckermannAttControl AckermannAttControl
AckermannVelControl AckermannVelControl
AckermannPosControl AckermannPosControl
AutoMode AckermannAutoMode
ManualMode AckermannManualMode
OffboardMode AckermannOffboardMode
px4_work_queue px4_work_queue
rover_control rover_control
pure_pursuit pure_pursuit
@@ -55,9 +55,9 @@
#include "AckermannAttControl/AckermannAttControl.hpp" #include "AckermannAttControl/AckermannAttControl.hpp"
#include "AckermannVelControl/AckermannVelControl.hpp" #include "AckermannVelControl/AckermannVelControl.hpp"
#include "AckermannPosControl/AckermannPosControl.hpp" #include "AckermannPosControl/AckermannPosControl.hpp"
#include "DriveModes/AutoMode/AutoMode.hpp" #include "AckermannDriveModes/AckermannAutoMode/AckermannAutoMode.hpp"
#include "DriveModes/ManualMode/ManualMode.hpp" #include "AckermannDriveModes/AckermannManualMode/AckermannManualMode.hpp"
#include "DriveModes/OffboardMode/OffboardMode.hpp" #include "AckermannDriveModes/AckermannOffboardMode/AckermannOffboardMode.hpp"
class RoverAckermann : public ModuleBase<RoverAckermann>, public ModuleParams, class RoverAckermann : public ModuleBase<RoverAckermann>, public ModuleParams,
public px4::ScheduledWorkItem public px4::ScheduledWorkItem
@@ -124,9 +124,9 @@ private:
AckermannAttControl _ackermann_att_control{this}; AckermannAttControl _ackermann_att_control{this};
AckermannVelControl _ackermann_vel_control{this}; AckermannVelControl _ackermann_vel_control{this};
AckermannPosControl _ackermann_pos_control{this}; AckermannPosControl _ackermann_pos_control{this};
AutoMode _auto_mode{this}; AckermannAutoMode _auto_mode{this};
ManualMode _manual_mode{this}; AckermannManualMode _manual_mode{this};
OffboardMode _offboard_mode{this}; AckermannOffboardMode _offboard_mode{this};
// Variables // Variables
bool _sanity_checks_passed{true}; // True if checks for all active controllers pass bool _sanity_checks_passed{true}; // True if checks for all active controllers pass