地平线旭日X3派试用 | ssh密钥登陆 蓝牙手柄连入ros

描述

1.ssh密钥登陆

ssh登陆开发作为必修课,默认密码登陆不安全又得每次输密码,有点不雅,改之。在windows上使用的是Fluent Terminal(个人使用习惯)。

1.1 因为经常使用macbook,所以先设置增加mac登陆密钥

先用密码ssh登陆x3派:

ssh-keygen

一路回车就行,想增加安全性可以设置带密码的密钥。

cd .ssh cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys chmod 700 ~/.ssh

接下来的操作是需要找到mac的密钥,我mac用的是ssh_ed25519,在mac命令行中输入:

vim ~/.ssh/id_ed25519.pub

把这里的内容复制,在登陆到x3派的命令行中:

vim ~/.ssh/authorized_keys

按i开启编辑,调整光标到末尾然后回车换行,粘贴后按ESC,然后再按冒号后输入wq回车。关闭登陆,再登陆就不需要密码了。

1.2 window下面的密钥如何处理见传送门

1.3 既然能密钥自动登陆了,那就可以关闭ssh密码登陆了,即舒服又安全,坏处就是设好密钥的电脑坏了就bbq了

sudo su vim /etc/ssh/sshd_config

按图把yes位置改成no即可:

嵌入式

2.USB/蓝牙手柄连入ros

2.1 usb手柄接ubuntu并且连入ros是很容易的,手头拿的是古老的北通阿修罗usb手柄,usb一接入无需驱动,命令行 ls /dev/input 就出现js0的标识

嵌入式

2.2 蓝牙手柄用的是飞智黑武士X8 pro,自带了一个蓝牙适配器(切换成Xbox模式)

如何进一步验证手柄功能呢?ubuntu上面有个非常好的小软件:

sudo apt install jstest-gtk jstest-gtk

如上执行后就会出现一个验证手柄的界面,选中手柄就可以查看具体的操作反应:

嵌入式嵌入式

2.3 ROS2案例

2.3.1 先测试ros操作,我实验的版本是ros2 foxy

开第一个终端:

ros2 launch teleop_twist_joy teleop-launch.py joy_config:='js0'


 

嵌入式

开第二个终端:

ros2 topic echo /joy

现在对手柄操作会直接改变rostopic的值。

嵌入式

2.3.2 ros2 小乌龟

上面如此顺利,那小乌龟还难吗?哦 ,不,上面是在intel处理器macbook运行的完整桌面版ubuntu设备下做的实验。下面才是我们的主角地平线X3派。

嵌入式

终端输入dmesg查看下,全版本的Ubuntu如下:

嵌入式

而地平线X3派的精简版ubuntu是:

嵌入式

如上可以发现鼠标的输入是可以识别,但是手柄的输入就没有识别。

经过一晚上的努力,确认了系统内核里面uinput和 joydev这两个模块被精简了。在/dev/input/目录下找不到js0,但是lsusb识别出了xbox360 controller。在不新编译内核情况下,是不是没有办法用游戏手柄?

将这个问题提问到群里得到了快速而果断的否定,但是给了提供编译内核的预期。

嵌入式

试了试,竟然一个纯python写的代码跑通了,如下:

git clone https://github.com/FRC4564/Xbox.git cd Xbox/ sudo python3 sample.py

嵌入式

原作者:frankzhen
原链接:本文转自地平线开发者社区

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分