VTOL Position and Velocity control

Hello all,

Currently im testing a VTOL integration on mavros using a custom version of gazebo that supports Ardupilot quadplane.

Could anyone tell me if the Position control and speed controls are implemented in quadplane firmware?
The code works for ArduCopter but not for ArduPlane Quadplane aparently…

Here are the portions of code:

void nav_local_pos_setpoint(geometry_msgs::Point point)
{
float ref_quaternion[4];
geometry_msgs::PoseStamped local_setpoint;
ros::Rate rate(4);

local_setpoint.pose.position.x= point.x;
local_setpoint.pose.position.y= point.y;
local_setpoint.pose.position.z= point.z;
mavlink_euler_to_quaternion(0.0, 0.0, 0 , ref_quaternion);
local_setpoint.pose.orientation.w =ref_quaternion[0];
local_setpoint.pose.orientation.x =ref_quaternion[1];
local_setpoint.pose.orientation.y =ref_quaternion[2];
local_setpoint.pose.orientation.z =ref_quaternion[3];

pub_pos_setpoint_local.publish(local_setpoint);

/*while(1)
{
    if( (cp_local.pose.position.x<(point.x+raio)) && (cp_local.pose.position.x>(point.x-raio)) &&
        (cp_local.pose.position.y<(point.y+raio)) && (cp_local.pose.position.y>(point.y-raio)) &&
        (cp_local.pose.position.z<(point.z+raio)) && (cp_local.pose.position.z>(point.z-raio)) )
    {
        break;
    }
    rate.sleep();
    ros::spinOnce();
}*/

}

void nav_local_vel_setpoint(geometry_msgs::Point point, double theta_ref )
{
geometry_msgs::TwistStamped local_setpoint;

local_setpoint.twist.linear.x= point.x;
local_setpoint.twist.linear.y= point.y;
local_setpoint.twist.linear.z= point.z;
local_setpoint.twist.angular.x = 0;
local_setpoint.twist.angular.y = 0;
local_setpoint.twist.angular.z = theta_ref;

pub_vel_setpoint_local.publish(local_setpoint);

}

Thank you for your time

1 Like

I am also wondering that, which are proccesses that I can implement to ROS for controlling my quadplane.

At the time I wrote this I found out that position control was not available, only velocity.

I don’t know the current status of development now.

1 Like

ah thanks, where can I check that info, I want to do sth with ROS, but dunno what can I do or can’t?