- 校准遥控器
- 设置飞行模式
设置的模式的切换是通过通道B来进行的,最下面是Guided模式,该模式可以运行程序的内容,也可以运行写入的航点。中间的模式是QLoiter模式,最上面的是QRtl模式。像急停模式一般很少会用到,在扩展调参里面设置好就可以。对于Auto模式的话,是需要写入自己画好的航点以后才可以使用的一个模式。
- 校准电调的方法
1)电调对应的信号线连接到接收机油门位(3号),注意信号线的位置;
2)遥控器最高位;
3)安全开关(长亮,说明物理解锁已打开);
4)地面站解锁,见下图;
5)听到飞控解锁完成后,给电调(连电机)上电(插上电池);
6)听到电调一声长音、嘀嘀嘀、滴滴滴滴、滴滴后,遥控器油门迅速拉低,听到一声长音(较长)后,完成电调校准;
7)尾推电机校准:长音,滴滴,滴滴,拉,长音;
8)推油门,电机可以转;
9)电机行程修改(可以在serve out设置舵量的量程,使得平尾的上下舵量和中间舵量都达到一个合适的位置)
- 然后查看舵机的旋转的方向
前面的两个旋翼内旋,然后后面的两个电机分别与它们连杆的旋转方向相同。
- 校准加速度计和罗盘指南针
在罗盘的校准过程中一开始需要给罗盘设置这些参数,不然的话,很有可能不会发光,没有任何罗盘显示的现象,或者会出现校准的时候只有一个内置罗盘的现象出现。因此首先应该在全部参数列表里面添加这些参数。校准的时候最好绕着飞机的三个轴的方向正向180反向180进行校准。
有的时候可能会出现校准不了的情况,可以尝试去掉一个罗盘,一般去掉的是内置罗盘,用外置的罗盘,就能够达到要求。将外置的罗盘设置为主罗盘,内置罗盘不勾选就可以实现这样的功能。
编队能用得到的指令:MAV_CMD_DO_REPOSITION
void plane_do_reposition(void *serial_ptr,int32_t lat,int32_t lon,float alt)
{
int fd = *((int *)serial_ptr);
int messageLength;
int written;
static uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
mavlink_command_int_t com_do_repos;
com_do_repos.target_system = sysid_tgt;
com_do_repos.target_component = 1;
com_do_repos.command=MAV_CMD_DO_REPOSITION;
com_do_repos.frame =MAV_FRAME_GLOBAL;
com_do_repos.current = 0;
com_do_repos.autocontinue =1;
com_do_repos.param1 = -1;
com_do_repos.param2 = MAV_DO_REPOSITION_FLAGS_CHANGE_MODE;
com_do_repos.param3 = 0;
com_do_repos.param4 = NAN;
com_do_repos.x =lat;
com_do_repos.y =lon;
com_do_repos.z= alt;
mavlink_message_t message_do_repos;
mavlink_msg_command_int_encode(255, 190, &message_do_repos, &com_do_repos);
messageLength = mavlink_msg_to_send_buffer(buffer, &message_do_repos);
written = write(fd, (char *)buffer, messageLength); //若想使用,则需要把串口对应的指针传递过来
tcflush(fd, TCOFLUSH);
usleep(500000);
}
MAV_CMD_DO_ENGINE_CONTROL
MAV_CMD_DO_MOTOR_TEST
MAV_CMD_DO_SET_HOME
MAV_CMD_NAV_WAYPOINT
写了部分跟随机的程序,待测试:
获取领导机的状态信息,通过标志位判断切换旋翼和固定翼模式
设置一个无效但必须写入的航点
模式切换为旋翼
MAV_CMD_DO_REPOSITION跟随领导机的指令程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)