This ROS project was an attempt to implement a number of control laws which were introduced in the following papers:
- Semi-autonomous Navigation of a Robotic Wheelchair
- Corridor following by Mobile Robots Equipped with Panoramic Cameras
- Wall-following controllers for sonar-based mobile robots
Authors attempted to find a stable solution for an ideal environment.
It is clear that there are some errors and limitations based on the properties they defined in their environmental layout.
For instance, these papers have not mentioned or proposed any conditional control law for situations like crashing into a wall,
so I tried to add a behaviour to the system in situations like that. I tried to fix it by adding a condition the system.
Now if we are headed to a wall and the system detect which way has the longest empty space and robot rotates towards that way.
In this project, I tried to implement what were possible in ROS envronment. For testing these control laws under different circumstances,
I designed the following envrionment to see how the robot behaves.
Operating System: Ubuntu 14.04.1 LTS
Copy the folders in your project files(i.e. ~/catkin_ws/src/), and then you might need to do the following:
$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd comp6912_project_world/launch
If above steps are done successfully, then:
$ roslaunch comp6912_project_world all.launch
Now you should see the world envrionment being launched and the last step is to run one of the three scripts available in comp6912_project
.
For instance: (in a new terminal)
$ rosrun comp6912_project pass_corridor.py
[This project was part of my course project of the COMP 6912 - Autonomous Robotics at MUN.ca]
Happy coding :)