mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-29 17:43:33 +08:00
git status
This commit is contained in:
committed by
Lorenz Meier
parent
e6ffa16125
commit
60be6a577f
@@ -60,7 +60,9 @@ MissionBlock::MissionBlock(Navigator *navigator, const char *name) :
|
||||
_mission_item({0}),
|
||||
_waypoint_position_reached(false),
|
||||
_waypoint_yaw_reached(false),
|
||||
_time_first_inside_orbit(0)
|
||||
_time_first_inside_orbit(0),
|
||||
_actuators{},
|
||||
_actuator_pub(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -72,9 +74,11 @@ bool
|
||||
MissionBlock::is_mission_item_reached()
|
||||
{
|
||||
if (_mission_item.nav_cmd == NAV_CMD_DO_SET_SERVO) {
|
||||
//up_pwm_servo_arm(true);
|
||||
//up_pwm_servo_set(_mission_item.actuator_num-1, _mission_item.actuator_value);
|
||||
warnx("Set servo cmd executed");
|
||||
|
||||
_actuators.control[_mission_item.actuator_num] = 1.0f / 2000 * -_mission_item.actuator_value;
|
||||
_actuators.timestamp = hrt_absolute_time();
|
||||
orb_publish(ORB_ID(actuator_controls_2), _actuator_pub, &_actuators);
|
||||
warnx("Set servo cmd executed");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#include <uORB/topics/mission.h>
|
||||
#include <uORB/topics/vehicle_global_position.h>
|
||||
#include <uORB/topics/position_setpoint_triplet.h>
|
||||
#include <uORB/topics/actuator_controls.h>
|
||||
|
||||
#include "navigator_mode.h"
|
||||
|
||||
@@ -97,6 +98,10 @@ protected:
|
||||
bool _waypoint_position_reached;
|
||||
bool _waypoint_yaw_reached;
|
||||
hrt_abstime _time_first_inside_orbit;
|
||||
|
||||
actuator_controls_s _actuators;
|
||||
orb_advert_t _actuator_pub;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -303,9 +303,25 @@ MissionFeasibilityChecker::check_dist_1wp(dm_item_t dm_current, size_t nMissionI
|
||||
for (unsigned i = 0; i < nMissionItems; i++) {
|
||||
if (dm_read(dm_current, i,
|
||||
&mission_item, sizeof(mission_item_s)) == sizeof(mission_item_s)) {
|
||||
/* Check non navigation item */
|
||||
if (mission_item.nav_cmd == NAV_CMD_DO_SET_SERVO){
|
||||
|
||||
//check actuator number
|
||||
if (mission_item.actuator_num<1 || mission_item.actuator_num>6) {
|
||||
mavlink_log_critical(_mavlink_fd, "Actuator number %d is out of bounds 1..6", (int)mission_item.actuator_num);
|
||||
warning_issued = true;
|
||||
return false;
|
||||
}
|
||||
//check actuator value
|
||||
if (mission_item.actuator_value<900 || mission_item.actuator_value>2000) {
|
||||
mavlink_log_critical(_mavlink_fd, "Actuator number %d is out of bounds 900..2000", (int)mission_item.actuator_value);
|
||||
warning_issued = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
/* check only items with valid lat/lon */
|
||||
if ( mission_item.nav_cmd == NAV_CMD_WAYPOINT ||
|
||||
else if ( mission_item.nav_cmd == NAV_CMD_WAYPOINT ||
|
||||
mission_item.nav_cmd == NAV_CMD_LOITER_TIME_LIMIT ||
|
||||
mission_item.nav_cmd == NAV_CMD_LOITER_TURN_COUNT ||
|
||||
mission_item.nav_cmd == NAV_CMD_LOITER_UNLIMITED ||
|
||||
|
||||
Reference in New Issue
Block a user