diff --git a/clover/src/simple_offboard.cpp b/clover/src/simple_offboard.cpp index b8f57033..fc755d77 100644 --- a/clover/src/simple_offboard.cpp +++ b/clover/src/simple_offboard.cpp @@ -860,6 +860,13 @@ bool land(std_srvs::Trigger::Request& req, std_srvs::Trigger::Response& res) return false; } +bool release(std_srvs::Trigger::Request& req, std_srvs::Trigger::Response& res) +{ + setpoint_timer.stop(); + res.success = true; + return true; +} + int main(int argc, char **argv) { ros::init(argc, argv, "simple_offboard"); @@ -933,6 +940,7 @@ int main(int argc, char **argv) auto sa_serv = nh.advertiseService("set_attitude", &setAttitude); auto sr_serv = nh.advertiseService("set_rates", &setRates); auto ld_serv = nh.advertiseService("land", &land); + auto rl_serv = nh_priv.advertiseService("release", &release); // Setpoint timer setpoint_timer = nh.createTimer(ros::Duration(1 / nh_priv.param("setpoint_rate", 30.0)), &publishSetpoint, false, false); diff --git a/docs/en/simple_offboard.md b/docs/en/simple_offboard.md index 832bd363..cff1c743 100644 --- a/docs/en/simple_offboard.md +++ b/docs/en/simple_offboard.md @@ -305,6 +305,16 @@ rosservice call /land "{}" > **Caution** In recent PX4 versions, the vehicle will be switched out of LAND mode to manual mode, if the remote control sticks are moved significantly. +### release + +If it's necessary to pause sending setpoint messages, use the `simple_offboard/release` service: + +```python +release = rospy.ServiceProxy('simple_offboard/release', Trigger) + +release() +``` + ## Additional materials * [ArUco-based position estimation and navigation](aruco.md). diff --git a/docs/ru/simple_offboard.md b/docs/ru/simple_offboard.md index 29938e25..c9d51474 100644 --- a/docs/ru/simple_offboard.md +++ b/docs/ru/simple_offboard.md @@ -305,6 +305,16 @@ rosservice call /land "{}" > **Caution** В более новых версиях PX4 коптер выйдет из режима LAND в ручной режим, если сильно перемещать стики. +### release + +В случае необходимости приостановки отправки setpoint-сообщений, используйте сервис `simple_offboard/release`: + +```python +release = rospy.ServiceProxy('simple_offboard/release', Trigger) + +release() +``` + ## Дополнительные материалы * [Полеты в поле ArUco-маркеров](aruco.md).