远程访问nao机器人和远程执行led程序总结
环境:虚拟机VMware® Workstation 15 Pro下的ubuntu-18.04.3-desktop-amd64
1.安装好qibuild和C++环境
首先按照官方教程安装好qibuild和C++环境(注意是在Linux环境下,别看走眼):https://developer.softbankrobotics.com/nao6/naoqi-developer-guide/sdks/c-sdk/c-sdk-installation-guide#cpp-install-guide
qibuild是用来编译C++代码的从而生成可执行文件
2.构建代码并编译生成可执行文件
可以在my_worktree下面生成另外一个文件夹,和第一步里面的内容一样,有CMakeLists.txt,qiproject.xml,还有用以下qibuild命令生成的build-myconfig文件夹,或者可以直接复制第一步生成的文件夹,此时,my_worktree目录下就有两个目录了,一个是第一步生成的,还有一个是刚刚生成的,准备写led程序的目录。具体看下图,也就是上面官网链接里的内容
qibuild configure --release

接着,根据官方链接的内容:https://developer.softbankrobotics.com/nao-naoqi-2-1/naoqi-developer-guide/programming/c-sdk/c-examples/control-leds,生成一个main.cpp文件,内容如下:
#include <iostream> #include <alerror/alerror.h> #include <alproxies/alledsproxy.h> int main(int argc, char* argv[]) { if(argc != 2) { std::cerr << "Wrong number of arguments!" << std::endl; std::cerr << "Usage: movehead NAO_IP" << std::endl; exit(2); } try { /** Create a ALLedsProxy to call the methods to deal with NAO's leds. * Arguments for the constructor are: * - IP adress of the robot * - port on which NAOqi is listening, by default 9559 */ AL::ALLedsProxy leds(argv[1], 9559); /** Set the duration of the animation. */ float duration = 3.0f; /** Play a green / yellow / red animation on all of NAO's leds. */ leds.rasta(duration); } catch (const AL::ALError& e) { std::cerr << "Caught exception: " << e.what() << std::endl; exit(1); } exit(0); }
还有CMakeLists.txt文件的内容需要修改,全部换为以下内容(也可以把原先的内容注释掉):
cmake_minimum_required(VERSION 2.6.4 FATAL_ERROR) # Give a name to the project. project(ledsexample) # This include enable you to use qibuild CMake framework find_package(qibuild) # Create an executable named ledsexample, # with the source file : ledsexample.cpp qi_create_bin(ledsexample ledsexample.cpp) # Tell CMake that movehead depends on ALCOMMON and ALPROXIES. # This will set the libraries to link movehead with, # the include paths, and so on qi_use_lib(ledsexample ALCOMMON ALPROXIES)
这时候以上内容没有报错的情况下,使用命令编译生成可执行文件:
qibuild make
得到以下内容,由于内容过多,就只放出最后成功生成可执行文件ledsexample的结果:

3.修改网络IP并远程访问nao机器人
由于环境是虚拟机下的Ubuntu18.04.3,比较新,官方也修改了对应网络配置的文件。这方面许多人都写的很好,我就直接引用我成功执行的一个链接:https://blog.csdn.net/u014454538/article/details/88646689?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
这里可能需要点网络知识,Ubuntu的IP需要和nao机器人的IP在同一个网段,比如nao机器人的IP为192.168.1.6,则Ubuntu的IP需要改为192.168.1.66,反正最后一个点后面的数字需要不一样,但也不能为1或255。
这里我设置的IP是192.168.1.36/24,根据上面的链接,需要加斜杠 / , 不加的话会报错。网关和DNS服务器我设置和主机一样,这里可以自己打开主机windows下的命令提示符然后敲ipconfig查看 或者 打开设置下的网络状态查看相关信息。
还有一点就是虚拟机的设置,如下所示,如果想要设置回原来的网段,可以用上面那个链接写的动态IP,改好后,用sudo netplan apply执行再使用命令ifconfig即可看到IP发生变化。

修改好了之后我们可以先用 ssh 连接访问一下nao机器人看看通不通,执行以下命令:
ssh nao@192.168.1.101
其中,192.168.1.101是机器人的IP,成功接入如下:

最后,运行可执行文件:

接着就可以看到nao的眼睛颜色变成五颜六色并持续一段时间!

浙公网安备 33010602011771号