Jeston 与 PX4(一)

2023-05-16

Jeston与ROS

大二下半学期开始接触四旋翼无人机,主要在实验室学习飞控,针对bibi飞控的二次开发,与实验室其余成员参加了大大小小的无人机比赛,包括令人崩溃的电赛,虽然没有取得较好的成绩,但却学到了很多。鉴于bibi飞控的种种,我希望能在假期学习PX4飞控,为实验室之后的发展增加一个选择。

文章目录

  • Jeston与ROS
  • 前言
  • 一、Jeston Nano
  • 二、Jeston系统安装
    • 1、与所有开发板的安装一样,你需要先将系统镜像文件下载下来
    • 2、接下来对镜像文件进行烧录
    • 3、启动Jeston(有屏幕)
    • 4、启动Jeston(无屏幕)
  • 三、ROS
    • 1、ROS简介
    • 2、ROS的安装
  • 总结


前言

PX4飞控 Jeston Nano 4GB作为机载电脑

一、Jeston Nano

这是Jeston Nano的官网地址
Jetson Nano是Nvidia在TX2和Xavier获得成功后推出的低配版GPU运算平台。Nano最大的特色就是包含了一块128核Maxwell架构的GPU,虽然已经是几代前的架构,不过因为用于嵌入式设备,从功耗、体积、价格上也算一个平衡。Nano的计算能力不高,勉强可以使用一些小规模、并且优化过的网络进行推理,训练的话还是不够用的。4GB的内存并不能完全使用,因为其中有一部分(1GB左右)是和显存共享的。Jetson Nano的最大优势还是在体积上,它采用核心板可拆的设计,核心板的大小只有70 x 45 mm,可以很方便的集成在各种嵌入式应用中。同时它的功耗也非常低,有两种模式:
在这里插入图片描述
我这里使用的是4GB,并且没有使用官配的网卡,用的是一个usb无线网卡,再上网速度上并无明显差别,也比较方便

二、Jeston系统安装

1、与所有开发板的安装一样,你需要先将系统镜像文件下载下来

https://developer.nvidia.cn/embedded/learn/get-started-jetson-nano-devkit#write
官网给了镜像文件,中文的安装详细教程,要注意的是下载的系统要配套开发板,SD卡也需要32G及以上,而且下载速度也会比较慢,大家可以去找一些网盘文件进行下载

2、接下来对镜像文件进行烧录

Jetson Nano Ubuntu烧录工具下载链接:https://www.balena.io/etcher/
烧录前可能需要对SD卡进行格式化SDFormatter
在这里插入图片描述
进行烧写
在这里插入图片描述
具体的操作都很简单,烧录完成后,将读卡器弹出即可(刚烧录完可能有点热)

3、启动Jeston(有屏幕)

将烧有系统的SD卡插入Jeston Nano的卡槽内,启动电源,电源灯绿色则表示系统启动正常。
这里说明一下电源连接的问题,如果你使用的是micro-USB口来供电的话,开发板上的电源跳线帽不需要连接,如果是直流桶式插座供电,需要使用跳线帽将上面的两个针脚连接起来
启动系统后,如果你选择外接屏幕,那么按照屏幕给出的提示完成操作即可。需要注意的是,Nano的屏幕需要HDMI输出,最好选择双口HDMI线,但如果你的屏幕接口是VGA输入的话,买一个HDMI-VGA转接头也是可以的,但购买的时候需要买好一点的,太过便宜的头在4GB的开发板上可能无法使用(别问,问就是经历过,崩溃了好久才找到原因)

4、启动Jeston(无屏幕)

首先讲一讲有屏幕和无屏幕的区别:没有屏幕的话,是PC与Nano连接在同一网络,通过ssh连接,并安装VNC或使用windows自带程序来进行远程桌面连接。这样的方式在桌面GUI操作上会有一些延迟,但对于命令行操作无明显影响,相比来说,有屏幕的操作会略显简单流畅。远程桌面的好处就是代码可以直接复制粘贴,且方便携带

