在上一篇博客的基础上,结合手势识别和实验室的unitreeA1机器狗做了一个机器狗的手势控制,可以实现手势控制机器狗的前后左右平动。
1、需要对ROS的话题通信机制及其环境配置有一定了解。2、建议先在Windows上跑通上一篇博客的手势识别模型再来进行机器狗的手势控制。3、宇树A1机器狗,GO1以及其他机器狗的配置同理。4、机器狗内置电脑上的环境配置:①Python版本应为3.8(必要条件)②视觉识别依赖包:Opencv,Mediapipe,;③Unitree官方发布的ROS_to_Real包,版本选择最早发布的版本(或unitree后续发布的支持A1机器狗的版本)。④ROS开发环境建议用VScode。⑤在Windows下载VncViewer以进行远程桌面连接,防止调试运动程序过程中损坏机器狗。⑥由于ROSMelodic所用为Python2,但Mediapipe和Opencv支持的版本为Python3.8,因此需要进行虚拟环境配置,下文会详细展开。
mkdirbuildcdbuildcmake../make接着创建工作空间,安装宇树的功能包
gedit.bashrc在文档末尾添加
source/opt/ros/melodic/setup.bashsource/usr/share/gazebo-8/setup.sh//如果报错的话,可以删掉这一行source~/catkin_ws/devel/setup.bashexportROS_PACKAGE_PATH=~/catkin_ws:${ROS_PACKAGE_PATH}exportGAZEBO_PLUGIN_PATH=~/catkin_ws/devel/lib:${GAZEBO_PLUGIN_PATH}exportLD_LIBRARY_PATH=~/catkin_ws/devel/lib:${LD_LIBRARY_PATH}#3_1,3_2exportUNITREE_SDK_VERSION=3_2//看是SDK的版本是3_1还是3_2.exportUNITREE_LEGGED_SDK_PATH=~/unitree_legged_sdkexportALIENGO_SDK_PATH=~/aliengo_sdk#amd64,arm32,arm64exportUNITREE_PLATFORM="amd64"//A1前面的板子是arm,后面的是amd注意:这里要把把上述部分catkin_ws全部改成你工作空间名(如果是直接复制上面代码的话就不用改),如我的工作空间叫unitree就把catkin_ws改成unitree另外如果需要开发Aliengo则把exportUNITREE_SDK_VERSION=3_2改exportUNITREE_SDK_VERSION=3_1即可如果没有安装Aliengo的SDK可以把exportALIENGO_SDK_PATH=~/aliengo_sdk注释掉。接下来在工作空间目录下打开终端,输入:
catkin_make一般编译不通过都是版本问题,需要仔细阅读Readme,或者Gazebo报错的话可以将其注释掉。
setlocale(LC_CTYPE,"zh_CN.utf8");setlocale(LC_ALL,"");2.3Python3.8下载
sudomakeinstall2.4Python虚拟环境配置因为我们的视觉程序依赖Opencv和Mediapipe,而它们需要Python3.8来运行,但是ROS依赖的又是Python2,所以我们需要配置出一个虚拟环境,将两个环境隔离开。必须下载完Python3.8之后才可以执行此操作。这一步是为了把系统当前的Python环境换成Python3.8,因此没下载Python3.8执行这一步的话会直接报错。原理:使用virtualenv创建一个Python3的环境。然后在这个环境中编译安装自己需要的软件包。在引用软件包的时候,如果没有对应的Python3的软件包,会自动的去Python2.7的环境里面找。这样很多软件包都是可以通用的。当然对于没有做好Python3支持的软件包也是没法用的。
mkdircatkin_ws#创建工作空间cdcatkin_wsmkdirsrccdsrc#创建虚拟环境virtualenv-p/usr/local/python3.8.1/bin/python3.8.1venv#这一步是创建虚拟环境,路径不一定一样,仅供参考。sourcevenv/bin/activate#这一步是激活虚拟环境。pipinstallcatkin_pkgpyyamlempyrospkgnumpy#安装python3虚拟环境下所需的编译依赖之类的。catkin_makesourcedevel/setup.bash2.5Mediapipe与Opencv的安装回到上一步的工作空间目录下,激活虚拟环境,并下载安装Mediapipe与Opencv:
sourcevenv/bin/activate此时命令行输入python,可以看到Python已经变成了3.8版本。然后开始下载Opencv和Mediapipe包(如果报错就把pip3.8换为pip或pip3)
pip3.8installopencv-pythonpip3.8installmediapipe如果报错是pip版本不够,则执行
python3-mpipinstall--upgradepip配置完成后视觉程序即可运行,注意,不要进行编译,直接右键选择在命令行中运行即可。
先到官网下载VncViewer,然后启动机器狗,连接机器狗WiFi,password是8个0;然后打开VNC_Viewer;第一行选vnc-any;地址为192.168.123.12;password八个0;如果屏幕只有三分之一,则打开命令行,输入命令:
xrandr--fb1920x10802.6报错解决:如果在运行roscore时报错说python版本不对,则需要重置python软链接,将其指向python2(需要先通过whereispython命令查找python2所在路径,在命令行输入:
mv/usr/bin/python/usr/bin/python.bakln-s/usr/local/python2.7/bin/python2.7/usr/bin/python#这里的路径是python2的路径mv/usr/bin/pip/usr/bin/pip.bakln-s/usr/local/python3.7.1/bin/pip3/usr/bin/pip如果缺少某些包或依赖,直接用sudoapt-get或pipinstall命令安装即可,前提是得先激活虚拟环境,在虚拟环境中下载python包。