
#冲刺创作新星#宇树A1机器狗手势控制 原创
在上一篇博客的基础上,结合手势识别和实验室的unitreeA1机器狗做了一个机器狗的手势控制,可以实现手势控制机器狗的前后左右平动。
前期准备
1、需要对ROS的话题通信机制及其环境配置有一定了解。
2、建议先在Windows上跑通上一篇博客的手势识别模型再来进行机器狗的手势控制。
3、宇树A1机器狗,GO1以及其他机器狗的配置同理。
4、机器狗内置电脑上的环境配置:
①Python版本应为3.8(必要条件)
②视觉识别依赖包:Opencv,Mediapipe,;
③Unitree官方发布的ROS_to_Real包,版本选择最早发布的版本(或unitree后续发布的支持A1机器狗的版本)。
④ROS开发环境建议用VScode。
⑤在Windows下载VncViewer以进行远程桌面连接,防止调试运动程序过程中损坏机器狗。
⑥由于ROS Melodic所用为Python2,但Mediapipe和Opencv支持的版本为Python3.8,因此需要进行虚拟环境配置,下文会详细展开。
环境配置教程
2.1 ROS_to_Real包以及SDK的编译安装
这一部分需要先认真阅读官方的Readme文档,确认各种依赖以及版本都是正确的。
官方网址:unitreerobotics/unitree_ros_to_real (github.com)
首先进入主文件夹,输入 :
输入cd unitree_legged_sdk/进入文件夹
然后按照readme里的步骤,在终端依次输入
接着创建工作空间,安装宇树的功能包
接下来按照文档里说的,打开主文件夹里的.bashrc文件,
在主文件夹打开终端,输入:
在文档末尾添加
注意:这里要把把上述部分catkin_ws全部改成你工作空间名(如果是直接复制上面代码的话就不用改),如我的工作空间叫unitree就把catkin_ws改成unitree
另外如果需要开发Aliengo则把export UNITREE_SDK_VERSION=3_2改export UNITREE_SDK_VERSION=3_1即可
如果没有安装Aliengo的SDK可以把exportALIENGO_SDK_PATH=~/aliengo_sdk注释掉。
接下来在工作空间目录下打开终端,输入:
一般编译不通过都是版本问题,需要仔细阅读Readme,或者Gazebo报错的话可以将其注释掉。
2.2 VScode安装以及ROS开发环境的配置
VScode可以直接到官网上下载安装包然后打开(或者直接下载NAS上的安装包),双击即开始安装。如果觉得太慢也可以在直接电脑上下载安装包,然后拷贝到Ubuntu里,注意系统架构,A1前面的板子是arm架构,后面的板子是amd不要下错了。
下载完成后,打开命令行,输入:
即可打开Vscode。
要在VScode上编写ROS程序,还需要以下配置操作。
①打开Vscode,点击这里
③然后ctrl + shfit + b,点击第一行右边的小齿轮
将里面的内容替换如下:
④然后打开c_cpp_properties.json文件,将Cpp标准修改如下:
以上操作都要执行,否则将无法导入头文件。
以及编写程序时,如果里面出现了中文,记得加上:
2.3 Python3.8下载
如果make test命令出现ModuleNotFoundError: No module named‘_ctypes’
可以参考这篇博客解决
最后输入:
2.4 Python 虚拟环境配置
因为我们的视觉程序依赖Opencv和Mediapipe,而它们需要Python3.8来运行,但是ROS依赖的又是Python2,所以我们需要配置出一个虚拟环境,将两个环境隔离开。必须下载完Python3.8之后才可以执行此操作。这一步是为了把系统当前的Python环境换成Python3.8,因此没下载Python3.8执行这一步的话会直接报错。
原理:使用virtualenv创建一个Python3的环境。然后在这个环境中编译安装自己需要的软件包。在引用软件包的时候,如果没有对应的Python3的软件包,会自动的去Python2.7的环境里面找。这样很多软件包都是可以通用的。当然对于没有做好Python3支持的软件包也是没法用的。
2.5 Mediapipe与Opencv的安装
回到上一步的工作空间目录下,激活虚拟环境,并下载安装Mediapipe与Opencv:
此时命令行输入python,可以看到Python已经变成了3.8版本。
然后开始下载Opencv和Mediapipe包(如果报错就把pip3.8换为pip或pip3)
如果报错是pip版本不够,则执行
配置完成后视觉程序即可运行,注意,不要进行编译,直接右键选择在命令行中运行即可。
2.6 远程桌面链接
先到官网下载VncViewer,然后启动机器狗,连接机器狗WiFi,password是8个0;然后打开VNC_Viewer;
第一行选vnc-any; 地址为192.168.123.12;password八个0;
如果屏幕只有三分之一,则打开命令行,输入命令:
2.6报错解决:
如果在运行roscore时报错说python版本不对,则需要重置python软链接,将其指向python2(需要先通过whereis python命令查找python2所在路径,在命令行输入:
如果缺少某些包或依赖,直接用sudo apt-get 或pip install 命令安装即可,前提是得先激活虚拟环境,在虚拟环境中下载python包。
关键代码
视觉代码
视觉程序的详细注释请看上一篇博客,两者代码基本相同,只是多了一个判断模块和命令发布,这里都有注释。
运动控制源码:
