发表自话题:罗盘的使用方法入门
第一部分 地面站
Paparazzi (简称PPZ)UAV项目起始于2003年,由法国民航大学发起的一套软硬件开源无人机项目,它提供了一整套完整的无人机软硬件解决方案。
PPZ 地面站软件运行在Linux Ubuntu操作系统(12/14/16.04 LTS版本均可测试通过)上,是集参数配置、编译、上传、仿真、实飞等功能的一体化平台。
安装方法:在Ubuntu 操作系统上调出命令行(Ctrl+Alt+T),输入:
sudo add-apt-repository -y ppa:paparazzi-uav/ppa && sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa && sudo apt-get update && sudo apt-get -f -y install paparazzi-dev paparazzi-jsbsim gcc-arm-embedded && cd ~ && git clone --origin upstream https://github.com/paparazzi/paparazzi.git && cd ~/paparazzi && git remote update -p && git checkout -b v5.14 upstream/v5.14 && sudo cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && make && ./paparazzi
漫长的等待之后安装完成。注意的是make过程之中会访问google地图,出现卡死现象,因此建议至少把上述命令分解两部分,绿色和红色部分,在绿色部分运行完毕之后,修改Paparazzi文件夹根目录下的Makefile文件,找到这么一行,将其删除:
update_google_version:
-$(MAKE) -C data/maps
然后运行红色部分,安装完成后即可使用PPZ Center。如果是root用户直接切入paparazzi根目录./paparazzi启动,如果是普通用户则需要sudo ./paparazzi,因为在一些环节需要权限(譬如调用USB驱动程序从数传读数据)
PPZ Center的左侧是配置文件位置,A/C就是aircraft,载机,例如选择Microjet_LisaM,就是Lisa M的固定翼机型。id代表飞机的编号,Target 选择编译方式,如果没有硬件可以仿真(sim),如果有Lisa飞控板则可以选择ap,然后build,编译飞控代码。upload上传代码到主板;Session 仿真或者USB-57600(根据实际情况选择),Execute后开始运行地面站。
关于谷歌地图被墙,需要更改为Bing地图,激活GCS对话框,勾选菜单栏的Maps -> Map Sources -> Bing,然后点击GCS上方那个地球的图标(WGS84左侧那个),则黑色背景会缓慢被下载的Bing地图替换。默认的坐标是国外的一个地方。可以在‘飞行计划’里修改为你当地的具体位置。
第二部分 硬件概况
主板:
• STM32F105RCT6 微控制器,带 256kB FLASH 以及 64kB RAM
• 7 x 模拟输入通道
• 3 x 通用数字输入输出
• 2 x 3.3V/5V TTL UART
• 8 x Servo PPM outputs (only 6 if second I2C (I2C1) bus in use)
• 1 x CAN 总线
• 1 x SPI 总线
• 1 x I2C 总线(在使用前 6 个伺服输出情况下可扩展为 2 x)
• 1 x Micro USB 接口
• 5 x LED 状态指示灯
• 10.8 克 (安装 Aspirin IMU)
• 9.9 克 (不安装 Aspirin IMU )
• ~34mm x ~60mm x ~10mm
• 4 层 PCB 设计
与该主板配套的 Aspirin IMU 包含如下传感器:
• 3 轴陀螺仪
• 3 轴加速度计
• 3 轴磁力计
• MS5611 气压计
第三部分 接线方法
板正面包含所有对外接口、 LED 指示灯、 5.0V、 3.3V 电源稳压模块、12MHz晶振等。板背面包含 MCU、 IMU 焊盘、 CAN 芯片、双向电平芯片等。8 路伺服输出的 3PIN 排针从上往下依次表示信号、电源、地。 通过 Micro USB 接口可以方便地更新飞控程序。插上数据线后, LED1~5依次跑马灯闪烁。在 PPZ Center 内成功编译代码后,点击 Upload(上传),应出现进度条信息。完成程序更新后跑马灯消失。 LED1 系统时钟, 以 1Hz 频率闪烁; LED2 在完成 ARHS 算法初始化后常亮; LED3 表示 GPS 指示灯,成功连接后闪烁; LED4 为遥控的接收机指示灯,成功连接后常亮; LED5 保留未使用,用户可以配置他用。
第四部分 装机示例
单马达、双舵机(如天行者 X5)
电池与电调相连接,电调包含 3PIN 信号线自带的 5V 输出连接到主板伺服 1 为主板供电,同时电调的另一端输出为电机供电。电池电压可以通过将电池的正极引出一根线至主板的 V_BAT接口。数传电台 XBee 接入主板的 UART2,也可以用更为廉价的 3DR 数传代替。GPS 模块接入 UART3,支持 UBX 协议、 NEMA 协议的 GPS。遥控器接收机与 UART1/5 相连,也可以用含有 PPM 编码的接收机通过伺服 6 与主板相连。主板的伺服 2、 3 分别连接舵机。两个舵机采用混控方式, PPZ Center 中该主板默认的配置文件即为此种机型。
单马达、四舵机(如冲浪者)
四舵机(副翼、 升降舵、方向舵)固定翼。
电池与电调相连接,电调包含 3PIN 信号线自带的 5V 输出连接到主板伺服 1 为主板供电,同时电调的另一端输出为电机供电。电池电压可以通过将电池的正极引出一根线至主板的 V_BAT接口。数传电台 XBee 接入主板的 UART2,也可以用更为廉价的 3DR 数传代替。GPS 模块接入 UART3,支持 UBX 协议、 NEMA 协议的 GPS。遥控器接收机与 UART1/5 相连,也可以用含有 PPM 编码的接收机通过伺服 6 与主板相连。主板的伺服 2、 3、 4、 5 分别连接舵机,分别是左右副翼、升降舵、方向舵。 注意: 实际中我们常用 Y 舵机分线连接副翼,也就是副翼只用 1 个伺服端口。
四轴
电池与经过四路分别于四个电调相连接,电调包含 3PIN 信号线自带的 5V 输出连接到主板伺服 1、 2、 3、 4 为主板供电,同时电调的另一端输出为电机供电。电池电压可以通过将电池的正极引出一根线至主板的 V_BAT 接口。数传电台 XBee 接入主板的 UART2,也可以用更为廉价的 3DR 数传代替。GPS 模块接入 UART3,支持 UBX 协议、 NEMA 协议的 GPS。遥控器接收机与 UART1/5 相连,也可以用含有 PPM 编码的接收机通过伺服 6 与主板相连。
第五部分 外部设备
1 电机与电调
首次使用,需要校准电调(注意遥控器设置为pwm模式,也即关闭ppm)(参阅FAQ:如何设置富斯遥控的PPM模式)
1.将电调的3PIN线连接到遥控接收机的油门通道(通常为通道3)
2.打开发射机,然后将油门摇杆置于最大(全满)
3.连接电池
4.你会听到一段音乐声而后有两个“哔”音。在两个“哔”音之后,将油门摇杆放低至最低。然后你会听到几声“哔”音(每一声代表你所使用的电池的一芯),随后一个长“哔”声表示终点已被设定而且电调已校准
5.断开电池。在所有电调上重复这些步骤
最好使用飞控连接状态下校准电调:
拔了电池,使用USB线烧录程序,之后飞控执行程序,各个伺服输出有信号把遥控器油门推到最大接入想要校准的通道的电调与电机同上面的第四步
2 无线数传电台
无线数传电台的协议选择透明传输(所收即所发),在机体配置文件中表示为:
在Lisa主板上,默认硬件接口选择UART2,波特率57600,如需参数配置,位置在paparazzi/conf/boards/下的lisa_m_2.0.makefile文件中:
MODEM_PORT ?= UART2
MODEM_BAUD ?= B57600
在Paparazzi Center里的Session选择Flight USB-serial,@后面是波特率,选择57600(与配置文件匹配!)。小常识:低波特率可以降低误码率,提升电台的工作距离。
3 遥控器与接收机
Spektrum型号的接收机可以直接将指令转换为串口通信,主板预留了UART1/5接口,为官方的默认配置类型。而且有两个接收机,提高可靠性,机体配置如下:
若从节约成本角度考虑,选择ppm编码输出的接收机(参阅FAQ:如何设置富斯遥控的PPM模式)也可以满足需求。ppm输出与主板的伺服6端口相连。此时机体配置文件修改如下:
4 GPS模块
GPS的协议选择透ubx(全球著名ublox厂商私家协议标准),在机体配置文件中表示为:
选择ubx协议意味着购买的GPS模块只能是ublox品牌。
其实GPS协议还可以选择国际通行标准nmea,如果这样可选择的GPS模块就有很多。但是paparazzi存在bug,编译不能通过。
关于GPS模块本身的配置需要参照不同品牌,例如ublox模块提供了u-center配置环境,在windows下修改GPS模块的参数,当然还需要一个硬件模块(GPS参数配置板)连接GPS模块与PC。
在Lisa主板上,硬件接口选择UART3,波特率38400,参数配置位置在paparazzi/conf/boards/下的lisa_m_2.0.makefile文件中:
GPS_PORT ?= UART3
GPS_BAUD ?= B38400
其他需要强调的是,GPS模块需要再空旷的地带才能获取良好的精度,并稳定显示在地图中的某个点,否则存在严重的漂移现象(实际上飞机就放在地面)、甚至无法定位。此外,试飞前通电约两分钟再重新上电有利于GPS模块消除缓存误差,提高精度与稳定性。
第六部分 配置文件
运行Paparazzi Center之后左侧有许多配置选项,第一项A/C便为机体配置项,可以下拉选择不同的机型以及飞控;同时我们也可以发现,这些机体文件存放在paparazzi工程的airframes/examples目录下面。在Airframe选项里可以浏览或者编辑机体配置。
以Lisa/M v2.0为例:固定翼机A/C选择Microjet_LisaM,默认体配置文件为microjet_lisa_m.xml;四轴的A/C选择Quad_LisaM_2,默认机体配置文件为_lisa_m_2_pwm_spektrum.xml。下面点击编辑,文件内容有很多,我们关心的几个核心的配置(必须掌握) :
基础配置
使用板载气压计 BMP085,如果 IMU 选择的是 Aspirin v2.2,那么换为 MS5611 气压计。
使用电子罗盘, 如果设置为 FLASE 则用的是 GPS 作为方向判断
使用 ppm 编码的接收机
无线数传为透明传输模式
使用 aspirin_v2.1 版本的 IMU,据实可改为使用 aspirin_v2.2 版本的 IMU
使用 ubx 协议的 GPS
使用定点型四元数稳定性算法表达方式
使用定点型四元数互补滤波的 AHRS 算法
两舵机配置(例如天行者 X5):
端口定义, 第一个端口接电机,第二个端口接左副翼,第四个端口接右副翼。
< !-- 升降指令(升降舵) -->
遥控指令关联
左右副翼混控
遥控指令与各个舵机输出关系
磁力计相关参数,使用传感器校准替代以上数据。
设置主板摆放方向(可改变陀螺仪的逻辑关系)
电子罗盘的磁偏角,世界各地不一样。
电池电压参数,默认为 3S 配置。
四舵机配置(例如冲浪者 X8):
端口定义, 第一个端口接电机,第二个端口接副翼,第三个端口接升降舵、第四个端口接方向舵。
< !-- 偏航指令(方向舵) -->
遥控指令关联
< !-- 端口与指令关联 -->
遥控指令与各个舵机输出关系
四轴“+” 配置:
端口定义, 1~4 端口分别接前后左右电机。
端口混控关系,翻滚、俯仰、偏航、油门指令对应的舵机输出系数。
遥控指令与各个舵机输出关系
第七部分 参数校准
1 配置遥控器
每个遥控器四个最基本的指令是THROTTLE(油门)、YAW(偏航)、PITCH(俯仰)、ROLL(横滚),对应了左右两个摇杆。其余的可以视为辅助通道。在遥控器可以设置剩余通道对应的拨杆或者旋钮。在Radio配置文件中对应为:
此处列举了6通道遥控器,(注意,这里的顺序可能是不对的)。每个通道对应了min、max、neutral参数。如果通道数量不一样,需要做增加或者减少。
图表示了固定翼/多轴在GCS里面的Settings选择ppm输出方法,注意要点击绿色勾选。然后Messages(参阅FAQ:如何打开Messages)里变会多出ppm一项。里面的6个数值分别对应了xml文件里的6个通道数值(xml里面的顺序!)。那么这时候开始操纵摇杆,例如油门,观察第几个数值在改变,例如第2个,那需要把function="THROTTLE"那一行移到第2个。继续操纵摇杆把最大值、最小值获取,替换掉xml原有的。这里还需要注意,油门的min与neutral设置相等;PITCH的min、max相反写(可以尝试,因为这样为了和遥控的俯仰摇杆和实际飞行动作做逻辑对应);另外,function="MODE"表示用摇杆切换飞行模式,例如固定翼中可以有MANUAL,AUTO1,AUTO2,上面的xml第5行(绿色标识)为模式通道,通过设置遥控器第1个辅助(前面4个为主通道),可以指定哪一个拨杆对应此模式通道(参阅FAQ:如何设置富斯遥控的辅助通道)。模式通道在以后的飞行中将会有很大用处。
2 校准传感器
准备工作:在GCS里面的Settings->Telemetry下面,选择raw_sensors,并点击右侧绿色小勾!此时Messages(参阅FAQ:如何打开Messages)里面便会多出传感器的原始值。
a.校准加速度计
由于加速度计对外界扰动十分敏感,因此最好将IMU(图中阴影框)固定在一个重物上(例如电池,图中白色框)。校准时要十分小心,操作要规范,否则校准数据会不准确。想象空间有一个立方体,将IMU轮流摆放立方体六个面上,每个轴面放置超过10秒钟,顺序为:
上方->下方->前方->后方->右侧->左侧
注意采样数据要均匀稳定,尤其注意手不能抖动。最后关闭程序,运行一下脚本得到加速度计校准数据。
sw/tools/calibration/calibrate.py -s ACCEL var/logs/YY_MM_DD__hh_mm_ss.data
请将阴影部分替换为真实的文件名。
b.校准电子罗盘
第一步,获取当地的磁偏角:
打开网站:http://www.ngdc.noaa.gov/geomag-web/#igrfwmm,输入当地经纬度(南京为例):
点击Calculate之后会弹出结果:
我们需要三个分量:
点击Calculate之后会弹出结果:{32,814.2 nT -3,150.1 nT 37,326.1 nT},我们需要用一个数学工具归一化这个向量,可以用scilab或者Wolfram Alpha,
这里介绍另外一个方法,在matlab里面依次输入:
a=[32814.2, -3150.1, 37326.1]
b=norm(a)
c=a./b
则可以得到最终想要的磁偏角:0.6589 -0.0633 0.7495,我们写入机体配置文件:
第二步,校正罗盘的正确指向:
完成本节开头准备工作,之后将飞机绕着所有轴缓慢旋转,保证磁力计已经在整个球面(如图所示)获取到了采样测量值。
最后运行脚本:
sw/tools/calibration/calibrate.py -s MAG var/logs/YY_MM_DD__hh_mm_ss.data
请将阴影部分替换为真实的文件名。
获取最终的下面数值,写入机体配置文件。
第三步,校正罗盘电流干扰:
电子罗盘测量的是地磁,而飞机上的电气连线难免会有变化的电流产生的磁场,而因此干扰电子罗盘的正常工作。
1. 在机体配置文件里定义 MILLIAMP_AT_FULL_THROTTLE
2. 勾选mag_current_calibration(如图所示),并打开Messages
3. 固定好飞机,缓慢推油门,至满,然后关闭
4. 关闭地面站
接下来,运行以下脚本:
sw/tools/calibration/calibrate_mag_current.py var/logs/YY_MM_DD__hh_mm_ss.data
请将阴影部分替换为真实的文件名。
最后把获取到的数值写入机体配置文件即可:
...
...
3 校准PID
更多信息请百度/优酷搜索如何调节PID,调节PID技巧等关键字
4 校准姿态
由于飞控安装到载机上不可能严格保证其处于水平位置,换句话说,安装完好的载机放置在地面上,通过地面站观察到的陀螺仪不能严格保证水平。带来的后果是飞机起飞后姿态漂移。校准方法是在Paparazzi Ceneter的Settings添加body_to_imu.xml,然后编译、上传、并打开地面站,此时在地面站的Settings模块会多出body2imu的选项,打开messages,找到水平分量theta、phi(图中以四轴为例)。此时通过调整b2i phi、b2i theta,使得messages中的phi、theta为0即可,记录下此时的参数,写入机体配置文件。
小提示:默认是修正步进较大(0.5),可以通过修改body_to_imu.xml修改,变小。另外一点,由于飞机放置地面本身就无法保证其处于水平位置,因此上天后可能这些参数可能不为0,还需要进一步调试归0才行。
5 上传程序方法
拔掉航模电池,用MicroUSB连接线(一般智能手机都有)连接Lisa M/v2.0主板,可以看到LEDVIN常亮,LED1~LED5以跑马灯闪烁。调出Linux命令行运行lsusb,应当看到多出主板设备,代表PC已经识别了该主板。
打开Paparazzi Center(需要root权限,否则普通用户无法对设备进行读写),选择配置文件:固定翼选择Microject_LisaM,四旋翼选择Quad_LisaM_2;Target选择ap; 编译选择“Build”,Flash mode为 USB DFU(stm32_mem),选择默认也行,因为在lisa_m_2.0.makefile有默认配置:
# default flash mode is via usb dfu bootloader (luftboot)
# other possibilities: DFU-UTIL, JTAG, SWD, STLINK, SERIAL
FLASH_MODE ?= DFU
最后Upload,等待进度条完成即可。
至此完成代码更新。跑马灯熄灭。LED1以1Hz频率闪烁,LED2闪烁后常亮,姿态解算完成。最后选择右上角的Session, 具体请结合无线数传电台参数选择,例如USB接口57600波特率;最后点击右上角的Execute执行地面站。
第八部分 飞行计划
alt:预设飞机飞行海拔(对海平面而言)ground_alt:飞行场地海拔(对海平面而言)lat0,lon0:HOME点经纬度max_dist_from_home:围绕HOME点最大飞行半径security_height:安全高度
接下来航点设置,以HOME点位WGS84坐标系O点,设置航点的位置。
注意,HOME为开始这是的经纬度,设置为{0,0},第二,航点也可以设置高度,如果不设置,默认为round_alt,但是在AF->TD降落航线一般要重新指定,也就是起降海拔、降落目标海拔。
更多信息参阅QQ群文件:Flight Plans.pdf
第九部分 常见问题
如何打开菜单栏
Ubuntu操作系统的菜单栏统一在桌面最顶部,而且隐藏起来,需要激活应用程序的对话框,然后鼠标移动到桌面顶部(偏左),便会出现该应用程序的菜单栏。
如何打开消息(Messages)
请激活Paparazzi Center对话框,然后在菜单栏(参阅FAQ,如何打开菜单栏)的在Tools里面下拉选择Messages,消息便会出现。
如何打开实时示波器(Real-time Plotter)
请激活Paparazzi Center对话框,然后在菜单栏(参阅FAQ,如何打开菜单栏)的在Tools里面下拉选择Real-time Plotter,实时示波器便会出现。把Messages里面的数值拖拽到示波器里可以观察数据的实时变化曲线。
四轴+与x型配置的电机转向是什么
四轴+型配置与飞控如何对应安装
飞控伺服1~4分别接入四轴的前、后、右、左的电调
四轴如何解锁
前提是,已经正确设置了遥控器摇杆的行程!
如何设置富斯遥控的PPM模式
如何设置富斯遥控的辅助通道
注意长按CANCEL键生效!
数传为何连接不上地面站
确认飞控指示灯,LED1常量,LED2闪烁;检查数传指示灯,绿灯常量(代表配对成功),红灯闪烁(代表有数据传输);通过命令行lsusb查看Ubuntu系统的USB设备列表,看看系统是否已经识别了数传硬件;确认是以root权限打开的paparazzi center;群文件有串口调试助手,可以在windows下接收数据。
欢迎加入QQ 交流群: 34528825 (Paparazzi UAV 技术交流)
标签组:[电池] [主板] [gps芯片] [舵机] [伺服马达] [gps接收机] [gps] [主板电池] [gps技术] [gps系统] [无人机飞控]
上一篇:抖音超火❤罗盘时钟html+css+js (免费附源码)
下一篇:中国风水罗盘怎么使用