-
Write a URDF for the robot using XML and use xacro to make the code in separate files for readability.
-
Git Gazebo environment with real-world problems to ensure accurate navigation.
- World includes:
- Tables (challenge in 2D mapping and navigation with a tall robot)
- People walking in the environment (dynamic environment challenge in navigation stack)
- Glass (laser scan can't detect glasses)
- World includes:
-
Write a launch file to launch Gazebo and spawn the robot.
roslaunch waiter_robot_description_pkg robot_description.launch
- Explore 3D mapping options like Octo-map
-links help for make octomap 1- octomapping tutorial 2- octomap with navigation 3- install for grid map 4- install octomap
- Octomap installation and mapping instructions.
sudo apt-get install ros-noetic-octomap
sudo apt-get install ros-noetic-octomap-mapping
sudo apt-get install ros-noetic-octomap-msgs
- First, run the robot description package:
roslaunch waiter_robot_description_pkg robot_description.launch
- Next, run navigation with a 2D map to make the robot move and build the map:
roslaunch waiter_robot_navigation_pkg waiter_navigation.launch --screen 2> >(grep -Ev 'TF_REPEATED_DATA|buffer_core.cpp' | grep -v '^$')
- Run Octomap mapping:
roslaunch waiter_robot_octomap_pkg octomap_mapping.launch --screen 2> >(grep -Ev 'TF_REPEATED_DATA|buffer_core.cpp' | grep -v '^$')
- After mapping with Octomap, save the generated map:
rosrun octomap_server octomap_saver -f name_of_map.bt
You can save it as a binary (.bt) or probabilistic (.ot) map.
- To integrate this map into the navigation stack like a global planner, convert it to a PGM map:
- Run the node to convert the map to PGM:
roslaunch waiter_robot_octomap_pkg octomap_to_gridmap.launch
2. Run the map server to save the grid map:
rosrun map_server map_saver --occ 60 --free 5 -f my_map_3 map:=/grid_map_visualization/elevation_grid
After experimentation, the optimal threshold for occupied and free cells is 60.
1- Navigation is robust in tables or the kitchen but may fail when people come or when the map changes.
2- Spatio Temporal Voxel Layer (STVL) Algorithm
An algorithm for real-time 3D obstacle avoidance.
- Operates at nearly 400% less CPU load compared to voxel layer.
- Used in various environments globally.
- Suited for real-time collision avoidance.
3- Octomap
Powerful octree implementation for 3D mapping. Can build navigation and collision avoidance on top of Octomap’s octree.
-
Memory-efficient solution for real-time collision avoidance applications.
-
Navigation with stvl and octomap
-
use React To build the website
-
Use Ros bridge to link web site with ROS
sudo apt-get install ros-<rosdistro>-rosbridge-server