Jetson Agx Xavier 手柄使用(xbox joystick ubuntu python)
Posted shiyueyueya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jetson Agx Xavier 手柄使用(xbox joystick ubuntu python)相关的知识,希望对你有一定的参考价值。
0、无线的手柄,打算先做个遥控的功能,方便后期连接线控底盘
淘宝亚博智能旗舰店,价格89,官方提供ROS和jupyter的代码,技术客服不提供python脚本,需要自己去写,先用自己的虚拟机ubuntu做了一边测试。
1、测试
直接访问Gamepad Tester,插上接收器,按一下图中start开关,连接成功后即可看到数据,记一下自己需要的按键和摇杆对应的名字 。摇杆是axis,按键是b。
2、通过pygame.joystick进行读取
官方提供了ROS和jupyder交互式的页面(import ipywidgets.widgets as widgets),但是没有python脚本,这里采用pygame.joystick进行开发。
首先安装pygame,没有pip3的需要先安装pip3
pip3 install pygame
也可以安装joystick先测试下
sudo apt-get install joystick
终端通过joystick测试手柄
sudo jstest /dev/input/js0
通过py脚本进行读取
import pygame
import time
pygame.init()
joystick = pygame.joystick.Joystick(0)
joystick.init()
key=joystick.get_init()
print('ready____________________________')
print(key)
name = joystick.get_name()
print('name____________________________')
print(name)
axes = joystick.get_numaxes()
print('axes________________________')
print(axes)
buttons = joystick.get_numbuttons() #获得 Joystick 上按钮的数量
print('buttons_______________________')
print(buttons)
while 1:
for event_ in pygame.event.get():
if event_.type == pygame.JOYBUTTONDOWN or event_.type == pygame.JOYBUTTONUP:
if joystick.get_button(0)==1:
print('A')
if joystick.get_button(1)==1:
print('B')
if joystick.get_button(5)==1:
print('R')
if event_.type == pygame.JOYAXISMOTION:
print(joystick.get_axis(1),joystick.get_axis(3),joystick.get_button(5))
(1)、pygame 初始化 pygame.init()
(2)、创建joystick对象,一般只有一个手柄joystick = pygame.joystick.Joystick(0)
(3)、初始化手柄 joystick.init()
(4)、简单的返回:是否初始化成功、名字、axes数量,按键数量
(5)、循环。判断事件 按下或者摇杆移动 通过get方法获取值
3、后期填坑
1、这个必须移动才能返回数据、或者按键触发
2、通过遥感数据控制小车方向和速度
3、断线识别问题
Jetson AGX Xavier 刷机指南
一、刷机准备
在刷机之前,需要准备一台装有Ubuntu系统的宿主电脑。将 Xavier 连接电源,先不开机,通过自带的一根Type-C转USB转数据线,将Xavier与宿主电脑连接起来即可。
宿主电脑需要联网,且网络稳定,这对于刷机也很重要。Jetson Xavier 设备可提前连上显示器,方便刷机过程中查看状态。
在刷机之前,需要选择合适的系统镜像版本。比如我的工程,需要安装opencv4和Cuda10.2,所以我选择安装JetPack4.5版本,这样我在刷机之后就不需要再更换软件版本了。
二、JetPack4.5刷机过程
1、下载JetPack SDK
去英伟达官网下载,下载之后会得到一个类似sdkmanager_xxx_amd64.deb的文件。
JetPack SDK 官方下载地址:https://developer.nvidia.com/embedded/jetpack
2、安装JetPack SDK
sudo apt install ./sdkmanager_xxx_amd64.deb
安装过程中,所有需要选择的都选择Yes或者按Enter键。
3、打开 sdkmanager
在桌面打开一个新的终端,输入:
sdkmanager
点Enter键,这时会进入JetPack SDK,系统会提示你登陆nvidia账号。没有nvidia账号,需要自己注册一个。
等待进度条拉满即可。如果长时间进度条不变,检查网络是否稳定。
4、JetPack下载与安装
如下图所示,选择你要刷机的设备Xavier,和合适的系统版本JetPack4.5,然后点击continue。
之后,我们就可以查看即将安装的各个软件包的版本信息:
比如,我即将安装的JetPack4.5的主要软件包版本如下:
- Cuda=10.2
- Cudnn=8.0
- TensorRT=7.1
- OpenCV=4.4.1
一般使用默认地址即可,选择 I accept,然后点击Continue,于是开始了JetPack的下载与安装:
5、正式刷机
等待快完成下载时,宿主电脑会弹出如下页面:
这时需要我们选择手动模式(Manual Setup),并手动使 Jetson Xavier 进入 Recovery 模式,步骤如下:
- 使用Type-C转USB数据线将 Xavier 与宿主电脑连接
- 将 Xavier 插上电源,并处于关机状态
- 点击Flash,准备刷机
- 按下并保持 Xavier 上的【Recovery】键(中间的键)
- 按下并保持【Power】键(最左边的键),持续1s,然后同时松开这两个键,进入刷机模式。
6、在 Xavier 设备上安装 SDK 组件
当刷机到一半时,Xavier会自动开机,宿主电脑系统会跳出如下页面:
这时候需要按照步骤,依次完成:
- 在Xavier上完成系统的初始化设置,并重新进入、登入系统(记住设置的用户名和密码)
- 输入Xavier系统上的用户名和密码,并点击Install,继续开始刷机
在此过程中,系统可能会提示安装包安装时间过长等信息。选择继续安装即可,直到安装完成!
三、安装Cudnn
将cudnn.h和库文件移动到相应的文件下:
sudo cp /usr/include/cudnn.h /usr/local/cuda/include/
sudo cp /usr/local/cuda10.2/lib64/lib* /usr/local/cuda/lib64/
四、开启高性能模式
查看当前的工作模式:
sudo nvpmodel --query
开启高性能模式:
sudo nvpmodel -m 0
五、打开风扇
设置风扇转速为150:
sudo sh -c "echo 150 > /sys/devices/pwm-fan/target_pwm"
六、上电自启
使用一个跳线帽把5号pin脚和6号pin脚连接即可
位置如下图标识所示:
七、设置开机自启动
如果你需要打开 Jetson Xavier 的时候,自动执行相关程序,可设置自启动程序:
- 先新建一个自启动文件start.sh,文件中写好脚本,放在home目录下,开机时直接执行该脚本。
- 然后在刷好的ubuntu系统中搜索“startup application”,选择添加脚本路径,比如gnome-terminal -x /home/start.sh,点击保存。
- 进入系统设置,设置开机免密,使其能直接进入系统,不需要输入密码。
相关文章
TX2刷机与相关软件安装:https://blog.csdn.net/wjinjie/article/details/111587720
以上是关于Jetson Agx Xavier 手柄使用(xbox joystick ubuntu python)的主要内容,如果未能解决你的问题,请参考以下文章
NVIDIA Jetson AGX Xavier YOLOv5应用与部署
Jetson AGX Xavier JetPack 4.2环境配置