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 1: Starting navigation

To start navigation correctly,

  1. Plug the mbed USB into the laptop. Ensure it is USB 0 by running???? (NICO?)
  2. Check the LIDAR is plugged in.
  3. Flick the brakes to the green tick.
  4. Check the red emergency stop on DE NIRO is not pressed by rotating the button.

5. Once all the above checks have been done, run roslaunch navigation navigation.launch 4. Reset the mbed rostopic pub /reset_mbed std_msgs/Empty

This should open RViz, with the following image.

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

  1. Listening: Wait for a voice command from the user. These are usually in the form, ‘fetch me…’ or ‘give me…’.
  2. Remembering Face: Wait till a face is recognised then store the face for later on.
  3. Seeking User: Seek to match the face remembered with the person at the home location.
  4. 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.