在远程pc上安装ROS来控制NAO

Table of Contents

1、在远程pc上安装ros

2、安装NAOqi

3、安装NAO机器人相关的ROS功能包

4、安装远程ros功能包

5、c++ bridge的安装

6、在真正的NAO上启动birdge

7、在RVIZ中显示NAO

8、控制NAO机器人

9、使用键盘控制NAO机器人


为了在远程pc上运行ros bridge,需要做一系列的准备工作 (即步骤1~5)。

1、在远程pc上安装ros

参考之前的文章:https://blog.csdn.net/li528405176/article/details/82288465

2、安装NAOqi

NAO机器人官方推荐的开发语言为python,所以首先需要配置ubuntu下NAO的python开发环境,参考之前的文章:https://blog.csdn.net/li528405176/article/details/85267476

3、安装NAO机器人相关的ROS功能包

使用如下命令安装必要的功能包:

sudo apt-get install ros-kinetic-driver-base ros-kinetic-move-base-msgs ros-kinetic-octomap ros-kinetic-octomap-msgs ros-kinetic-humanoid-msgs ros-kinetic-humanoid-nav-msgs ros-kinetic-camera-info-manager ros-kinetic-camera-info-manager-py ros-kinetic-nao-robot

注意 :如果pc上安装的是其他版本的ros,把上述命令中的kinetic替换掉即可。

4、安装远程ros功能包

首先进入你的ros工作空间中的src目录下

cd ~/catkin_ws/src

然后创建一个 .rosinstall 文件,并打开

touch .rosinstall
gedit .rosinstall

输入下面的内容进去,注意,不要落下开头的短横线

- git: {local-name: naoqi_bridge, uri: "https://github.com/ros-naoqi/naoqi_bridge.git", version: master}
- git: {local-name: nao_robot, uri: "https://github.com/ros-naoqi/nao_robot.git", version: master}
- git: {local-name: nao_extras, uri: "https://github.com/ros-naoqi/nao_extras.git", version: master}
- setup-file: {local-name: ../devel/setup.bash }

保存然后关闭,要从Github获取和更新功能包,请运行以下wstool命令

sudo apt install python-wstool
wstool update

然后编译并设置你的ros工作空间

cd ..
catkin_make
source devel/setup.bash   #刷新终端环境

5、c++ bridge的安装

前面的部分只安装了python版本的桥接器(bridge),我们也可以安装一个c++版本的桥接器,相比之下c++程序的执行速度比python脚本要快不少。

首先下载c++版本的NAOqi SDK,官方推荐无论是python版本还是c++版本最好选择2.1.2版本。下载之后解压。

然后在第4部分中提到的ros工作空间中运行以下命令来提取、安装和测试SDK。官方使用一个独立的用来查找c++版本NAOqi SDK的cmake文件,但是需要设置一个名为 AL_DIR 的环境变量,该变量指向c++版本NAOqi SDK的安装目录。运行以下命令即可

echo "export AL_DIR=/path/to/sdk" >> ~/.bashrc    #注意,其中/path/to/sdk是指c++ NAOqi SDK所在路径。比我我这里其实是:~/qtest/naoqi-sdk-2.1.2.17-linux64
source ~/.bashrc
cd ~/catkin_ws
catkin_make

6、在真正的NAO上启动birdge

这里我们主要用到nao_bringup功能包来连接机器人。nao_bringup包含作为nao单一入口点的启动和配置文件。启动文件将会启动机器人特定配置的所有基本执行器和传感器发布器。

在使用nao_bringup功能包之前一定要确认你已经安装了它依赖的三个功能包:naoqi_driver、naoqi_bridge、nao_description 。

可以使用rospack命令分别进行确认

rospack find naoqi_driver

如果没有安装则可以利用如下命令从github中下载安装

git clone https://github.com/ros-naoqi/naoqi_driver.git
git clone https://github.com/ros-naoqi/naoqi_bridge.git 
git clone https://github.com/ros-naoqi/nao_robot.git

要启动机器人bringup,只需运行

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

其中<robot_ip>表示机器人ip地址,<roscoe_ip>表示远程pc的ip地址,<roscoe_network_interface_card>表示网络接口卡名称。网络接口卡的名称可以通过ifconfig命令查看,如下图,我使用的无线连接,网络接口卡名称为wlp5s0

也可以使用python SDK来启动机器人bringup,命令如下

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

7、在RVIZ中显示NAO

