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 的时候,自动执行相关程序,可设置自启动程序:

  1. 先新建一个自启动文件start.sh,文件中写好脚本,放在home目录下,开机时直接执行该脚本。
  2. 然后在刷好的ubuntu系统中搜索“startup application”,选择添加脚本路径,比如gnome-terminal -x /home/start.sh,点击保存。
  3. 进入系统设置,设置开机免密,使其能直接进入系统,不需要输入密码。

相关文章

TX2刷机与相关软件安装:https://blog.csdn.net/wjinjie/article/details/111587720

以上是关于Jetson Agx Xavier 手柄使用(xbox joystick ubuntu python)的主要内容,如果未能解决你的问题,请参考以下文章

Jetson AGX Xavier 刷机指南

Jetson AGX Xavier 刷机指南

NVIDIA Jetson AGX Xavier YOLOv5应用与部署

Jetson AGX Xavier JetPack 4.2环境配置

Jetson AGX Xavier JetPack 4.2环境配置

Jetson AGX Xavier实现TensorRT加速YOLOv5进行实时检测