【PX4 飞控剖析】06 树莓派加载安装Mavros以及PX4固件
- 标题 : PX4二次开发教程:
- 起源: 根据阿木实验室讲解课程整理的学习笔记,推荐大家学习无人机的去学习这个课程,俗话说的好:问渠那得清如许,唯有源头活水来 -
- PX4智能无人机开发课程:https://bbs.amovlab.com/plugin.php?id=zhanmishu_video:video&mod=video&cid=39
1.树莓派.刷镜像
Ubuntu mate是测试过最好的。
1.2.开机配置
语言:英语
注意:设置用户名和密码的时候,设置为开机自启动,以后通电就进入桌面了。不然要是将树莓派安装到设备上,到时候用起来不方便。
wifi要是找不到,将现有的wifi配置删除,重启即可
2.树莓派.远程连接
2.2.1.远程桌面
sudo apt-get install xrdp
win8打开远程桌面连接。
输入你树莓派或者linux系统的用户名密码。
来自 http://blog.csdn.net/summerdj/article/details/51433546
2.2.安装putty
1、安装ssh服务
sudo apt-get install openssh-server
2、启动、停止、重启ssh服务
/etc/init.d/ssh start #开始服务
/etc/init.d/ssh stop #停止服务
/etc/init.d/ssh restart #重启服务
来自 https://www.cnblogs.com/sovagxa/p/7527496.html
3启动putty
输入树莓派的ip(可在远程桌面通过ifconfig或者路由器查看)
输入账号密码登陆。
4.putt自启动
编辑启动文件
sudo nano /etc/rc.local
添加
sudo /etc/init.d/ssh start
Ctrl+x保存 退出
3.树莓派.安装ros和mavros
由于树莓派的源国内支持的参差不齐,不建议换源,起码阿里巴巴的源不行。
接下来的操作和pc的一致
3.3.1.系统更新
sudo apt update
sudo apt full-upgrade
3.2.安装ros
根据官网的步骤安装
1.添加源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2.验证密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
3.更新软件包
sudo apt-get update
4.安装ros(因为树莓派性能较弱,所以安装ros-kinetic-ros-base)
sudo apt-get install ros-kinetic-ros-base
5.初始化 rosdep
sudo rosdep init
rosdep update
6.环境设置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
source /opt/ros/kinetic/setup.bash
7.安装依赖包
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
8.验证安装结果
roscore
安装完毕
具体安装过程详见官网:http://wiki.ros.org/kinetic/Installation/Ubuntu
9.mavros安装
源码安装有点问题,估计是系统编译环境不全,直接apt安装
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod +x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
来自 https://github.com/mavlink/mavros/blob/master/mavros/README.md#installation
4.树莓派.与飞控运行
4.4.1.配置串口(pin脚的串口比较麻烦,默认给了蓝牙了)
进入树莓派串口配置:
sudo raspi-config
选择接口配置
配置串口
关闭shell
打开串口
结束后重启
其次,编辑文档 /boot/config.txt,命令如下:
sudo nano /boot/config.txt
在文档的末尾,添加语句:
dtoverlay=pi3-miniuart-bt
接着,我们编辑文档 /boot/cmdline.txt,命令如下:
sudo nano /boot/cmdline.txt
将文档内容用以下内容完全替换(具体操作时是删除原文档中多余的语句):
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
添加用户组:
sudo gpasswd --add user_name dialout
(否则没有使用串口的权限)
sudo gpasswd --add pi dialout
sudo apt-get update
sudo apt-get upgrade
sudo reboot
完成以上步骤后,我们现在可以通过"ttyAMA0"与外部设备进行连接了。
来自 http://blog.csdn.net/berryfish/article/details/60147631
4.2.编辑启动文件
sudo nano /opt/ros/kinetic/share/mavros/launch/px4.launch
将默认的端口改为
ttyAMA0:57600
default="/dev/ttyAMA0:57600" />
4.3.按照之前仿真的说明,生成ros的节点,配置好相关信息。启动也
是一样的
参考创建workspace
4.4.文件传输
使用FIleZilla软件进行传输,比较方便,sftp://ip即可
4.5.编译
source devel/setup.bash
4.6.启动验证
roslaunch mavros px4.launch
这个是有串口配置问题,默认串口被蓝牙用了(按照1进行修改)
这个是正常的:
另一个窗口
cd amov_ros/
source devel/setup.bash
rosrun demo demo_node
地面站上飞行模式已经变为offbord模式
具体ros和飞控的代码,google上面有很多,有控制姿态的,有控制位置的。参考这个:
https://404warehouse.net/2015/12/20/autopilot-offboard-control-using-mavros-package-on-ros/