为了在rviz中显示nao机器人,我们需要使用ros提供的一个预先配置好的rviz配置文件,它能够显示所有基本的组件(包括TF、机器人模型、摄像头和声纳)。它放置在你的ros工作空间下的nao_robot功能包中,具体路径为:~/catkin_ws/src/nao_robot/nao_description/config/urdf.rviz 。

可以使用如下命令使用该配置文件

rosrun rviz rviz -d ~/catkin_ws/src/nao_robot/nao_description/config/urdf.rviz

如上图,只能显示机器人的TF坐标系。基于阿尔德巴兰公司的策略,我们无法直接可视化机器人的3D网格。如果我们想要看到机器人的3D模型,需要下载该模型的安装包,然后在安装过程中接受它的许可信息。通过以下命令安装即可

sudo apt-get install ros-kinetic-nao-meshes

注意,这里要使用左箭头\leftarrow”和右箭头\rightarrow”两个键位来调整软件包设置中的选项。安装完毕后重启rviz即可。

如上图,重新打开rviz之后可以看到NAO机器人的3D模型了~

8、控制NAO机器人

注意,要想使用ros命令控制机器人,我们在第6步中需要使用python SDK启动bringup。因为官方给出的nao_full.launch文件是不完整的,没有启动nao_walker节点。而nao_full_py.launch文件是内容完备的。

启动bringup后执行 rosnode list 命令查看 nao_walker 节点是否启动

 如上图,我们看到该节点已经成功启动。然后,我们需要使nao机器人保持刚化(即给电机上电,禁止手动调整关节)

rosservice call /body_stiffness/enable "{}"

若想解除刚化状态,使其处于放松状态,可执行以下命令

rosservice call /body_stiffness/disable "{}"

刚化之后,我们可以向机器人发送行走命令,使其向前行走

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}}'

如果要让它停止运动,只需将x方向速度值设为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}}'

9、使用键盘控制NAO机器人

首先安装一个键盘控制功能包

sudo apt-get install ros-kinetic-teleop-twist-keyboard

打开该节点

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

如上图, 根据指示使用对应键位对机器人进行控制即可。

安装ROS Melodic在Ubuntu 18.04上是一个相对直接的过程。不过,由于您提到的NAO,这似乎指的是Aldebaran Robotics开发的人形机器人NAO,它支持ROS。这里将会提供一个基本的指南来安装ROS Melodic,然后简述在NAO安装ROS Melodic可能需要注意的步骤。 首先,为了在Ubuntu 18.04上安装ROS Melodic,请遵循以下步骤: 1. 设置您的系统,添加ROS Melodic的源地址。打开终端,执行以下命令: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` 2. 添加ROS密钥,这样您的系统就能够验证下载的ROS包。 ```bash sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 ``` 3. 更新您的系统包列表。 ```bash sudo apt update ``` 4. 安装ROS Melodic的桌面完整版。 ```bash sudo apt install ros-melodic-desktop-full ``` 5. 初始化ROS环境。 ```bash echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 6. 安装依赖包用于rosdep,这将允许您容易地安装系统依赖。 ```bash sudo apt install python-rosdep python-rosinstall-generator python-wstool build-essential ``` 7. 初始化rosdep。 ```bash sudo rosdep init rosdep update ``` 8. 如果您有多个ROS发行版(distro)在同一系统上,请为当前的ROS版本创建一个独立的环境(这一步通常对于全新安装不是必需的)。 ```bash mkdir -p ~/ros_catkin_ws/src cd ~/ros_catkin_ws/ catkin_make ``` 对于在NAO机器人上安装ROS Melodic,除了上述步骤外,您还需要安装NAO兼容的ROS包,并且可能需要特定的驱动程序和配置。通常,NAO机器人的制造商会提供相关的ROS包和安装说明。以下是一些可能需要执行的步骤: 1. 确保NAO的固件和软件是最新的。 2. 下载并安装NAO专用的ROS驱动程序和软件包。 3. 配置NAO的网络连接,使其能够在ROS网络中被识别和通信。 4. 测试NAOROS节点,确保安装成功并且NAO可以响应ROS节点发出的指令。 请注意,这里提供的信息是基于一般知识,具体的安装步骤可能会根据NAO机器人型号和ROS Melodic的特定版本有所不同。在进行安装前,建议查阅NAO官方文档和ROS官方教程,确保获取最新的安装指南和详细的配置信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值