ROS package for patrolling an indoor environment with a mobile robot
This package is an experiment to use a topological map ontology for controling a robot using ROS. The ontology consists of an indoor environment with multiple rooms and a mobile robot. You can get to know more about the detatils of the source code using the provided documentation for this rospackage.
The robot starts in room E and by scanning the provided markers, it receives the information to build the semantic map, i.e., the name and center position of each room and the connections between them.
Once the semantic map is built, robot has to start moving among the rooms with the policy that each room that has not been visited for a long time, would be selected as the target room. Everytime the robot gets to the target room, it has to scan the room environment as it did for the first time with the markers.
When the robot battery is low, it goes to the charger which is placed in room E, sand wait for some times before to start again with the above behavior.
The simulation software in this package is gazebo. The environment in which the robot should implement the scanning and patrolling behaviors, is shown in the following figures:
The software architucture is represented in the following figure.
The components of this software architucture can be described as follows:
-
This package is based on aRMOR it has to be installed as it is described in the provided link as a pre-condition for running this package.
-
It is also depended on smach, it can be installed using the following commands:
$ sudo apt-get install ros-<distro>-executive-smach*
$ sudo apt-get install ros-<distro>-smach-viewer
-
For image processing part, the aruco_ros and cv_bridge packages have to be cloned and setup.
-
Regarding the navigation part, slam_gmapping and move_base have to be installed .
-
Finally, the MoveIt package has to be installed for robot joints trajectory planning and control.
Once the dependencies are met, the package can be installed as it follows:
$ mkdir -p catkin_ws/src
$ cd catkin_ws/src
$ https://github.com/awaistahir29/EXPROB_Assgnment_02.git
$ cd ..
$ source /opt/ros/<distro>/setup.bash
$ catkin_make
In order to initialize the software architucture along with the finite state machine representation, run the following command.
$ source devel/setup.bash
$ roslaunch assignment2 assignment2.launch
-
System's Features: The robot URDF which is used in this package was able to detect the markers with a camera mounted on a 3 dof manipulator. Additionally, it could find the best path to the target point while it generated the map in an online simultaneous manner.
-
System's Limitations: Battery level is the main limitation in this experiment, although it has chosen high enough to make the robot able to patrol the environment more conveniently.
-
Possible Technical Improvements: The robot could have been designed in such a way that there was a balance between the base and manipulator to avoid swinging in real case scenario. Of course, the ontology part could have been more comprehensive considering the power of PELLET reasoner.
- Awais Tahir
- email: [email protected]