Only released in EOL distros:  

nao_common: nao_description | nao_remote | nao_teleop

Package Summary

Teleoperation (gamepad or joystick) for the Nao humanoid

nao_extras: nao_path_follower | nao_teleop

Package Summary

Teleoperation (gamepad or joystick) for the Nao humanoid

nao_extras: nao_path_follower | nao_teleop

Package Summary

Teleoperation (gamepad or joystick) for the Nao humanoid

nao_extras: nao_path_follower | nao_teleop

Package Summary

Teleoperation (gamepad or joystick) for the Nao humanoid

nao_extras: nao_path_follower | nao_teleop

Package Summary

Teleoperation (gamepad or joystick) for the Nao humanoid

Starting Teleoperation

Start all the needed remote teleoperation nodes by running

roslaunch nao_teleop teleop_joy.launch

on the remote machine (e.g. your PC).

Then start naoqi_driver either on your local machine or on the Nao (nao_walker and nao_controller are required by this node). By default, gamepad teleoperation starts paused. Just hit the "toggle control button" (#8 by default or #9 on PS3 controller) and start walking Nao around by setting the velocities for the OmniWalk engine with the two sticks on the gamepad (see below).

Teleoperating Nao

You can teleoperate Nao using any joystick or gamepad configured in ROS with omnidirectional velocities, very similar to pr2_teleop. The following commands are currently implemented (tested on a Logitech Cordless Rumblepad II, where the button numbering should be increased by one as it starts with "1"):

  • Right analog stick: translational velocity
  • Left analog stick (left / right): rotational velocity (turning)
  • Button 0: Standing up ("Init pose")
  • Button 5: Toggle head movement: hold to control the head directly with the analog sticks
  • Button 8: Toggle gampad control on / off. Enabling gamepad control will also enable stiffness on the Nao.
  • Button 9: Go to safe "crouching" / "squatting" position and remove joint stiffness (Enable stiffness again by toggling control off and on again)

Initially, gamepad control is off and needs to be enabled with button 8. When you're done you can either shut down all nodes or toggle gamepad control off, Nao will remain standing in its current state.

Below is the default button placement on a Logitech Cordless Rumblepad II. The button / behavior mapping can be changed with parameters.

  • nao_teleop.png

Node API

teleop_nao_joy

Teleoperates Nao with a Joystick / Gamepad

Subscribed Topics

joy (joy/Joy)
  • Input from joystick driver

Published Topics

cmd_vel (geometry_msgs/Twist)
  • Omnidirectional walking velocity
motion_command_btn (nao_ctrl/MotionCommandBtn)
  • discrete motion actions (e.g. "sit down")
head_angles (nao_ctrl/HeadAngles)
  • desired joint angles for the head
speech (std_msgs/String)
  • Status messages to be said over Nao's speech synthesis (e.g. "Gamepad enabled")

Parameters

~axis_* (int)
  • axis_... parameters (e.g. axis_x) enable you to adjust the axes used to control Nao's motion to your preference or hardware setting.
~btn_* (int)
  • btn_... parameters (e.g. `btn_enable_control) enable you to adjust the buttons used to control Nao to your preference or hardware setting.
~max_vx (double, default: 1.0)
  • Maximum fraction of x velocity to be used when teleoperating (between 0 and 1). This controls Nao's step length.
~max_vy (double, default: 1.0)
  • Maximum fraction of y velocity to be used when teleoperating (between 0 and 1). This controls Nao's step length.
~max_vw (double, default: 0.5)
  • Maximum fraction of rotational velocity to be used when teleoperating (between 0 and 1). This controls Nao's step length when turning.

Wiki: nao_teleop (last edited 2016-01-15 17:24:44 by NataliaLyubova)