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.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
原链接:本文转自地平线开发者社区
全部0条评论
快来发表一下你的评论吧 !