ROS2 package that develops wheeled mobile robot for semantic teleoperation
The main purpose of this package is to service semantic commands such as 'turn left' and 'go to table'. The topology that extracted at 5Hz will make it possible. This topology basically represents the spatial structure and is ready to add things of interest. The robot can use it to guide teleoperation user or make decisions.
The following is a simple demo video: This robot is moving from the hallway to the room. Black is the movable area detected by the LiDAR. Spatial structure is represented by graph. Yellow nodes are intersections, and red nodes are ends. The edges represent movability.
Mobile robots should be able to explore the environment itself. This algorithm helps the robot to recognize the spatial structure of the environment. It receives observations and returns a graph. This graph is already a topology that shows movability, but the information quality can be further improved by adding things of interest.
Mobile robots should be able to remember the environment. Information will be volatilized without the process of connecting local topologies. However, the spatial structure is difficult to estimate because it has coordinates even though there is no substance. As a result of the test #7, intersection clustering approach was adopted. This approach detects probabilistically significant intersections.
One of the important features of the spatial structure is the intersection. This package can recognize intersections as 10Hz. It can be a criterion for the robot to determine semantic direction. For a robot with an intersection in front of it, the right is the edge vector that extends to the right from the intersection.
ros2 launch waffle wakeup.launch.py
ros2 launch waffle play.launch.py
ros2 run teleop_twist_keyboard teleop_twist_keyboard
ros2 run waffle_topology generate_topology
This package is being developed with modified Turtlebot3. See issue #8 for details.
git clone https://github.com/TypingCat/waffle.git
cd waffle
colcon build --symlink-install
source install/local_setup.bash