Package Overview

teleop_handler is a tabpage handler for the touchosc_bridge package. It provides a basic teleoperation example that you can run out of the box on your robot, or modify for your own purposes.

This package includes layouts for both iPad and iPhone-sized devices in the teleop_handler/layouts directory. When launched, the node will respond to incoming OSC messages from both sized layouts.

Video Demo

Screenshots

iPod Sized

Teleop Layout for iPod

iPad Sized

Teleop Layout for iPad

Features

Some of the main features of the teleop_handler. These features may be seen in the above YouTube video.

  • Control "Master"
    • When the node starts, all devices are "reset" to a default status (joysticks center on screen, control button deselects.
    • When a client touches the "Control" button in the center of the screen, then control privileges are set to that device, and all other devices are notified of the new master client.
    • If the client closes, or the tabpage switches, then "master" status will be lost.
  • Display sync
    • All active clients (for a discussion of what constitutes "active", check the touchosc_bridge documentation) will synchronize their displays to the master.

Configuration

Example launch and configuration files are included for the teleop_handler in it's package directory. Also, an example teleop.yaml file is included below. This file should be loaded to the Parameter Server using your configured .launch file.

teleop:
  # Required parameters
  pkg: teleop_handler
  class: 'teleoptabpage/TeleopTabpageHandler'
  tabpage_aliases: [ 'teleop-ipad', 'teleop-ipod' ]
  
  max_vx: 0.8
  max_vy: 0.8
  max_vw: 0.4
  max_run_vx: 1.2
  max_run_vy: 1.2
  max_run_vw: 1.0
  min_freq: 5

More details on configuring launch files for touchosc_bridge can be found in the rososc_tutorials and in the touchosc_bridge package documentation.

<node pkg="touchosc_bridge" type="touchosc_bridge.py" name="touchosc_bridge">
    <param name="osc_name" value="ROS Teleop"/>
    <param name="port" value="9000" />
    <param name="print_fallback" value="False"/>
    <param name="load_default" value="False"/>
    <rosparam param="handlers">[teleop]</rosparam>
    <rosparam command="load" file="$(find teleop_handler)/cfg/teleop.yaml" />
</node>

TeleopTabpageHandler

Tabpage Handler to be used with touchosc_bridge

Published Topics

cmd_vel (geometry_msgs/Twist)
  • A stream of velocity commands meant for execution by a mobile base

Parameters

~<tabpage>/max_vx (float32, default: 0.6)
  • Maximum x velocity
~<tabpage>/max_vy (float32, default: 0.6)
  • Maximum y velocity
~<tabpage>/max_vw (float32, default: 0.8)
  • Maximum rotational velocity
~<tabpage>/max_run_vx (float32, default: 1.0)
  • Maximum x velocity
~<tabpage>/max_run_vy (float32, default: 1.0)
  • Maximum y velocity
~<tabpage>/max_run_vw (float32, default: 1.0)
  • Maximum rotational velocity
~<tabpage>/max_freq (float32, default: 10.0})
  • Minimum publish frequency on cmd_vel

Wiki: teleop_handler (last edited 2011-12-21 17:59:53 by MichaelCarroll)