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...
Objectives
- Make the simulated robot walk around the environment without collision
- Understand the 2D map, and build a new map
Plus
- Object Oriented (OO) approach
- Use a 3D map (see OctoMap)
- Use a dynamic map
- Try with a real robot and a real map
Challenges
- 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 git@bitbucket.org:iaslab-unipd/humanoid_stacks.git 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 git@bitbucket.org:iaslab-unipd/nao.git 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.
cd git clone git@bitbucket.org:iaslab-unipd/naoqi.git 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:
cd \)NAOQIPATH ./naoqi -b 127.0.0.1
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.