文章目录
1 ROS
小鱼yyds,按照指示,把ros和rosdepc都安装一下,一般都没啥问题。
wget http://fishros.com/install -O fishros && . fishros
2 PX4仿真环境配置
2.1 下载
可以下载最新版本
git clone https://github.com/PX4/PX4-Autopilot.git
也可以下载老版本:
git clone -b v1.13.3 https://github.com/PX4/PX4-Autopilot.git
2.2 配置环境
需要注意网络状况,否则会失败,可以试着用手机流量开热点,可能会快一点
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh
2.3 编译
make px4_sitl gazebo
上一步编译好之后在该终端直接输入:
commander takeoff
commander land
这个环境是没有接入ros的,只能看看,除了终端那几条命令还有地面站,就没有其他接口了,如果想使用电脑控制无人机,还需要接入ros。
2.4 添加环境变量bashrc
nano ~/.bashrc
在bashrc中加入下面的内容就可以在任意终端打开PX4的launch了。但是注意,因为px4在1.14改动很大,把代码的好多结构都改了,位置变了,所以1.13与1.14有很大的不同。
如果你下载的最新版本1.15或者1.14版本请用这一条内容。
source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
如果用的是1.13请用这一条
source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
2.5 安装mavros
mavros是无人机与ros通信的工具,所以要使用电脑控制无人机的话,大部分都是要安装这个mavros的。
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
其中“noetic”替换成相应ubuntu的ros版本号,比如ubuntu20.04是noetic,ubuntu18.04是melodic,但是大概率执行最后一步都会花费很长时间,所以可以直接去从其他配置好的设备中拷下来,然后移动到/usr/share里面。
git clone https://gitee.com/lulese/geographic-lib.git
sudo cp -r GeographicLib /usr/share/
运行带有mavros的px4仿真环境
roslaunch px4 mavros_posix_sitl.launch
2.6 更换gazebo版本(如果上一步不能正确加载飞机)
如果加载不出来模型,请检查bashrc,以及gazebo版本,好像有些时候gazebo11.15不能运行,11.14可以,查看gazebo版本:
gazebo -v
更换版本到11.14,源码编译
# 先卸载gazebo,注意别把ros卸载了
sudo apt-get remove gazebo11 gazebo11-plugin-base libgazebo11 libgazebo11-dev
安装gazebo11.14
# 下载gazebo11.14
https://github.com/gazebosim/gazebo-classic/releases/tag/gazebo11_11.14.0
cd gazebo11_11.14.0
mkdir build
cmake ..
make -j4
sudo make install
安装gazebo_ros
sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control
3 安装QGC地面站
地面站有很多种,QGC、MIssion-planner、betaflight等等,我感觉界面好看的、适配px4的还是QGC好一点。
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage
4 控制无人机offboard模式走点、正方形、圆形
直接去下载项目无人机基础OFFboarrd项目,按照readme走就行了。
下载
cd ~/
git clone https://gitee.com/lulese/uavoffbard-frame_ws.git
cd UAVOffbardFrame_ws/
//编译
catkin_make
//更新环境变量,可以把刚才编译的功能包路径添加到环境中,那么本终端就可以运行本工作空间的功能包,也可以在~/.bashrc里面添加source语句,那么所有终端都可以使用本工作空间功能包
source ./devel/setup.bash