4.1底盘基础功能
4.1.3nmcli命令配置机器人无线网 Xshell中进行(Xshell此软件安装包在3.windows实用软件当中下载)注:如果没有办法使用直接百度上搜索Xshell官网下载最新版本
配置无线网络视频教程首先准备一台路由器和网线 如下图所示连接小车(注:路由器可以没有互联网)
连上小车后需等待2-3分钟小车系统启动后才能查找到小车IP地址(如果长时间没看到IP地址可以刷新一下页面)
以TP-LINK路由器为准打开路由器管理后台查看小车的IP地址(每个路由器管理后台界面不同操作也有所不同)
打开Xshell软件 使用小车IP进行登录
接下来通过nmcli工具配置wifi连接,其中your_ap是需要连接的wifi热点名,your_password是热点密码
Tips:在命令中输入connect后可以使用TAB自动补全工具列出周围的热点
sudo nmcli device wifi connect your_ap password your_password
输入完成后执行,提示”Device 'wlan0' successfully activated with 'd6a46eb9-c0e3-4c60-9f2b-d6f7ee32de02'.“即为连接成功。
查看小车无线IP(查看Wlan0的ip地址)
ifconfig
接着拔掉网线 使用小车无线IP登录Xshell(也可用于登录nomachine)
4.1.4机器人底盘启动和键盘遥控
打开xshell登陆小车,需注意如果机器人在WiFi模式下,必须确保PC和机器人连接在同一个路由器上。如果机器人在AP模式下,必须确保PC连接在机器人的热点上。
通过launch文件启动底盘控制:
roslaunch base_control base_control.launch
正确运行后底盘蜂鸣器会发出一声长响,终端会输出底盘的基本信息
新打开一个终端登陆到机器人,输入rostopic list检查话题列表可以看到目前ros中有如下话题,这里依次介绍一下这些话题都有什么作用。
battery这个话题输出的内容有电池的电压和电流两个重要信息。
/cmd_vel这个话题目前没有发布者,而订阅者是底盘
/odom这个话题是一个里程计,它的发布者是机器人底盘
rostopic echo /odom这个话题输出的主要信息是位置坐标,航向以及线加速度和角加速度
接下来启动一个键盘控制节点
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
在使用键盘遥控时,需要用鼠标选中这个节点所在的终端。根据提示移动机器人可以通过输入对应的字符使其移动。
q/z同时修改线速度和角速度,q增z减。w/x修改线速度,w增x减。e/c修改角速度,e增c减。
在键盘遥控界面输入一个i让机器人前进,再输出odom话题就能看到机器人的位置信息的x轴已经发生了变化。
base_control传入参数启动,这里以使能imu输出为例:
roslaunch base_control base_control.launch pub_imu:=ture
此时再次查看话题列表就会发现多了一个imu话题
以上就是底盘启动和键盘控制的基本操作
4.1.5虚拟机和Ubuntu的使用
1.使用我们提供的虚拟机文件
本节内容介绍虚拟机软件和Ubuntu的使用
虚拟机软件我们使用的是VMware
按照提示一直下一步安装就可以了,详细安装过程见1.2.3节这里不再重复演示
打开软件之后就是这样一个界面,因为我们有提供虚拟机的文件所以我们选择打开虚拟机
虚拟机文件在资料包的PC系统镜像文件夹下的虚拟机文件。这里我们给大家原始提供的是压缩包的形式,因为fat文件系统对单个文件大小的限制,所以我们把文件做了个分割,这里只需要解压第1个第2个会跟着一起解压。
解压完成后从虚拟机中选择这个虚拟机文件后,播放这个虚拟机。之后会弹出一个窗口直接选我已复制该虚拟机即可。
这里虚拟机的配置和软件包功能包都已全部安装完毕,可直接使用。
2.使用自己搭建的ubuntu环境
如果使用自己搭建的ubuntu环境,请按照“ROS机器人用户资料_2021\6-课件文档”文件夹中” 用户自己搭建PC端ubuntu环境需要下载和编译的功能包.txt”文档来补充安装和编译所需要的功能包。
4.1.6ROS分布式通讯配置(分布式不提供技术支持)
ROS机器人的实验和开发中,通常需要一台移动机器人和一台PC配合使用,这一章节我们就来介绍一下ROS中多机通讯的设置方法。
第一步:确保机器人和PC处于同一网段。
打开虚拟机,设置网络适配器
网络连接模式选择桥接模式,
选择正确的网卡,有些电脑是双网卡,根据自己连接的路由器的是哪张网卡就选择哪张。
查看虚拟机网络连接状态,可以看到这里就有一个IP为192.168.31.117的虚拟网卡
打开xshell登陆到机器人端查看小车IP,可以看到机器人IP为192.168.31.118
此时已确保机器人和PC处于同一网段。
第二步: 互相ping,测试网络连通性
第三步:
修改PC端~/.bashrc文件
在文件中修改export ROS_MASTER_URI=http://xxx:11311
将机器人端IP填入
修改完成后执行source ~/.bashrc 使修改生效
在机器人端启动底盘:
roslaunch base_control base_control.launch
在PC端查看话题列表(左侧)
在PC端中读取话题查看是否有数据一直刷新:
rostopic echo /battery
这样我们就通过分布式通讯直接在PC端查看了机器人端活跃的话题。
4.1.7机器人和PC时间同步
本节内容介绍机器人和pc的时间同步
现在绝大部分的电子设备它的时间都是通过NAT的服务器来校对自己的时间。这样可以保证大部分设备时间戳基本是一致的。但是如果机器人连在一个没有互联网的局域网环境下,或者机器人处于AP模式。机器人就没有办法通过NTP服务器去校对自身的时间,而且因为树莓派这一类的板卡本身也没有RTC模块所以没有掉电保持时间的功能。当机器人断电后它的时间也就停留在断电的时间点上,久而久之时间就会出现很大的偏差。
当机器人端和PC端的时间戳已经严重不同步时会导致ros下分布式通讯出现问题。两台机器无法有效传输数据。
此时需要将PC端时间和机器人端的时间同步
如果PC也是没有外网环境,先给PC获取一个外网环境然后安装一个 ntp服务器:
sudo apt install ntp
安装完NTP服务器之后,Ubuntu这个主机也就充当了一个时间服务器然后在机器人端就可以对PC端做时间校准
sudo ntpdate + “PC端IP”
输入PC端的地址这样就可以从PC上获取时间来同步机器人端的时间。如果机器人没有外网环境的话每次开机之后都要做一次校时的工作也就是通过sudo ntpdate来校准一次时间
4.1.8Ubuntu下ssh免密登陆
本节内容介绍Ubuntu下的登陆和免密登陆
在前面的章节中有介绍过Windows下的登陆机器人的软件例如xshell等。
而在Ubuntu下也有ssh登陆方式、它直接在终端中通过系统自带的指令实现
ssh登陆机器人bingda:
ssh bingda@192.168.31.118
登陆前提是PC和机器人在同一个网段,命令格式为ssh 用户名@ip
这里需要格外注意的是终端当前的用户名,在登陆机器人后用户名变成了robot,此时这个终端代表的是机器人端。而登陆之前的用户名是ubuntu也就是PC端。类似启动底盘这样的指令只能在机器人端生效,因为PC端没有接底盘。初学者特别容易将PC端和机器人端弄混淆,将机器人端的指令在PC端执行或将PC端才能生效的指令用在机器人端执行。需要特别注意。
设置免密登陆
免密登陆全程在PC端设置,首先设置一个key。
在PC端运行ssh-keygen然后一直默认回车,就会生成一key已经保存在/home/bingda/.ssh/id_rsa.pub中。
复制这个钥匙到机器人端ssh-copy-id -i .ssh/id_rsa.pub bingda@192.168.31.118(机器人IP根据自己实际情况填写)
钥匙安装成功,此时再ssh bingda@192.168.31.118登陆机器人就可以免密登陆了。
4.1.9安卓手机终端APP登陆机器人
本节内容讲解怎么使用手机登陆机器人
首先在应用商店下载一个终端,或者使用我们资料包中“安卓APP”文件下下提供的”终端.apk”文件安装,然后把手机数据流量关闭,然后打开WiFi,使手机和机器人连接在同一路由器上,如果机器人使用AP模式,则将手机WiFi连接到机器人热点上。
打开终端后界面如下图,点击红色方框处图标。
填写机器人的IP,填写机器人名称,打开密码选项,点击开始。填写机器人密码点击登陆
登陆完成,接下来就可以使用手机终端操控机器人了。例如启动底盘
4.1.10安卓ROS手机APP遥控机器人
本节内容讲解怎么使用手机APP遥控机器人
首先在通过PC或手机ssh登录到机器人上,在机器人端运行底盘控制功能包
roslaunch base_control base_control.launch
然后在用户资料里找到“ROS Control”这个APP安装并打开,点击右上角+号,在Master URI栏填写对应的机器人IP,IP地址后面的:11311是端口号,不要去修改它。
此时WiFi图标为深黑色可点击机器人名连接,在右下角的摇杆位置可控制机器人移动。
点击右上角+号选中Show Advanced Options,在红框处修改话题为odom,就可以在控制界面看到仪表盘的信息(下右图红框处),点击红框中的Control Mode可以选择其他控制模式,例如Tilt重力感应控制。
更多的对软件进行设置,可实现不同的功能,这里就不一一描述,如果感兴趣可以自己去探索。
4.1.11使用远程桌面连接机器人
我们所使用的机器人默认都是没有搭载屏幕的,所以也就没有办法使用图形桌面,如果想要使用机器人的图形桌面,可以使用远程桌面来实现,这里我们使用的是” NoMachine”这款远程桌面软件,机器人端的镜像中我们已经预装好了服务端,我们只需要安装PC的客户端即可,软件安装包在我们资料中有提供。
使用远程桌面和使用ssh登录所需要的网络环境是一样的,都需要PC和机器人处于同一局域网下,在使用远程桌面前可以先尝试ssh登录来判断网络环境。
安装完成后打开软件,在地址栏中输入机器人的IP地址,如果机器人工作正常,且和机器人在同一个局域网下,就可以看到连接的选项,点击后开始连接
连接成功后提示输入用户名和密码,输入完成后可以勾选记住用户名选项,完成后点击login登录进机器人的桌面。
登录进去之后,会有一些使用指引,一路点击OK即可,如果你已经可以熟练使用,可以点击”下次不再提醒”
接下来就登录到机器人的桌面环境了
文章来源:https://www.toymoban.com/news/detail-857783.html
如果不再需要使用远程桌面,关闭NoMachine窗口即可。文章来源地址https://www.toymoban.com/news/detail-857783.html
到了这里,关于4.1底盘基础功能:nmcli命令配置机器人无线网 Xshell中进行(冰达ros机器人例程运行)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!