Skip to content

RoboBreizh-RoboCup-Home/navigation_pepper

Repository files navigation

Navigation Package

1. Installation

First go to the src file of your repository and download the package:

git clone https://github.com/RoboBreizh-RoboCup-Home/navigation_pepper

⚠️ Computer only ⚠️ - Execute this script at the root of the package to install all the dependencies

chmod +x ./install.sh && ./install.sh

2. Description 📄

Octomap (partially work 😥)

This package perform a 3d map of the environment given a pointcloud. The 3D map can then be projected to get a 2D map and perform navigation. The package has a function to cut the floor but requires a horizontal plane which can't be acquired. To overcome this issue, we use another function that allows to cut the floor at a certain level from the robot feet.

3. Usage

Mapping

⚠️ you need to remember the starting point of the robot for navigation. Please use some tape or anything that could mark the stating point of pepper

3.1. Map generation

First you need to go at the root of your workspace, compile the package and source it : catkin_make && source devel/setup.bash

From there , there is 3 things to do :

  • in one terminal (on the robot or your local machine) start the mapping node : roslaunch octopep_mapping mapping_3d.launch z_min:=0.3 z_max:=1.6
  • in one terminal on your local machine start a node to control the robot : rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  • in one terminal on your local machine start rviz to see what happens : rviz rviz -d `rospack find octopep_mapping`/config/octo_mapping.rviz

Now you can navigate around the room to generate the map.

3.2. Saving map

Once you are satisfied with the generated map you might want to save it.

Save octomap 3d projected map :

rosrun map_server map_saver -f octomap_projection map:=/projected_map

Save octomap 3d map :

rosrun octomap_server octomap_saver -f mapfile.bt

This map can be reused when starting the mapping node, look at the mapping.sh script in octopep_mapping package if you are interested.

How to Rviz

Rviz startup with a config file but if you want to add any topic to visualize you can do : Add -> By topic -> Choose whatever suits your needs 👌

How to teleop

To use it, you need to click on the terminal window first. Then you should scale down robot speed a little bit using z Once the proper speed is set, you can start moving it using :

  • i ⬆️
  • j ↪️
  • k (stop)
  • l ↩️

Sometimes instructions doesn't work. If this happpens spam k and another key. It will eventually work. You can use the other keys prompt on the terminal as well.

Navigation

3.3. Base local planner

  • go at the root of your workspace, compile the package and source it : catkin_make && source devel/setup.bash

  • Start navigation node : roslaunch navigation_pep base_nav.launch

  • Then in another terminal open rviz : rviz rviz -d `rospack find navigation`/config/rviz_config/nav.rviz

Now you are ready to navigate by using the 2D Nav Goal button. Click on the button then on the map in rviz to give a goal location. 2D Nav Goal button

3.4. Teb local planner

  • go at the root of your workspace, compile the package and source it : catkin_make && source devel/setup.bash

  • Start navigation node : roslaunch navigation_pep teb_navigation.launch

  • Then in another terminal open rviz : rviz rviz -d `rospack find navigation`/config/rviz_config/nav.rviz

now you can use rviz to navigate as seen in the section above or send the position via the service

3.5. Services

First make sure teb_navigation node is running.

To enable sending a navigation goal to the robot you can use the navigation_pep/scripts/navigation_server.py service file using :

    rosrun navigation_pep navigation_server.py

Then you can send a message to the service with the type described under navigation_pep/srv/NavigationDestination.srv

Test

To test it you can also run rosrun navigation_pep test_navigation_srv.py

4. Roadmap

✔️ Mapping using octomap

❌ Mapping using rtab

❌ Mapping using cartographer

✔️ Navigation using Base local planner

❌ Navigation using Dwa local planner and Navfn

✔️ Navigation using Teb local planner

Citations

If you use this project, please consider citing:

@incollection{buche2023robocup,
  title={RoboCup@ Home SSPL Champion 2023: RoboBreizh, a Fully Embedded Approach},
  author={Buche, C{\'e}dric and Neau, Ma{\"e}lic and Ung, Thomas and Li, Louis and Wang, Sinuo and Bono, C{\'e}dric Le},
  booktitle={Robot World Cup},
  pages={374--385},
  year={2023},
  publisher={Springer}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •