== Introduction == For a basic installation of ROS components, please refer to the [[noetic/Installation|ROS installation page]]. In the following, we will explain how you install and start the available bridges between ROS and NAOqi. Hereby, we will install an officially supported [[naoqi_driver|C++ version]] as well as the older [[naoqi_driver_py|Python version]]. == C++ versions for ROS kinetic and greater == Starting from ROS kinetic, you should use naoqi_driver to connect to Pepper. To run, the driver requires [[https://github.com/ros-naoqi/libqi|naoqi_libqi]], [[https://github.com/ros-naoqi/libqi|naoqi_libqicore]] and [[https://github.com/ros-naoqi/libqi|naoqi_bridge_msgs]]. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. In case you want to start developing around Pepper, the following instructions will checkout the necessary packages from source. It will use catkin to compile, so in case you are not familiar with, don’t forget to follow the official [[catkin|catkin tutorials]]. Use the following link to know how to get started with __[[https://github.com/ros-naoqi/naoqi_driver|naoqi_driver]]__. Briefly from source: {{{ $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ git clone https://github.com/ros-naoqi/naoqi_driver.git }}} Make sure you get all the dependencies installed: {{{ $ rosdep install -i -y --from-paths ./naoqi_driver }}} And finally we build: {{{ $ source /opt/ros/$ROS_DISTRIB/setup.sh $ cd ../ && catkin_make }}} To connect with the robot afterwards, run: {{{ $ source /devel/setup.bash $ roslaunch naoqi_driver naoqi_driver.launch nao_ip:= [network_interface:=] [username:=] [password:=] }}} The first parameter is your nao_ip. You can get the nao_ip by clicking one time on the chest button of your robot. The second parameter network_interface specifies the network interface the bridge is connected. By default, this is set to eth0. Changing this becomes important to establish a correct network connection between robot and computer, when you are connected via a different network device, such as wlan0 or vpn0 etc. In case you are not certain which device to use, verify with ifconfig and verify which network device has the correct IP. Finally, the username and the password of your robot are optional and only used for 2.9 version. == C++ versions for ROS jade and lower == Before noetic, starting from indigo, you should use pepper_bringup. In order to use the pepper bringup, you need some additional ROS packages. To install them, depending on your ROS distribution: {{{ sudo apt-get install ros-$ROS_DISTRIB-driver-base ros-$ROS_DISTRIB-move-base-msgs ros-$ROS_DISTRIB-octomap ros-$ROS_DISTRIB-octomap-msgs ros-$ROS_DISTRIB-humanoid-msgs ros-$ROS_DISTRIB-humanoid-nav-msgs ros-$ROS_DISTRIB-camera-info-manager ros-$ROS_DISTRIB-camera-info-manager-py }}} Please note to change those packages to meet your local installation of ROS (e.g. ''export ROS_DISTRIB=jade'' beforehand ). You can simply install the released packages via aptitude. There exist official releases for indigo and jade. Simply run {{{ sudo apt-get install ros-$ROS_DISTRIB-pepper-.* }}} Also here, please be aware of which version of ROS you have (e.g. ''jade'' , ''indigo'' ) Most of ROS application needs a core to run. To start a core, just type {{{ $ roscore }}} Note that only one core can run at once. To bring-up Pepper with all actuators and sensors, run: {{{ $ roslaunch pepper_bringup pepper_full.launch nao_ip:= roscore_ip:= [network_interface:=] }}} This version need to specifies the IP of your robot. Since there is no roscore running on the robot, we have to tell which roscore IP to use. == Python version == In order to launch the Python version of Pepper, you are required to install the official Aldebaran NAOqi SDK. The install instructions can be found on the [[nao/Tutorials/Installation#NAOqi|NAO documentation]]. We cross-reference this here to avoid duplication. You need to [[pepper/Tutorials#C++ versions for ROS jade and lower|install Pepper bring-up]]. But in order to execute the Python bridge, we launch the second launch file. {{{ $ roslaunch pepper_bringup pepper_full_py.launch nao_ip:= roscore_ip:= }}} '''NOTE''' If you start the bridge without launching a core, the launch file will automatically start one. This can be convenient, but if you keep turning your bridge on and off, it is better to keep a core open in the background, especially if you use RViz or if you kill the bridge brutally. == Displaying Pepper in RViz == In order to visualize Pepper in RViz, simply open up a new RViz. Please take care to source your ''setup.bash'' as before. {{{ $ rosrun rviz rviz }}} We provide a pre-configured RViz configuration which has all basic displays such as TF, RobotModel, Camera, Lasers and Sonars. This configuration can be found inside your catkin workspace under {{{ src/pepper_robot/pepper_description/config/pepper.rviz }}} Based on Aldebaran's policy, we cannot visualize the robot 3D meshes. If we wish to visualize the complete 3D model, you have to install them which includes a licence agreement term to accept. Simply trigger: {{{ $ sudo apt-get install ros-$ROS_DISTRIB-pepper-meshes }}} During that installation, you have to accept the licence and you are good to go! Simply re-start your RViz and load the configuration file again. You will see a similar picture to the given screenshot down there. {{attachment:PepperRviz.png||width="750"}}