About

The rovio_ctrl package contains nodes to control the movement of the Rovio. This includes control the movement of the base itself, as well as controlling the head (camera) position. Furthermore, joystick teleoperation is provided via the rovio_teleop node.

Nodes

rovio_move

rovio_move controls the motors of the Rovio.

Subscribed Topics

man_drv (rovio_shared/man_drv)
  • Control the movement of the Rovio using movement and speed commands as defined by the Rovio API.
cmd_vel (geometry_msgs/Twist)
  • Control the movement of the Rovio using a geometry_msgs/Twist message. A positive angular-z value corresponds to a clockwise rotation. Movement along linear-y corresponds to moving left/right and movement along linear-x corresponds to moving forwards/backwards.

Parameters

/rovio_shared/host (string)
  • Hostname used to communicate with the Rovio.
/rovio_shared/user (string)
  • Username used to authenticate with the Rovio.
/rovio_shared/pass (string)
  • Password used to authenticate with the Rovio.

rovio_head

rovio_head publishes the position of the head as well as allows for head position control.

Published Topics

head_sensor (std_msgs/String)
  • Current head position of the Rovio {"HEAD_UP", "HEAD_MIDDLE", "HEAD_DOWN"}.

Services

head_ctrl (rovio_shared/head_ctrl)
  • Change the position of the Rovio's head.

Parameters

/rovio_shared/host (string)
  • Hostname used to communicate with the Rovio.
/rovio_shared/user (string)
  • Username used to authenticate with the Rovio.
/rovio_shared/pass (string)
  • Password used to authenticate with the Rovio.

rovio_teleop

rovio_teleop can control the motors, head, and audio device of a Rovio using a joystick. This node listens to a joy topic and sends messages to the cmd_vel topic in the rovio_move node, head_ctrl service in the rovio_head node, and wav_play service in the rovio_audio node. Buttons 0, 1, and 2 of a joystick control the head, buttons 4, 5, 6, and 7 of a joystick play audio files on the Rovio, and the left and right joysticks control the movement of the Rovio. An example gamepad is shown to the right with its buttons labeled. rovio_teleop_joy.gif

Subscribed Topics

joy (sensor_msgs/Joy)
  • Listens for joystick commands.

Published Topics

cmd_vel (geometry_msgs/Twist)
  • Control the movement of the Rovio using the left and right joysticks.

Services Called

head_ctrl (rovio_ctrl/head_ctrl)
  • Change the position of the Rovio's head using buttons 0, 1, or 2 of a joystick.
wav_play (rovio_shared/wav_play)
  • Play one of four predefined .wav files using buttons 4, 5, 6, or 7 of a joystick.

Parameters

/rovio_shared/rovio_wav (string)
  • Absolute path to the wav folder within the rovio_av package. This is used when playing audio files using buttons 4, 5, 6, or 7 of a joystick.

Installation

To install the rovio stack, you can choose to either install from source, or from the Ubuntu package:

Source

To install from source, execute the following:

  •    1 cd /path/to/your/ros/stacks
       2 git clone https://github.com/WPI-RAIL/rovio.git
       3 roscd rovio
       4 rosdep install rovio
       5 rosmake rovio
    

Ubuntu Package

To install the Ubuntu package, execute the following:

  • sudo apt-get install ros-fuerte-rovio

Startup

The rovio_ctrl package contains a rovio_ctrl.launch file which should be edited with the hostname, username and password to login to your Rovio. This file launches an instance of the rovio_move and rovio_head nodes. To launch these nodes, the following command can be used:

  • roslaunch rovio_ctrl rovio_ctrl.launch

The rovio_ctrl package also contains a rovio_teleop.launch file which should be edited with the hostname, username and password to login to your Rovio as well as absolute path to the wav folder within the rovio_av package. This file launches an instance of the rovio_move, rovio_head, rovio_audio and rovio_teleop nodes. To launch these nodes, the following command can be used:

  • roslaunch rovio_ctrl rovio_teleop.launch

You should now be able to teleoperate your Rovio with a joystick.

Support

Please send bug reports to the GitHub Issue Tracker. Feel free to contact me at any point with questions and comments.


wpi.png

rail.png

Wiki: rovio_ctrl (last edited 2012-12-29 21:22:58 by Russell Toris)