【PX4 飞控剖析】02 jmavsim软件在环仿真

jmavsim软件在环仿真

1. jmavsim环境的安装

软件在环仿真是一种以软件虚拟硬件的形式来仿真自驾仪的。搜索px4源码,可以发现大量的sitl关键字,几乎所有的设备驱动都具有软件仿真能力。
jmavsim的运行依赖于java 8。。。。。。。。。。

2. jmavsim的使用

在安装完java 8以后,我们就可以用make命令来进行仿真了。
首先打开终端,切换至firmware的下载路径,如:cd ~/downloads/px4/firmware
然后输入一下指令

make posix_sitl_default jmavsim

这句代码的意思是,编译firmware 目标代码编译为posix系统软件仿真代码,并用仿真器打开编译好的目标文件。

如果编译且运行成功,终端会出现以下信息

	______  __   __    ___ 
	| ___ \ \ \ / /   /   |
	| |_/ /  \ V /   / /| |
	|  __/   /   \  / /_| |
	| |     / /^\ \ \___  |
	\_|     \/   \/     |_/

	px4 starting.

3. 在仿真环境中添加自己的代码

和普通编译一样,仿真模式也可以添加自己的模块。
路径同样在firmware/cmake/configs
在此文件夹下找到文件 posix_sitl_default.cmake
在此文件中添加自己的模块名就可以编译了。

4. 仿真环境中的启动脚本

仿真环境下,也需要有启动脚本来启动进程,如果已经编译了自己的模块,但是没有在启动脚本中启动自己的模块,模块依然是无法自动运行的。
仿真环境的启动脚本位置,会因为px4源码的版本不一样而放在不同的路径,不过不用担心,启动脚本存放的地方,仿真系统启动后会明确表示出所在路径。

首先,启动仿真器
make posix_sitl_default jmavsim

如果成功可以看到上文中描述的图案,然后我们往上搜寻,可以发现某行有如下形式的信息:

rcS_dir: posix-configs/SITL/init/lpe

这句话是说目前启动的仿真器使用的启动脚本是

posix-configs/SITL/init/lpe

所以以后我们只需要启动仿真器 然后查看rcS_dir就可以知道目前使用的启动脚本了,然后我们打开此文件,添加我们的模块启动代码,就可以在仿真器中使用我们自己写好的模块了。

5. 自定义模块在仿真器中的注意事项。

  • 填坑1:自定义模块中 千万不要使用exit(0)来结束进程,在nuttx中每个模块是一个进程,使用exit没有什么影响,但是仿真环境中,整个px4固件整个是一个基于posix系统的x86构架的进程,每个模块只是一个子线程,所以如果使用exit将会直接结束仿真器的进程,我们应该把exit的地方用return 0;来代替。
  • 填坑2:如果使用的是mac系统,想要用地面站的摇杆来命令仿真器中的无人机飞行的话,解锁后,一定要先讲方向摇杆旋转几圈,否则无人机会朝前方45度飞行。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值