-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Been here before? Great! See the sidebar for some quick links to the major wiki pages.
If not, have a read below to get familiar with this project.
Release | Date |
---|---|
alpha | 15 August 2014 |
v1.0 | 30 August 2014 |
This page aims to introduce the major details of this project to any newcomer. This guide assumes familiarity with ROS. Please note that this project is built for ROS Indigo and is tested on Ubuntu 14.04.
Before contributing to this project please familiarise yourself with the Git Workflow Guide, Coding Style Guides and the Quality Assurance procedures for this project.
To quickly get started with this project follow these instructions:
- Follow the instructions on the Git Workflow Guide to clone this repo.
- Update your ROS_PACKAGE_PATH to point towards this project. Run
export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH
from within the SE306-ROS directory. - Run
./scripts/build.sh
in the SE306-ROS/elderly_care_simulation directory. - Run
./scripts/run.sh
in the same directory as step 2. Note: This step may ask you to install project dependencies.
Done! This project should now run and you should see stage and rqt_console appear with the project running.
Use the following instructions to build and run the test suites included in the elderly_care_simulation
package.
$ roscd elderly_care_simulation
$ ./scripts/tests_build.sh
$ ./scripts/tests_run.sh
Currently all development is occurring on the develop branch. There is a stable final version on the master branch. At this release stage there are eleven robots in our world all with individualised functionalities.
The resident is the heart and soul of this project and the world revolves around them. The resident moves around the house and will follow a daily schedule. The resident also can become ill or very ill requiring immediate assistant from the health care robots.
There are various robot visitors; a caregiver, a caregiver (feeder), a friend and a relative.
There are various robot assistants; a medication robot, a chef robot, a companionship resident, an entertainment robot.
As well as this, there is one doctor and one nurse robot.
The role of the scheduler is to receive and assign tasks to each individual robots. It has a default scheduled list to mimic the daily events that would normally be carried out throughout the day by the elders. Scheduler is also responsible to keep track of number of concurrent events and make sure certain tasks do not collide (e.g. Showering and eating, sleeping and walking, etc.). External events sent by resident (through Diceroller) or from the GUI event injection panel will also be handled and placed into the correct position within the event queue.
Navigation is performed via service calls to a PathServer node. The PathService provides the service to find intermediary points from any two locations such that the robot will not attempt to navigate through any wall. These points can then be followed. However, all this functionality is abstracted into the robot superclass and any subclass only needs to call goToLocation() with their desired location.
The robots velocities are defined in the currentVelocity
variable, however, except where extremely necessary direct manipulation of this variable should be avoided. Once your desired location is set, just call updateCurrentVelocity() at the end of each loop of the main loop. This will handle all navigation for the robot.
In addition to this the robots provide the startSpinning() and stopSpinning() functionality for a quick way to show behaviour.
- Home
- Project Plan
- Project Design
- Project Documentation
- Administration
- Weekly and Demo Presentations