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 NaoQi
It permits to control the robot.
cd git clone https://<your_bb_username>@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 2: Download and install the humanoid and NAO metapackages
These metapackages contain respectively packages for humanoid navigation and NAO integration in ROS.
sudo apt-get install ros-hydro-octomap-ros ros-hydro-octomap-msgs ros-hydro-sbpl cd ~/Workspace/ros/catkin_ws/src git clone https://github.com/ahornung/humanoid_msgs git clone https://github.com/ahornung/humanoid_navigation cd humanoid_navigation git checkout hydro-devel cd .. git clone https://github.com/ros-nao/nao_robot.git
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.
Step 3: Download and install UNIPD NAO model and motion utilities
This metapackage extends the standard functionalities provived in the previously installed packages.
cd ~/Workspace/ros/catkin_ws/src git clone https://<your_bb_username>@bitbucket.org/iaslab-unipd/nao_unipd.git cd .. catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"
Step 4: Make the NAO walk
In order to test the installed packages, you should 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_motion footstep_navigation.launch
Move your NAO by using first 2D Pose Estimate and then 2D Nav Goal.
Hint: 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 by providing data structures and mapping algorithms.