A rudimentary Visual C++ control software for commanding the mobile robots (Itchy & Scratchy) was previously implemented by an MSc student. A base station (laptop) runs a master program and communicates via WiFi to a slave program running on the robot's computer. The control software had some bugs in the speed and position control systems. Also, the IR sensor readings were noisy and varied when lighting conditions were changed. The P,I,D control parameters and sliding median filters needed adjustment. Since some of the robot hardware was upgraded, corresponding changes were made to the data acquisition sections of the code. In addition to this, autonomous navigation for obstacle avoidance and path planning was included.
Matlab
Initially, we wanted the robots to be entirely controlled via Matlab. Hence, all of the previous Visual C++ code was converted to Matlab. Matlab toolboxes such as data acquisition, control system, and instrument control were used to implement data acquisition and serial communication. Matlab GUIDE was use to create a graphical user interface. However, during testing and tweaking real-time control was not achieved using Matlab. Hence, Visual C++ was used for real-time control. The screenshot below (Fig. 1) shows the test program created in Matlab.
Fig. 1: Screenshot of Matlab Program
Visual C++
Bugs in the speed and position control system were fixed by adjusting the sliding median filters and the P, I,D control parameters. Also, limits were placed on parameter values for smoother operation and to avoid hardware failure. The autonomous navigation system was first developed in a Matlab based robot simulator and then exported to Visual C++ for real-time operation. Screenshots of the Visual C++ robot Master (Multirobot Remote Controller) and Slave programs are shown below.
The multirobot remote controller program is used to select robots for the task and choose whether manual or autonomous control is required. The position of robots in the environment is displayed on the screen.
The slave program runs on the robot computer and executes control based on commands received from the remote controller and the robot's sensors. A number of tabs display the sensor readings and relevant control parameters. By using Windows Remote Desktop connection, the slave program can be viewed on the base station computer. In Fig. 4, the third block of the control tab displays fused state data. Here, sensor fusion is performed on compass and odometry data using simple binary selection, weighted combination, or the Kalman filter.
Fig 2: Screenshot of master (multirobot remote controller) program.
Fig 3: Main slave program
Fig 4: Control tab of slave program
Fig 5: Reactive control tab of slave program
Fig 6: Map tab of slave program
Videos of Robots
For more details on this project refer to the following:
Journal Paper:
Chand, P., and Carnegie, D. A. Development of a Navigation System for Heterogeneous Mobile Robots. International Journal of Intelligent Systems Technologies and Applications, 2011, 10(3), 250-278.
Conference Proceedings Paper:
Chand, P. and Carnegie, D. A. Reactive Control of a Tricycle Mobile Robot. In Proceedings of the Twelfth Electronics New Zealand Conference, 2005, pp. 129 – 134, Manukau, New Zealand. Available here