我这里使用的是无屏幕操作,
1、因为没有屏幕,在首次启动不好连接wifi,所以我使用网线连接路由器与Nano
2、Jeston定制的Ubuntu系统有默认开启ssh,所以直接再PC端下载putty即可连接(或者使用xshell),连接需要同一网络下的NanoIP,
3、可以使用软件Wireless Network Watcher来查看IP;或者使用cmd中指令:arp -a来查看,IP指令的辨别
在这里插入图片描述
在这里插入图片描述
4、然后利用putty在Jeston上安装vino服务,这里的教程比较多,我主要说一一下我遇到的问题:第一次安装后成功运行,之后再次开机后就无法连接VNC了,
在这里插入图片描述
终端会这样显示,在网上找了好多办法也没能解决,VNC那里也一直显示拒绝连接,我就用Windows的远程连接(cmd:mstsc)上去了(这个只要putty连接成功,就没出现过问题,相比VNC会慢一点),发现是设置里拒接了屏幕分享
在这里插入图片描述
开启后就可以VNC连接了,这里应该我没有玩明白VNC;我是每次重新开机都无法连接VNC,连接了Windows远程屏幕连接后,VNC可以正常打开
5、远程连接完成后就可以和有屏幕一样操作了

三、ROS

1、ROS简介

ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。它包含了大量工具软件、库代码和约定协议,旨在简化跨机器人平台创建复杂、鲁棒的机器人行为这一过程的难度与复杂度。
ROS简介
ROS简介
ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体

2、ROS的安装

1、添加ROS源

sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

我这里使用的是国内源
2、添加密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、更换完源要更新一下包列表

sudo apt update

4、安装ROS

sudo apt install ros-melodic-desktop-full完整桌面版
sudo apt install ros-melodic-desktop

大家任选一个安装就可以,大概需要5分钟左右
5、配置一些环境

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6、安装依赖包

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

7、初始化

sudo rosdep init
rosdep update

这里的问题比较多,我详细讲一下
sudo rosdep init首先你需要这句命令来从GitHub上下载几个文件,但是需要翻墙,网上大概有这杨几种方法:
1)修改host文件:有的人成功了,有的人失败了,我反正是一直没有成功过
2)将直接下载到本地,跳过init的步骤:这里的操作比较复杂,需要有耐心
3)翻墙:这个方法我既不推荐也不反对
4)使用rosdepc:树莓派的博客里我是用的第二种方法,Jeston这里我采用这种方式。rosdepc是一位大佬更新的rosdep国内版,据他本人所言,只是修改了地址,具体会出现什么问题,我先用着看,下面是安装方法,比较简单

https://zhuanlan.zhihu.com/p/398754989

安装完成后,即可初始化并更新完成
8、开启roedep
这里需要再一次配置环境,直接再次使用上面的环境配置命令即可
然后

roscore

即可
在这里插入图片描述
这里就表示开启成功
但是这里可能会出现如图的问题
在这里插入图片描述
应该是环境变量配置错误导致,具体的解决方法是:

gedit ~/.bashrc

对环境配置文件进行编辑
修改或添加:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

一般是需要添加的,直接添加在最后就可以了,保存退出后再此运行roscore即可成功
9、至此已经安装完成,接下来就是庆祝一下跑个大家都会跑的小乌龟
再打开依次两个终端,并分别执行
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
运行成功后,共有三个终端窗口,一个显示窗口,通过上下左右即可控制小乌龟,需要注意必须选中rosrun turtlesim turtle_teleop_key打开的窗口才可以控制

