This package provides a lot of functions for robot operations in both real and stage environment.
The main functions list:
- Autonomous navigation
- Autonomous mapping
- Self-localization
- Autonomous obstacle avoidance
- Dynamic path planning
First, we need to download the packages. Run:
cd docs/scripts/
bash download.sh
Second, we build the packages.
# change to your catkin workspace
cd your-catkin-workspace
catkin_make_isolated
The package list in this repository.
micvision_exploration
: to explore the whole map of the unknown environment.
micvision_localization
: to localize the robot in a map.
micvision_patroller
: to patrol at the specified location.
This package uses the stage
to simulate the real environment, you can use the
stage_ros
from the ROS or use the stage_ros
that we provide. The difference
between these two versions is, the laser scan data in stage_ros
provided by
ROS is very accurate while the data provided by us is corrupted with noise.
The package also has two parts: mapping
and navigation
.
usage:
# willow world
roslaunch micvision_sim willow-mapping-sim.launch
# or use maze world below
# roslaunch micvision_sim maze-mapping-sim.launch
# then, in another terminal
rosservice call /StartExploration
# we also provide other commands to control the robot
# Stop the exploration action
rosservice call /StopExploration
# Stop the robot
rosservice call /Stop
# Pause the robot
rosservice call /Pause
usage:
# willow world
roslaunch micvision_sim willow-navigation-sim.launch
# or use maze world instead
# roslaunch micvision_sim maze-navigation-sim.launch
# find the location of the robot
rosservice call /StartLocalization
# click on the map using rviz, and the robot will move to it
usage:
# run in the navigation mode
roslaunch micvision_sim willow-navigation-sim.launch
# using the RVIZ button `Publish Point` to assign some location to patroller
# Than start patroller
rosservice call /StartPatroller
# or stop patroller
rosservice call /StopPatroller
# or reset the patroller
rosservice call /ResetPatroller
This package provides the real world & robot for mapping.
Click the link below to view a video showing mapping:
You can use it with turtlebot2(kobuki)
or turtlebot3
.
Usage:
# turtlebot2
roslaunch micvision_mapping mapping_turtlebot2.launch
# turtlebot3
roslaunch micvision_mapping mapping_turtlebot3.launch
# other commands please refer to the micvision_sim mapping function
This package provide the real world and robot for autonomous navigation and self-localization.
Click the link below to view a video showing self-localization and autonomous navigation:
You can use it with turtlebot2(kobuki)
or turtlebot3
.
Usage:
# turtlebot2
roslaunch micvision_navigation navigation_turtlebot2.launch
# turtlebot3
roslaunch micvision_navigation navigation_turtlebot3.launch
# other commands please refer to the micvision_sim navigation function