Company Logo
  • fibremap_940x230.jpg
  • intro1b_940x230.jpg
  • intro2_940x230.jpg
  • intro3b_940x230.jpg
  • intro4_940x230.jpg

During this experience you have to plan the motion of a NAO robot in a 2D simulated environment populated by obstacles. The robot has to walk through a prefix path avoiding collisions with other objects around it.

You can also try to challenge yourself in different new scenarios: 3D environments, dynamic maps, real robots.

At the end of the experience...


  • Make the simulated robot walk around the environment without collision
  • Understand the 2D map, and build a new map


  •     Object Oriented (OO) approach
  •     Use a 3D map (see OctoMap)
  •     Use a dynamic map
  •     Try with a real robot and a real map


  • Walk in a populated environment

What we want

  • Code (BitBucket)
  • Video (YouTube or BitBucket)
  • Report (PDF using Moodle) containing
    • A short description of your attemps

Step 1: Download and install the humanoid_stack

This stack contains packages for humanoid (biped) navigation:

cd ~/Workspace/Groovy/rosbuild_ws
git clone
rosws set humanoid_stacks

Pay particular attention to the package footstep_planner of this stack: it permits to build a path for the feet of the robot testing the collision of the soles with the ground.

Restart your terminal.

Step 2: Download and install SBPL

According to the upper and lower bounds of its DOF, a robot can reach certain positions from its current state. Combining together this motion primitives it is possible to build a path. SBPL (Search-Based Planning Library) has this aim.

sudo apt-get install ros-groovy-sbpl
rosmake footstep_planner


Step 3: Download and install NAO robot

cd Workspace/Groovy/rosbuild_ws
git clone
rosws set nao

The package contain common tools for the Nao robot to run on the PC. It contains, other than the URDF of the robot, joint state, odometry, and so on.

Remember to restart your terminal and to rosmake the package:

rosmake nao_example

Step 4: Download and install NaoQi

It permits to control the robot.

git clone
sudo mv naoqi /opt/

Insert the path in your .bashrc:

export NAOQIPATH=/opt/naoqi/naoqi-sdk-1.14.2-linux64
export PYTHONPATH=\(PYTHONPATH:/opt/naoqi/pynaoqi-python-2.7-naoqi-1.14-linux64

Step 5: Make the NAO walk

In order to test the packages you installed, you have to run the NaoQi driver and then launch a preloaded example program.

In a terminal: 

./naoqi -b


Then open another terminal:

roslaunch nao_example footstep_navigation.launch


Move your NAO using Navigation Goal and Navigation Pose.

Step 6: Download and install Octomap

Try to have a look at the Octomap package for ROS and use it to build the 3D map of the environment. This library implements a 3D occupancy grid mapping approach, providing data structures and mapping algorithms.

The 3D map of the envitonment built using Octomap

Powered by Joomla!®. Valid XHTML and CSS