总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jeston 与 PX4(一) 的相关文章

  • ardupilot & px4 书写自己的app & drivers (二)

    新建任务列表任务 打印时间 任务列表 const AP Scheduler span class hljs tag Task span Copter span class hljs tag scheduler tasks span span
  • pixhawk: px4代码初学分析:追溯电机控制--pwm输出

    追溯电机控制 pwm输出 正常工作状态下pwm输出过程简述 xff1a 其他状态下pwm输出 xff1a 正常工作状态下pwm输出过程简述 xff1a 姿态解算部分得出姿态控制量通过px4io cpp把姿态控制量发送给IOIO串口读取姿态控
  • 编译PX4固件

    PX4编译 文章目录 PX4编译疑难杂症bug1bug2catkin build isolated 官方脚本Step1Step2 安装常用依赖Step3 创建并运行脚本Step4 补全代码子模块Step5 验证仿真 官方offboard 例
  • PX4位置控制offboard模式说明

    offboard模式的开发及应用 一 px4固件的模式 px4固件支持10几种飞行模式 xff0c 从代码结构上分析 xff0c 分为基本模式 自定义模式和自定义子模式 1 基本模式 基本模式又分为 xff0c 位置控制模式 自稳模式 手动
  • 飞行机器人(七)仿真平台XTDrone + PX4编译

    0 编译PX4固件 参考仿真平台基础配置教程 xff08 中文详细教程 xff09 仿真平台基础配置 语雀 yuque com https www yuque com xtdrone manual cn basic config 按照教程
  • Ubuntu20.04+MAVROS+PX4+Gazebo保姆级安装教程

    Ubuntu20 04 43 MAVROS 43 PX4 43 Gazebo 安装PX4步骤安装MAVROS安装QGCPX4仿真 安装PX4步骤 从github上clone源码 span class token function git s
  • 基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控

    前言 穿越机F4 F7 H7飞控是一系列采用stm32系列F4xx和F7xx处理器的飞控的统称 xff0c 是目前穿越机爱好者非常喜欢使用的飞控硬件 xff0c 其价格也非常便宜180 xff5e 410 而px4则是一款常见的开源飞控固件
  • PX4模块设计之四:MAVLink简介

    PX4模块设计之四 xff1a MAVLink简介 1 MAVLink PX4 应用简介2 MAVLink v2 0新特性3 MAVLink协议版本4 MAVLink通信协议帧4 1 MAVLink v1 0 帧格式4 2 MAVLink
  • PX4模块设计之五:自定义MAVLink消息

    PX4模块设计之五 xff1a 自定义MAVLink消息 1 MAVLink Dialects1 1 PX4 Dialects1 2 Paprazzi Dialects1 3 MAVLink XML File Format 2 添加自定义M
  • PX4模块设计之六:PX4-Fast RTPS(DDS)简介

    64 TOC PX4模块设计之六 xff1a PX4 Fast RTPS DDS 简介 基于PX4开源软件框架简明简介的框架设计 xff0c 逐步分析内部模块功能设计 PX4 Fast RTPS DDS 具有实时发布 订阅uORB消息接口
  • PX4模块设计之十七:ModuleBase模块

    PX4模块设计之十七 xff1a ModuleBase模块 1 ModuleBase模块介绍2 ModuleBase类介绍3 ModuleBase类功能介绍3 1 模块入口3 2 模块启动3 3 模块停止3 4 状态查询3 5 任务回调3
  • PX4模块设计之二十一:uORB消息管理模块

    PX4模块设计之二十一 xff1a uORB消息管理模块 1 uORB模块构建模式2 uORB消息管理函数2 1 状态查询2 2 资源利用2 3 模块启动2 4 模块停止3 uORB消息接口3 1 消息主题注册3 2 消息主题去注册3 3
  • PX4模块设计之三十一:ManualControl模块

    PX4模块设计之三十一 xff1a ManualControl模块 1 ManualControl模块简介2 模块入口函数2 1 主入口manual control main2 2 自定义子命令custom command 3 Manual
  • PX4模块设计之三十九:Commander模块

    PX4模块设计之三十九 xff1a Commander模块 1 Commander模块简介2 模块入口函数2 1 主入口commander main2 2 自定义子命令custom command 3 Commander模块重要函数3 1
  • PX4模块设计之四十三:icm20689模块

    PX4模块设计之四十三 xff1a icm20689模块 1 icm20689模块简介2 模块入口函数2 1 主入口icm20689 main2 2 自定义子命令custom command2 3 模块状态print status 重载 3
  • PX4模块设计之四十五:param模块

    PX4模块设计之四十五 xff1a param模块 1 param模块简介2 模块入口函数param main3 重要函数列表4 总结5 参考资料 1 param模块简介 Description Command to access and
  • 【px4】运行mavsdk中的offboard example

    运行MAVSDK中的offboard例子时无人机不执行 想控制无人机前后左右移动 xff0c 在按照官方教程实现offboard 插件的时候 发现用action插件能正常起飞和降落 但是一旦执行到offboard的插件代码的时候就会自动降落
  • Jeston XAVIER NX 使用sudo apt-get install 安装ros过程中出现以下问题

    the following packages have unmet dependencies ros noetic desktop full Depends ros noetic desktop but it is not going to
  • pixhawk px4 commander.cpp

    对于复杂的函数 xff0c 要做的就是看函数的输入是什么 来自哪里 xff0c 经过处理后得到什么 给谁用 xff0c 这样就可以把程序逻辑理清 中间的分析就是看函数如何处理的 span class hljs keyword extern
  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 很久没有进行系统的总结了 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 如内容有错误 欢迎指出 1 飞控软件的基本模块 无人机能够飞行主要是依靠传感

