JSK original ROS package for NAO and Pepper. The package name comes from Naoqi OS they use.
Your PC becomes ROS master. Your PC connects to a naoqi robot and starts up ROS nodes (jsk_nao_startup.launch
and jsk_pepper_startup.launch
).
You can control NAO and Pepper via roseus (naoeus
and peppereus
).
For more information about these programs, please refer to here for NAO and here for Pepper.
- On
Please refer to NAO's page and Pepper's page.
- Off
Please refer to NAO's page and Pepper's page.
- Disable AutonomousLife
Naoqi robot has AutonomousLife in addition to a normal concept of servo on and off.
When you're a developer, you'll want to disable AutonomousLife (it includes servo off) and servo on a robot to try codes you write.
If you want to know how to disable it, please refer to using a chest button. Link is for Pepper, but same as NAO.
Or please refer to using ROS service.
- Network with DHCP
To connect NAO and Pepper to wifi for the first time, please refer to here.
- Network without DHCP (link-local addressing)
Please refer to here.
[2019.03.01: Trouble shooting]
When you connect Pepper and your PC via network without DHCP, power on Pepper and launch Setting from Pepper's tablet, setting wizard sometimes becomes zombie process. You may not exit Setting as described here, which causes a failure of AutonomousLife setting.
[ERROR] [1550641271.575637]: Exception while disabling life state: ALAutonomousLife::setState AutonomousLife::setState Calls to the setState method are not currently allowed. Did you finish the getting started wizard?
If this happens, please connect Pepper to network with DHCP and exit Setting.
% First, you need to install ros. For ros kinetic, please refer to install guide like here
-
Install
Python NAOqi SDK
You can download it from here. (You may need an account.)
Please unzip the downloaded file.
Please createpynaoqi
folder in your home directory.
Then put the file under yourpynaoqi
folder. -
Export environment variables in your
.bashrc
# Python NAOqi SDK version >= 2.5.5
export PYTHONPATH=$HOME/pynaoqi/pynaoqi-python2.7-2.5.5.5-linux64/lib/python2.7/site-packages:$PYTHONPATH
# Python NAOqi SDK version < 2.5.5
export PYTHONPATH=$HOME/pynaoqi/<your Python SDK package name>:$PYTHONPATH
export NAO_IP="olive.jsk.imi.i.u-tokyo.ac.jp" % OR IP address like "133.11.216.xxx"
export ROS_IP="133.11.216.yyy" % OR run rossetip command to set ROS_IP
% pose_controller.py
in naoqi_pose
package imports NaoqiNode
from naoqi_node.py
in naoqi_driver_py
package.
% naoqi_node.py
imports ALProxy
from naoqi.py
.
% naoqi.py
is located under pynaoqi-python2.7-2.5.5.5-linux64/lib/python2.7/site-packages/
% NAO_IP is IP address of Pepper. Pepper tells you their address when pushing their belly button.
% Please install ros-kinetic-jsk-tools
to use rossetip
command.
- Install ROS packages for NAO and Pepper
mkdir -p catkin_ws/src
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/jsk-ros-pkg/jsk_robot/master/jsk_naoqi_robot/pepper.rosinstall
wstool update -t src
source /opt/ros/kinetic/setup.bash
rosdep install -y -r --from-paths src --ignore-src
Then, please install Nao/ Pepper mesh files from deb with manual approval of license.
sudo apt-get install ros-kinetic-pepper-meshes
sudo apt-get install ros-kinetic-nao-meshes
If you have ROS kinetic, please use naoqi_dashboard (kochigami-develop).
This includes Important PR for ROS kinetic.
cd catkin_ws/src
wstool set naoqi_dashboard --git https://github.com/ros-naoqi/naoqi_dashboard
wstool update naoqi_dashboard
cd naoqi_dashboard
git remote add kochigami https://github.com/kochigami/naoqi_dashboard.git
git fetch kochigami
git checkout -b modify-for-kinetic kochigami/kochigami-develop
Finally, please compile them.
catkin build --continue-on-failure
source devel/setup.bash
% Inside jsk_robot
package, there are many packages which are not required for jsk_naoqi_robot
. If we fail to compile them, building process might stop and jsk_naoqi_robot
packages might not be compiled. We might need to continue compiling (catkin build --continue-on-failure
) in that case.
- (optional) For NAO and Pepper developers
Please add following source codes which you need for debugging.
cd catkin_ws/src
wstool set nao_robot --git https://github.com/ros-naoqi/nao_robot
wstool set pepper_robot --git https://github.com/ros-naoqi/pepper_robot
wstool set naoqi_driver --git https://github.com/ros-naoqi/naoqi_driver
wstool set naoqi_bridge --git https://github.com/ros-naoqi/naoqi_bridge
wstool set naoqi_bridge_msgs --git https://github.com/ros-naoqi/naoqi_bridge_msgs
wstool set naoqi_dashboard --git https://github.com/ros-naoqi/naoqi_dashboard
Common methods for NAO and Pepper are defined in naoqieus/naoqi-interface.l
. NAO-specific methods are defined in naoeus/nao-interface.l
. Pepper-specific methods are defined in peppereus/pepper-interface.l
. For further details about each method, please refer to naoqieus, naoeus, and peppereus respectively.
For some methods, they require specific branch (kochigami-develop) because they are not merged into master. If you need this, please change your branch of naoqi_driver
, naoqi_bridge
and naoqi_bridge_msgs
as follows:
cd catkin_ws/src
wstool set naoqi_driver --git https://github.com/ros-naoqi/naoqi_driver
wstool update naoqi_driver
cd naoqi_driver
git remote add kochigami https://github.com/kochigami/naoqi_driver.git
git fetch kochigami
git checkout -b kochigami-develop kochigami/kochigami-develop
cd .. # catkin_ws/src
wstool set naoqi_bridge --git https://github.com/ros-naoqi/naoqi_bridge
wstool update naoqi_bridge
cd naoqi_bridge
git remote add kochigami https://github.com/kochigami/naoqi_bridge.git
git fetch kochigami
git checkout -b kochigami-develop kochigami/kochigami-develop
cd .. # catkin_ws/src
wstool set naoqi_bridge_msgs --git https://github.com/ros-naoqi/naoqi_bridge_msgs
wstool update naoqi_bridge_msgs
cd naoqi_bridge_msgs
git remote add kochigami https://github.com/kochigami/naoqi_bridge_msgs.git
git fetch kochigami
git checkout -b kochigami-develop kochigami/kochigami-develop
In addition, if you have ROS kinetic, please fetch the source of nao_interaction
(master branch) for the time being (related issue).
cd .. # catkin_ws/src
wstool set nao_interaction --git https://github.com/ros-naoqi/nao_interaction
wstool update nao_interaction
- common interface package for controlling NAO and Pepper via roseus
To connect NAO and Pepper to wifi, please refer to here.
To control multiple robots in one PC, please refer to here.
To control NAO and Pepper via gazebo simulator and roseus, please refer to here.
- contains ROS launch files for NAO
- package for controlling NAO via roseus
- contains ROS launch files for Pepper
- package for controlling Pepper via roseus
- demo package which Pepper introduces themselves