add processing of service request
This commit is contained in:
@@ -70,12 +70,21 @@ private:
|
|||||||
bool ready_to_fly = false;
|
bool ready_to_fly = false;
|
||||||
float cur_yaw = 0;
|
float cur_yaw = 0;
|
||||||
|
|
||||||
|
float last_setpoint[3] = {0,0,0};
|
||||||
|
float last_angle = 0;
|
||||||
|
|
||||||
void set_setpoint(
|
void set_setpoint(
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<px4_connection::srv::SetAttitude::Request> request,
|
const std::shared_ptr<px4_connection::srv::SetAttitude::Request> request,
|
||||||
const std::shared_ptr<px4_connection::srv::SetAttitude::Response> response)
|
const std::shared_ptr<px4_connection::srv::SetAttitude::Response> response)
|
||||||
{
|
{
|
||||||
|
last_setpoint[0] = request.x_speed;
|
||||||
|
last_setpoint[1] = request.y_speed;
|
||||||
|
last_setpoint[2] = request.x_speed;
|
||||||
|
|
||||||
|
last_angle = degrees_to_radians(request.angle);
|
||||||
|
|
||||||
|
response.status = ATTITUDE_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_trajectory_setpoint()
|
void send_trajectory_setpoint()
|
||||||
@@ -98,11 +107,11 @@ private:
|
|||||||
has_swithed = true;
|
has_swithed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.velocity[0] = 5;
|
msg.velocity[0] = last_setpoint[0];
|
||||||
msg.velocity[1] = 0;
|
msg.velocity[1] = last_setpoint[1];
|
||||||
msg.velocity[2] = D_SPEED(0);
|
msg.velocity[2] = D_SPEED(last_setpoint[2]);
|
||||||
msg.yawspeed = 0.5;
|
msg.yawspeed = 0.5;
|
||||||
msg.yaw = degrees_to_radians(80);
|
msg.yaw = last_angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.timestamp = this->get_clock()->now().nanoseconds() / 1000;
|
msg.timestamp = this->get_clock()->now().nanoseconds() / 1000;
|
||||||
|
|||||||
Reference in New Issue
Block a user