# phenix mini 移植px4 1.12的无人车代码

* phenix mini 是基于PX4 1.7.3修改而来的

phenix mini在切换到无人车模式后不论哪种车型都没有PWM输出。

后发现使用PX41.11和1.12版本固件的飞控可以输出PWM，只是因为PX4没有支持麦克纳姆轮的车型无法做到控制无人车正常移动

刚开始以为是因为混控器方面的问题就参考1.12版本的混控器配置文件，把1.12的混控器配置文件移植到phenix mini 移植之后发现也没有PWM输出。后查阅资料发现px41.7.3 版本的无人车模式存在bug，有无人车模式但是没有PWM输出，同时PX4官方也没有把无人车的代码加入到集成测试中，所以也不清楚具体问题出在哪里。如下链接是关于这个问题的相关讨论

[no pwm output in rover mode · Issue #10221 · PX4/PX4-Autopilot (github.com)](https://github.com/PX4/PX4-Autopilot/issues/10221)

[NO PWM SIGNAL OUT - Pixhawk (Rover) - Discussion Forum, for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink](https://discuss.px4.io/t/no-pwm-signal-out-pixhawk-rover/5920)

和无人车相关的代码有lib中的ROMFS/px4fmu_commom文件夹下的内容

![image-20210426182153765](https://yewuyadeimagewall.oss-cn-hangzhou.aliyuncs.com/image-20210426182153765.png)

其中mixer中是不同机型的混控器配置文件init.d文件夹是不同机型的初始化配置

Src/lib文件夹下的mixer，output_limit ,pwm,src/modules文件夹下的px4iofirmware,rover_pos_control,这些代码都和无人车的控制相关，可能还有部分未列出的，由于1.7.3和1.12的版本时间间隔过长等原因，导致这两个版本的代码风格和软件架构发生了挺多变化，很多东西不是一脉相承的，增加了移植的难度，而且由于不清楚究竟是哪部分原因导致的1.7.3版本无人车模式没有PWM输出，所以可能需要把无人车相关的全部代码都移植到phenix mini中去，或者选择找到PWM没有输出的原因，修复这个BUG，这两者所消耗的时间并不清楚，可能找出bug比移植更加耗费时间。