Jeston 与 PX4(一)

2 篇文章 1 订阅
2 篇文章 0 订阅

Jeston与ROS

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


前言

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打开的窗口才可以控制

总结

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用Python编程语言中的GPIO库来获取Jetson Nano上引脚的电平。首先,您需要将引脚设置为输入模式,然后读取引脚的电平。以下是示例代码: ```python import Jetson.GPIO as GPIO # 设置GPIO模式 GPIO.setmode(GPIO.BOARD) # 设置引脚为输入模式 GPIO.setup(pin_number, GPIO.IN) # 读取引脚的电平 pin_value = GPIO.input(pin_number) ``` 在上面的代码中,`pin_number`是您要读取电平的引脚的编号。`GPIO.setup()`函数将引脚设置为输入模式,`GPIO.input()`函数将返回引脚的电平值(0或1)。 ### 回答2: 要获取Jetson Nano上的一个引脚的电平,你可以按照以下步骤进行: 1. 找到你想要读取电平的引脚的引脚编号。你可以参考Jetson Nano的引脚图或者开发板的文档来确定引脚编号。 2. 在代码中引入适当的库,例如RPi.GPIO库,这是一个用于与Jetson Nano引脚进行交互的Python库。 3. 使用库中的函数来初始化引脚模式。通常,你需要将引脚设置为输入模式。例如,使用RPi.GPIO库,可以使用`GPIO.setup(pin, GPIO.IN)`函数将引脚设置为输入模式。 4. 使用适当的函数来读取引脚的电平。使用RPi.GPIO库,你可以使用`GPIO.input(pin)`函数来读取引脚的电平。该函数将返回一个整数值,表示引脚的电平状态,通常是0或1。 5. 根据需要处理或使用读取到的引脚电平。你可以根据引脚电平的值来进行不同的操作或决策。 需要注意的是,正确读取引脚电平的具体步骤可能因你所使用的库或使用的操作系统而有所不同。因此,在编写代码之前,最好参考所使用库的文档和示例,以确保正确读取引脚电平。 ### 回答3: Jetson Nano是一款基于NVIDIA GPU的开发板,用于边缘智能计算和人工智能应用。它没有直接提供GPIO(通用输入输出)引脚,但可以通过扩展板来实现对引脚电平的获取。 要获取一个引脚的电平,可以通过连接一个支持GPIO操作的扩展板,例如Jetson GPIO扩展板。然后,在开发板上安装相应的库或驱动程序,以便通过编程语言(如Python)对引脚进行操作。 使用Jetson GPIO扩展板,可以通过以下步骤来获取一个引脚的电平: 1. 确保Jetson Nano与GPIO扩展板正确连接。 2. 在Jetson Nano上安装Jetson GPIO库或驱动程序。可以从官方网站或第三方资源中获取相应的软件包。 3. 编写程序来读取引脚的状态。使用GPIO库提供的函数,可以设置引脚模式和读取引脚状态。例如,可以设置引脚为输入模式,并通过读取引脚的状态判断其电平高低。 4. 运行程序并观察输出结果。根据引脚状态的变化,可以判断引脚的电平。 需要注意的是,不同的GPIO扩展板可能使用不同的引脚编号和编程接口。因此,在编写程序时,需要根据具体的扩展板规格和文档进行相应的设置和调整。 总结而言,要在Jetson Nano上获取一个引脚的电平,需要使用适用于该扩展板的GPIO库或驱动程序,并通过编写程序来读取引脚状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值