资讯详情

ubuntu18+jetson nano +px4+ros ——>QGC+ubuntu20+ros(关于仿真和实物运行的持续记录心得)

写在前面:

(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

若原本就是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试着重启电脑或重新烧录固件<diconnect 也可以烧录固件的>):如果还是解不了,可以连接地面站看看有什么错误。

如果报错mag#0 fail uncalibrated :说明传感器校准错误,可以重新校准。有四个校准选项,分别是accel、gyro、mag、level、airspeed(加速计、陀螺仪、磁罗盘、水平仪和空速计)。

解锁时记得打开安全开关

完成后可以装桨测试,下面还是要拿桨。

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"进行修改。

<launch>  <!-- vim: set ft=xml noet : -->  <!-- example launch script for PX4 based FCU's -->   <arg name="fcu_url" default="/dev/ttyTHS1:921600" />  <arg name="gcs_url" default="udp://@192.168.0.108:14550" /> <!--QGC-->	<arg name="tgt_system" default="1" />
	<arg name="tgt_component" default="1" />
	<arg name="log_output" default="screen" />
	<arg name="fcu_protocol" default="v2.0" />
	<arg name="respawn_mavros" default="false" />

	<include file="$(find mavros)/launch/node.launch">
		<arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml" />
		<arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" />

		<arg name="fcu_url" value="$(arg fcu_url)" />
		<arg name="gcs_url" value="$(arg gcs_url)" />
		<arg name="tgt_system" value="$(arg tgt_system)" />
		<arg name="tgt_component" value="$(arg tgt_component)" />
		<arg name="log_output" value="$(arg log_output)" />
		<arg name="fcu_protocol" value="$(arg fcu_protocol)" />
		<arg name="respawn_mavros" default="$(arg respawn_mavros)" />
	</include>
</launch>

(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

标签: 8px连接器cn

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台