Tinymal-B可以完全实现脱离遥控的操控,但是该模式目前任然在开发,相应逻辑存在可能得Bug,另外需要搭配SLAM感知系统完成路点的规划,基本使用教程和原理如下:
1 ROS控制台启动
Tinymal内置了基本的SDK,实时监听UDP端口的数据并获取机器人的操控指令,在无遥控下机器人将自动完成上电和步态切换,并在无遥控下自动切换站立,并自动下蹲断点节约电量,首先需要安装我们提供PC虚拟机,并更新最新的PC SLAM代码,则基本操作过程如下:
1)建立运行如下脚本,同步修改感知主控IP实现远程窗口打开
#!/bin/bash
#ssh-keygen
#ssh-copy-id -i /home/bingda/.ssh/id_rsa.pub bingda@192.168.1.183 192.168.1.248
#ssh-copy-id -i /home/bingda/.ssh/id_rsa.pub xavier@192.168.1.212
gnome-terminal -e 'bash -c "ssh bingda@192.168.1.183"' --tab --tab --tab --tab --tab --tab --tab
2)确保SLAM控制器更新了最新的SLAM代码,则可以启动导航,其包括雷达、驱动、定位、SDK:
roslaunch robot_navigation robot_lidar.launch
roslaunch robot_vslam move_base.launch planner:=tinymal
如果在SLAM主控安装了YoloV5和相机,则启动相机识别:
roslaunch robot_vslam camera.launch
如果安装了语音模组则启动:
roslaunch Tinymal_voice tinymal_voice.launch
在PC虚拟机启动:
roslaunch robot_navigation multi_navigation.launch
则如果所有系统都正常会显示如下界面:
界面中需要注意首先机器人数字孪生关节角度将与实物一致,如果发现启动后不一样那可能是机器人主控自启动有问题需要重新上电,另外顶部会显示机器人当前SDK状态和步态模式。
2 ROS控制台脱离遥控器操控
1)在通过上位机遥控的模式中通过按键Start可以主动切换SDK模式,默认手动模式显示Manual,而SDK模式显示Auto:
则无遥控模型需要打开Rviz虚拟摇杆面板,点击Command选择使能SDK并执行,则SDK Mode切换后将接受自主控制指令完成步态切换:
2)首先我们测试虚拟摇杆
Tinymal自主模式下可以接收3种cmd_vel指令最高优先级虚拟摇杆,第2为用户任务强制指定的速度,第3为Move_base由导航路径规划计算的速度,则我们拖动虚拟摇杆保持一段时间,机器人将在3s内自动完成上电并站立,之后按摇杆进行移动,虚拟摇杆仅用于临时脱困因此只控制前后左右速度,无法控制转向。
3)下面测试自主导航:
确保地图功能正常,导航launch运行,默认启动的Rviz已经支持多导航节点,首先测试单独导航模式,选择2D Nav作用的Icon:
之后再地图中下发,则机器人将直接产生导航路径并开始移动:
如果导航中想停止可以使用command中的dis_sdk指令,如果单次发送不生效可以多次点击。
4)测试多路点模
多路点模式下,可以在地图中设置多个路点,因此需要再使用前先关闭SDK,同时在PC本地开启任务例程:
roslaunch robot_navigation find_a_cat.launch
则点击右边的2D NAV后,在地图上选择多个路点:
重新开启SDK模式,并且启动search_sdk,则机器人将自动在各路点移动,每个路点停留1s,同理如果需要停止则使用相应指令,如果需要清除路点则首先需要使用如下按键,并电机左下角Reset刷新Rviz:
4)自主返航模式:
当启动任务find_a_cat后会将当前机器人的位置作为返航点,则在机器人任意运动时候发送:
机器人将自动返回,如需要修改返航位置则需将机器人移动到对应为止与姿态,点击:
另外Command中还有如下指令其作用为:
en_sdk | 使能自主模式 |
dis_sdk | 关闭自主 |
search_sdk | 自动搜索任务 |
home_sdk | 自主返回 |
stop_sdk | 停止 |
guard_sdk | 路点防守任务 |
set_home_sdk | 设置返航点 |
reset_nav_sdk | 清除路点 |
safe_sdk | 断使能保护 |
注:上述指令均可以直接发送Empty的消息话题实现,也可以直接在左下方输入对应指令按键快速发送!