NAO學習——從NAOqi和rviz開始學習在ROS上運行NAO


1. 開始連接一個實體NAO
1.1 運行nao_bringup
在開始之前,我們首先要確定三個必須的依賴包 naoqi_driver,naoqi_bridge 和 nao_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論壇中的解決方法。

如果運行成功,那麼會看到與下列相似的輸出:
1 Walker online.
2
3 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開始行走了。
————————————————
版權聲明:本文爲CSDN博主「JevisLi」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/li827437709/article/details/81484910

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章