远程访问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的眼睛颜色变成五颜六色并持续一段时间!

 

posted @ 2020-08-13 09:52  yingfengwu  阅读(613)  评论(0)    收藏  举报