Nav_module_PRI

Installation

  • Launch the script install_ros_dependencies.sh and follow instructions.

Mapping package

  • After the installation, launch the mapping node as follow:

1. On a real robot

  • Launch the naoqi-driver on a terminal:

roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<yourRobotIP> roscore_ip:=<roscore_ip> network_interface:=<eth0|wlan0|tethering|vpn...>

Available troubleshooting: https://ros-naoqi.github.io/naoqi_driver/start.html#start-the-naoqi-driver-module

2. On a simulated robot (QiBullet)

  • Connect your python script to the naoqi-driver via the PepperRosWrapper:
wrapper = PepperRosWrapper()
wrapper.launchWrapper(pepper, "naoqi_driver")

Troubleshooting: see the README of the QiBullet repository.

3. For both real robot and simulation

  • Launch the provided mapping script: launch_mapping.sh This will open 3 new window:

    1. The first terminal is for the teleop package (package that allow you to control the robot using your keyboard)
    2. The second terminal is for the mapping node form pepper_nav_bringup
    3. The last window is Rviz, ROS visualisation tool, here you can see the creation of your map in real time
  • Move the robot using your keyboard on the teleop terminal

  • When you're done save the map by running: rosrun map_server map_saver -f <map_path/map_name>

This will create a .pgm and a .yaml file at the map_path location. The .pgm file is just for you to see the map you created, only the .yaml will be used by ROS.

Navigation package

  • To launch the package: roslaunch navigation navigation.launch <absolute_path_to_your_map>

This will open an Rviz window and launch the pepper_nav_bringup package. With Rviz you can:

  • Set the initial position of the robot on the map by clicking on 2D Pose Estimate

  • Move the robot by clicking on 2D Nav Goal

  • To use this package via a python script:

init_pose("POSE NAME") # available pose : POSE1, POSE2, can be extended
getPepperPos() # return Pepper original pose
getOperatorPose() # return Operator predefine pose (can be adjusted)
MoveToDestination(coordX, coordY, theta, timer) # The robot will move to the destination according to the map, if it didn't get to is goal before "timer" countdown navigation will stop

Pepper_nav_bringup package

This package has been fork from another repository: https://github.com/CentralLabFacilities/pepper_nav_bringup

This package is mainly used for Pepper sensors tuning.