随机推荐

  • 关于结构体对齐

    首先我们先了解一下各数据类型所占的字节数 x64系统 xff08 64位 xff09 x86系统 xff08 32位 xff09 在这里有一个很有意思的点 xff0c 我使用VS在x86与x64系统下运行出来的long类型所占据的空间都是4
  • 安装docker报出的错误及解决方案

    1 错误一 xff1a 解决方案 xff1a yum erase podman buildan yum install y docker ce allowerasing 重启服务 systemtl restart docker yum源的安
  • make、makefile的使用解释(Linux项目自动化构建工具)

    本文所使用系统为Linux centos 7 makefile是一个文件 里面包含了 xff1a 1 文件与文件的依赖关系 2 文件与文件的依赖方法 为什么需要包含文件与文件的依赖方法和依赖方法呢 xff1f 一个工程中的源文件不计数 xf
  • elementUI中neditor第一次加载无法正常赋值的解决方法

    1 lt neditor v if 61 34 neditorLoad 34 v model 61 34 formFields content 34 class 61 34 wd editor 34 gt 加上v if 61 34 nedi
  • Gazebo仿真中光源的设置

    目录 写在前面官方文档链接point类型directional类型spot类型 写在前面 最近研究在Gazebo中仿真px4 xff0c 使用Apriltag ros包对Apriltag二维码检测的时候发现光源对检测影响非常大 xff0c
  • 使用Java操作Hbase

    目录 修改hosts文件 导入jar包 配置hbase信息 xff0c 连接hbase数据库 创建表 删除表 获取namespace 获取tables 添加数据 查询表中的数据 查询表中所有数据 关闭流 修改hosts文件 位置 xff1a
  • CAN协议国际标准化协议部分总结(一)

    前言 xff1a 本文主要是对CAN协议中ISO11898做一个简短的总结 ISO11898 ISO11519 ISO15765 CAN协议在OSI模型中包含三层 xff0c 物理层 数据链路层和传输层 各层中CAN定义内容可参考下图 其协
  • STM32 串口 DMA 数据读取(详细代码)

    最近重新开始学32 xff0c 搞到串口 DMA 的时候 xff0c 数据读取卡了很长一段时间 xff0c 最终 xff0c 功夫不负有心人终于搞出来了 在此以记录一下 xff0c 方便以后查询使用 在调试的过程中也遇到了很多bug xff
  • 在阿里云购买Linux服务器,配置宝塔环境,全图文,最最详细图解,保姆级教学

    在阿里云购买Linux服务器 xff08 CentOs 7 xff09 xff0c 配置宝塔环境 一 在阿里云购买CentOs服务器 Linux系统 CentOS是免费的 开源的 可以重新分发的开源操作系统 xff0c CentOS xff
  • (Linux)FreeRTOS(任务)

    任务调度器 调度器就是使用相关的调度算法来决定当前需要执行的任务 xff0c 调度器总是在所有处于就绪列表的任务中 xff0c 选择具有最高优先级的任务来执行 抢占式调度 xff1a 主要是针对优先级不同的任务 xff0c 每个任务都有一个
  • 制作一个串口助手 | python + pyqt5

    目录 一 背景 1 1 开发流程图 二 前提 2 1 关于环境 2 2 关于源码 三 步骤 3 1 使用pyqt创建一个 ui界面并生成 py文件 3 2 创建两个 py文件 xff0c 一个用来继承ui界面生成的 py类 xff0c 一个
  • FreeRTOS任务调度与任务切换 | FreeRTOS八

    目录 说明 xff1a 一 任务调度器 1 1 开启任务调度器函数 1 2 任务调度器实现步骤 1 3 xPortStartScheduler 函数 二 启动一个任务 2 1 prvStartFirstTask 函数 2 2 vPortSV
  • 单片机原理简介

    提出问题 xff1a 什么是单片机 xff1f 类似于一台性能相对较弱的微型电脑 xff0c 具有完整的计算机结构和片内外设 xff08 例如串口 xff0c I2C xff0c ADC等硬件 xff09 xff0c 将他们集成封装在一颗芯
  • composer安装第三方库

    用法 xff1a 在thinkphp根目录下执行 composer require wechatpay wechatpay 1 4
  • STM32F407ZGT6控制ESP8266与OV2640下的百度智能图片识别

    前言 xff1a STM32F407ZGT6控制OV2640下采集到JPG图片格式的二进制数据 xff0c 然后对二进制数据进行BASE64编码 xff0c 接着通过串口将数据传输给ESP8266并上传至训练好的EASYDL的AI算法识别平
  • 力扣数组算法(c++)(代码随想录数组部分)

    文章一部分内容和图片引用代码随想录和力扣官方题解 数组 C 43 43 考察数组的题目一般在思维上都不难 xff0c 主要是考察对代码的掌控能力 数组是存放在连续内存空间上的相同类型数据的集合 数组可以方便的通过下标索引的方式获取到下标下对
  • cv_bridge用于ROS图像和OpenCV图像的转换

    一 背景 ROS对于传感器数据有自己的格式和规范 而在OpenCV中 xff0c 图像是以Mat矩阵的形式存储的 xff0c 这与ROS定义的图像消息的格式有一定的区别 xff0c 所以我们需要利用cv bridge将这两种不相同的格式联系
  • ROS通信机制——python实现

    一 普通话题通信 1 创建发布者 注意 xff1a 不要在开头添加注释 xff0c 下面代码第一行是指定编译器 xff0c 第二行是防止因为代码中的中文注释而出现乱码 usr bin env python coding utf 8 导包 i
  • 树莓派4B安装Ubuntu20.04与ROS

    树莓派4B搭建Ubuntu20 04与ROS 文章目录 树莓派4B搭建Ubuntu20 04与ROS 前言一 安装Ubuntu20 041 下载Ubuntu20 04LTS server2 将镜像文件用Win32DiskImager烧录进S
  • Jeston 与 PX4(一)

    Jeston与ROS 大二下半学期开始接触四旋翼无人机 xff0c 主要在实验室学习飞控 xff0c 针对bibi飞控的二次开发 xff0c 与实验室其余成员参加了大大小小的无人机比赛 xff0c 包括令人崩溃的电赛 xff0c 虽然没有取