前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NAO学习——从NAOqi和rviz开始学习在ROS上运行NAO

NAO学习——从NAOqi和rviz开始学习在ROS上运行NAO

作者头像
李志伟
发布2019-12-17 17:46:29
1.2K0
发布2019-12-17 17:46:29
举报
文章被收录于专栏:为学为学

NAO学习——从NAOqi和rviz开始学习在ROS上运行NAO

1. 开始连接一个实体NAO

1.1 运行nao_bringup

在开始之前,我们首先要确定三个必须的依赖包 naoqi_drivernaoqi_bridgenao_description 是否满足。这三个包可以通过包管理器或者从github上clone。

为了运行nao_bringup, 需要执行下列命令:

$ roslaunch nao_bringup nao_full.launch nao_ip:=<robot_ip> roscore_ip:=<roscore_ip>

如果用的是Python SDK,则需要执行:

$ roslaunch nao_bringup nao_full_py.launch nao_ip:=<robot_ip> roscore_ip:=<roscore_ip>

<robot_ip>是NAO的地址,’’是运行roscore的电脑IP地址。因为roscore并不是在NAO上运行的,所以用这两个参数来让NAO找到roscore运行的位置是很必要的。将这两个参数修改为正确的IP地址,以在NAO和电脑之间建立正确连接。

当nao_bringup成功运行之后,我们就可以打开rviz了。

1.2 在RVIZ上显示NAO

首先打开RVIZ:

$ rosrun rviz rviz

ROS上提供了一个预先设置好的RVIZ配置文件urdf.rviz,保存在~/catkin_ws/src/nao_robot/nao_description/config/下。

如果想要看到完整的NAO的3D模型,我们需要安装一个包:

$ sudo apt-get install ros-indigo-nao-meshes

在安装过程中,我们需要接受它的许可信息。安装完成后,重启一下RVIZ。

2. 控制NAO

如果上面的步骤都成功了,我们这个时候就已经能在RVIZ中看见NAO了。

接下来我们将用ROS命令来控制NAO。

首先执行$ rosnode list,我们应该能找到/nao_walker结点。这证明NAO的walker结点已经运行。

很重要的一点是,在开始控制实体NAO之前,需要先将其刚化:

$ rosservice call /body_stiffness/enable "{}"

:刚化之后,就不能再用手去移动NAO的关节。

若想解除刚化,则只需执行:

$ rosservice call /body_stiffness/disable "{}"

刚化之后,我们就可以向NAO发送一个行走的命令:

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{linear: {x: 1.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'

这条指令将会使NAO不断沿x轴方向行走,每个循环都会走一米。

若需要停止,则只需将linear中的x: 1.0修改为x: 0.0

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'

我们也可通过ROS一些已有的远程控制工具(如:ROS telep)来用键盘控制NAO。

3. 在ROS上运行虚拟的NAOqi

3.1 加载环境

首先,需要确保roscore已经运行。

然后在一个新的终端中,输入下列指令来在本地电脑运行NAOqi,以模拟出一个NAO:

$ ~/naoqi/naoqi-sdk-1.12.3-linux32/naoqi --verbose --broker-ip 127.0.0.1

broker-ip地址127.0.0.1是连接本地电脑的回路地址。只有在本地安装的ROS才能连接NAOqi。NAOqi API将可以通过broker-ip地址访问,而nao_driver将成为NAOqi API的包装器。

接下来在一个新的终端中加载ros_driver包,以连接本地的虚拟NAO:

$ LD_LIBRARY_PATH=~/naoqi/naoqi-sdk-1.14.5-linux64/lib:$LD_LIBRARY_PATH NAO_IP=127.0.0.1 roslaunch naoqi_driver naoqi_driver.launch force_python:=true

ROS官网上英文教程中的这一指令貌似有错误,我用的是ROS论坛中的解决方法。

如果运行成功,那么会看到与下列相似的输出:

代码语言:javascript
复制
Walker online...
.
nao_controller running...

:不要将这个路径添加到全局LD_LIBRARY_PATH中,不然可能会在运行其他程序时出错。

3.2 在RVIZ中查看虚拟的NAO

首先退出之前所有正在运行的终端应用。

然后安装rospack

$ sudo apt-get install ros-fuerte-rospack

再安装一些ROS的可视化工具:

$ sudo apt-get install ros-fuerte-visualization

接下来重新启动roscore、NAOqi 和 nao_driver

现在我们需要启动 robot_state_publisher并让其加载NAO的URDF模型:

$ roslaunch nao_description robot_state_publisher.launch

然后重新启动RVIZ即可。

在RVIZ中,将左部的”Displays”中的”Fixed Frame”修改为”/base_link”。若只有”/map”选项,则证明URDF模型没有成功加载。

右部的”Target Frame”应该是<Fixed Frame>

运行第二节中行走命令,我们就能看到RVIZ中的NAO开始行走了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NAO学习——从NAOqi和rviz开始学习在ROS上运行NAO
    • 1. 开始连接一个实体NAO
      • 1.1 运行nao_bringup
      • 1.2 在RVIZ上显示NAO
    • 2. 控制NAO
      • 3. 在ROS上运行虚拟的NAOqi
        • 3.1 加载环境
        • 3.2 在RVIZ中查看虚拟的NAO
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档