Playing Fetch¶
Connecting to DE NIRO¶
The fetch program requires two computers: one to run navigation and one to run the rest of the program. The ROS core located on DE NIRO will serve as the communications focal point for both laptops.
To connect to DE NIRO, you will need an ethernet or a wireless connection to DE NIRO. The wireless network name is DE NIRO (2.4 / 5 GHz).
Once a connection has been established, to set the ROS_MASTER_URI
to DE NIRO’s core, you will need to run the baxter.sh file in the fezzik-project root folder.
On both laptops, open the baxter.sh
file in the fezzik-project
root folder and change the your_ip
variable to your computer’s IP address.
Note
You can find your computer’s IP address by using the linux ifconfig command. IP address information is indicated next to the inet or ethernet labels.
Next change the ros_version
parameter version of ROS you are using e.g. indigo.
Note
The laptop not running navigation should be using ROS Indigo.
Run the script in the root folder
If successful, you will see a list of topics by typing rostopic list
e.g.
Starting Fetch¶
Computer 2: Starting the brain¶
On the second computer, first plug in the Kinect. Next, launch the brain
$ roslaunch brain brain.launch
This will initialise the robot and put him in the Idle state. When prompted, simply press ‘Enter’ on the keyboard to begin the fetch process.
DE NIRO will then proceed through the following states: listening, remembering face, navigating, grasping, returning, seeking user, offering object.
Of these states, the following require user interaction. Here, DE NIRO will
- Listening: Wait for a voice command from the user. These are usually in the form, ‘fetch me…’ or ‘give me…’.
- Remembering Face: Wait till a face is recognised then store the face for later on.
- Seeking User: Seek to match the face remembered with the person at the home location.
- Offering Object: Hold onto an object until gently pulled by the user.
Upon completion, DE NIRO will enter into an idle state, ready to be activated again with a simple keyboard press.
Note
To successfully build the code, it was required that several component packages could import features from other packages. This was achieved
by adding the path of these files to the PYTHONPATH
. In many of the source files, you will something like following snippet of code.
root_path = "/home/petar/fezzik-project"
sys.path.append(os.path.join(root_path, "src/ros_comms"))
To run the project, the root path will need to be changed for your computers.