记录Ubuntu16.04下PX4联合Gazebo仿真时遇到的问题与解决方法
一、arm-none-eabi-gcc版本问题
在Ubuntu16.04中使用sudo apt-get install gcc-arm-none-eabi命令会自动安装默认版本(gcc version 4.9.3 20141119)的交叉编译器,而px4需要7.2.1版本,需要手动下载。
下载源码包后解压,如本机解压到目录/usr/lib/gcc
添加环境变量
vi /etc/profile
在文件最后添加
export PATH=$PATH:/usr/lib/gcc/gcc-arm-none-eabi-7-2017-q4-major/bin
使能环境变量
source /etc/profile
此命令只在当前终端有效,若需要在其它终端中使用,需要重启计算机。
二、make posix_sitl_default gazebo时gazebo闪退
解决方法有如下两种:
方法一:取消勾选虚拟机的加速3D图形选项
方法二:先执行export SVGA_VGPU10=0再执行make posix_sitl_default gazebo
在此我更推荐第二种解决方案。
相较于直接关闭3D加速,这样的好处在于可以获得一个较高的仿真帧率。我的配置是9400f+970+16g*2 运行帧率50+
三、rosrun时报错not found
如果catkin build成功,能看到自己的包被创建好(如下图)
offboard_pkg就是我自己创建的包
附创建命令:catkin_create_pkg offboard_pkg roscpp std_msgs geometry_msgs mavros_msgs
但是在执行rosrun时却又找不到包,这是由于没有配置环境的原因所造成的,解决方法:source ~/catkin_ws/devel/setup.bash
四、仿真运行的步骤
1.export SVGA_VGPU10=0
2.make posix_sitl_default gazebo (要在~/src/Firmware目录下)
3.新终端 roscore
4.新终端 roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" (启动PX4与Mavros的连接)
5.新终端 rosrun offboard_pkg offboard_node (要在~/catkin_ws目录下)