Skip to content

bobcorn/robotic-cleaner

Repository files navigation

Robotic Cleaner – AI control logic for a smart robotic cleaner

Final task for course "Software Systems Engineering" during my Master's degree at University of Bologna, carried out together with my colleague Marco Boschi using the agile development framework SCRUM.

(A.Y. 2017-2018)

Initial Setup (macOS)

Install the two QActor plug-ins for Eclipse provided by the professor, Gradle and Node.js, then install MongoDB and Mosquitto via HomeBrew by using:

brew install mosquitto
brew install mongodb

Create an Eclipse workspace inside the root of this repository and import the projects it.unibo.finaltask and it.unibo.frontend. Open a terminal inside the it.unibo.finaltask folder and execute:

gradle -b build_ctxFinalSysAnalysis.gradle eclipse

More than one execution of this command may be necessary, in that case open the Build Path configuration and make sure no folders are duplicated. Open the Build Path configuration of it.unibo.frontend and delete all folders from the Source tab. At this point Eclipse should not display any error (some warnings only).

To easily start the many servers, create aliases by appending these lines to the ~/.bash_profile file:

alias mosquitto='/usr/local/opt/mosquitto/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf'
alias mongodb='mongod --dbpath "/my/custom/path/to/mongodb"'

For the second one, make sure to create a folder at the given path.

Install all packages required by Node.js inside folders it.unibo.frontend/nodeCode/frontend, VirtualRobotJS/WebGLScene and VirtualRobotJS/server by using, in each of these, the following command:

npm install

Xcode configuration

Frameworks required to work with MQTT are available via CocoaPods, after install CocoaPods itself, download them by executing inside iss2018 folder the following command:

pod install

Test

Testing is limited to a single part of the project. See it.unibo.finaltask.testing for setup details.

System Startup

  1. Start (in any order)
    • Mosquitto with the alias mosquitto
    • The virtual robot with startRobot.sh
    • MongoDB with the alias mongodb
    • The frontend server with startFrontEnd.sh
  2. Start hardware mocks with ISS 2018 – Mock.app
  3. Start the QActor application by launching the class it.unibo.ctxfinalSysAnalysis in src-gen inside it.unibo.finaltask project

It is now possible to view the virtual robot at http://localhost:8081 and the frontend at http://localhost:3000. By reloading the virtual robot page, the initial scene will be reset (file VirtualRobotJS/WebGLScene/sceneConfig.js). If the application was not in the auto-cleaning phase when the scene has been reloaded, the QActors have automatically reconfigured themselves the restart at the sending of a new Start command.

Commit

Make sure Eclipse doesn't change the .gitignore files by deleting the line .classpath: the .classpath files must NOT be committed since they contain the Build Path configuration, so they have to be configured as specified above. If Eclipse suggests this change in .gitignore, restore the file to the previous version.

Demo

Download demo video

About

AI control logic for a smart robotic cleaner. Final task for course "Software Systems Engineering" during my Master's degree at University of Bologna.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors