ubuntu18+jetson nano +px4+ros ——>QGC+ubuntu20+ros(关于仿真和实物运行的持续记录心得)
时间:2022-11-23 15:00:01
持续更新...
写在前面:
(1)如果存在rosdep问题参考Ubuntu20.04ROS rosdep update超时失败解决方案_npu2018302257的博客-CSDN博客
(2)如果有一些github.com或者是raw.githubusercontent.com在这个网页上搜索和使用其他似乎是网络的问题xxx.xxx.xxx.xxxgithub.com的格式写入 sudo gedit /etc/hosts
sudo /etc/init.d/networking restart
多个地点Ping网站测速服务器 - 站长工具
(3)如果git clone 的时候出现failed以此类推dns:sudo gedit /etc/resolv.conf
改为以下,再刷新dns服务
nameserver 8.8.8.8
nameserver 114.114.114.114
(4)提前配置静态ip,后续可以摆脱ip动态分配带来的不便
一、模拟环境
my QGC env:双系统下的ubuntu20 ros noetic(anaconda也可以装一个)
(巨人的肩膀):PX4 User Guide
XTDrone使用文档 · 语雀
1. 安装QGC
QGC - QGroundControl - Drone Control
2.模拟步骤,也参考:
【无人机】PX4,ROS,Ubuntu20仿真运行_lunei的博客-CSDN博客
整理:
最先安装GeographicLib,时间长了,失败了再试几次!
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh sudo chmod a x ./install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh #这步很慢
# 安装px4 的仿真配置 git clone https://github.com/PX4/Firmware.git git checkout v1.11.3 cd Firmware git submodule update --init --recursive #如果后重复这句话 cd Tools/setup sudo ./ubuntu.sh #pip安装会慢,可编辑文件,在pip 安装那行末尾加 -i # https://pypi.tuna.tsinghua.edu.cn/simple #安装mavros cd sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras sudo apt-get install python3-catkin-tools python3-rosinstall-generator -y rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall rosinstall_generator --upstream-development mavros | tee -a /tmp/mavros.rosinstall mkdir -p ~/catkin_ws/src cd ~/catkin_ws catkin init wstool init src wstool merge -t src /tmp/mavros.rosinstall wstool update -t src -j16 rosdep install --from-paths src --ignore-src -y catkin build source devel/setup.bash #可以写到~/.bashrc 中 #尝试模拟小例子 cd src catkin_create_pkg offboard_pkg roscpp std_msgs geometry_msgs mavros_msgs cd offboard_pkg/src gedit offboard_node.cpp#网上搜索 cd .. gedit CMakeLists.txt #add_executable(offboard_node src/offboard_node.cpp) #target_link_libraries(offboard_node ${catkin_LIBRARIES}) cd ~/catkin_ws catkin build catkin init source devel/setup.bash
cd /Firmware make px4_sitl gazebo_iris
roscore 打开QGroundControl 执行新开终端 roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" #roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.196:14557" rosrun offboard_pkg offboard_node
offboard 测试起飞
二、实物
框架(参考))px4 user guide):从ground station和vehicle来记录:
Ground station:
模拟环境后,建立了基本环境
vehicle
(1)检查固件是否需要重新刷新
若原本就是px4就不需要刷新<跳过这一小段>,我的飞控pixhawk 2.4.8开始刷固件APM,许多px没有四个参数,px4固件在这https://github.com/PX4/PX4-Autopilot/releases/tag/v1.11.0
所以需要重新刷px4固件,不能刷太新,会有问题,步骤参考,入门视频20分钟,使用QGC下载px4.注意固件、校准传感器_哔哩哔哩_bilibili:或加载固件 | PX4 用户自动驾驶指南
点击选择advanced setting最后一项,加载固件(我的是realse版本):px4fmu-v2-1.9.0.px4
烧录后对每一项进行校准,使每一项在烧录后进行校准summury 灯是绿色的。
注意会遇到的错误(在Qgc显示diconnect试着重启电脑或重新烧录固件
如果报错mag#0 fail uncalibrated :说明传感器校准错误,可以重新校准。有四个校准选项,分别是accel、gyro、mag、level、airspeed(加速计、陀螺仪、磁罗盘、水平仪和空速计)。
解锁时记得打开安全开关。
完成后可以装桨测试,下面还是要拿桨。
(2)机载板配置:jetsonnano ,刚开始配置环境的时候连接鼠标键盘,视频对我很有帮助。https://www.youtube.com/watch?v=Brkk0ZmnGgs
连接:按照视频步骤连接pixhawk 2.4.8 的telem2 端口到串口pin8、10、gnd引脚,其中一个接口可以自己焊接。rx连tx,tx连rx ,因为烧录的是共地realense版本,在QGC需要对px4 参数SYS_COMPANION设置为921600,打开telem2串口传输设置。
连接后,修改/dev/ttyTHS1权限,用cat看看有没有乱码过来。,波特率是可以通过usb或修改数传连接地面站。
launch设置:jetsonnano上装的是ubuntu18系统 ros,其中mavros已经安装
在/opt/ros/melodic/share/mavros中的launch中,复制px4.launch中,新建一个mypx4.launch,对"fcu_url"与“gcs_url"进行修改。
测试:(注意,开始测试的时候先不要装桨)
(1)ros主从机设置
参考:ROS主从机配置_月夕花晨KaCa的博客-CSDN博客
一遍成功的ROS主从机详细配置_zhanghm1995的博客-CSDN博客_ros主从机设置
这里的主机指的是:ground station
(2)ground station 启动roscore
ssh连接jeston nano,sudo adduser $USER xxx,并在开放串口的权限,roslaunch启动 mypx4.launch,在电脑端可以发现地面站已经被连接了,若没有连接上查看launch文件的ip地址是否对应,其次检查QGC下的application Setting下的udp link端口设置,rostopic echo /mavros/state 应该可以看到这些,如果看不到,检查master端下从机的hostname和ip。
(务必在gps信号良好的时候)接管切换测试:打开安全开关,解锁,打开offboard 模式(如果没有gps信号地面站会显示拒绝打开,这可能是因为EKF2_GPS_CHECK 参数设置),有错误提示但是能飞。
地面站端电脑,开启键盘控制节点,键盘接管,可以控制后,关闭节点,关闭offboard模式,回到遥控接管,上锁,查看日志有啥问题。
运行过程终端报错:遥控器切换的,但是如果是程序控制的话是没有影响
failsafe enabled: no offboard (PX4 has a number of safety features to protect and recover your vehicle if something goes wrong)
错误整理:OMG,真的有些错误困扰了我很多天或这很多个小时,但是真的一下子就解决了!!!!
1. offboard 模式突然进不去
这时候,我怀疑了很多很多,因为是有提示CMD:Unexpected command 176, result 1
我查了好多,没查到结果,最后我检查了一下发现是网络配置问题。超级注意修改一下/etc/hosts文件,主从机的配置问题!
2.FCU: Preflight Fail: High Accelerometer Bias
不用多查了,直接对Accelerometer重新进行标定
3. imu帧率提高失败
刷了1.9固件之后发现,飞控传回来的imu帧率只有十帧,用mavlink也没有提升上去。
不用多查了,串口参数配置问题,mav_0_config=102,mav_0_mode=0