Revision 15 as of 2012-11-26 18:19:21

Clear message

Only released in EOL distros:  

nao_robot: nao_driver | nao_msgs

Package Summary

Driver package for the Nao robot, providing access to walking commands, joint angles, and sensor data (odometry, IMU, camera, ...). The most-current version is compatible with the Nao API version 1.6 or newer, connecting to a real or simulated Nao by wrapping Aldebaran Robotics' NaoQI API in Python. This requires the "lib" directory of the Aldebaran SDK to be in your PYTHONPATH environment variable.

nao_robot: nao_driver | nao_msgs

Package Summary

Driver package for the Nao robot, providing access to walking commands, joint angles, and sensor data (odometry, IMU, camera, ...). The most-current version is compatible with the Nao API version 1.6 or newer, connecting to a real or simulated Nao by wrapping Aldebaran Robotics' NaoQI API in Python. This requires the "lib" directory of the Aldebaran SDK to be in your PYTHONPATH environment variable.

nao_robot: nao_bringup | nao_description | nao_driver | nao_msgs | nao_pose

Package Summary

Driver package for the Nao robot, providing access to walking commands, joint angles, and sensor data (odometry, IMU, ...). The most-current version is compatible with the Nao API version 1.12 or newer, connecting to a real or simulated Nao by wrapping Aldebaran Robotics' NaoQI API in Python. This requires the "lib" directory of the Aldebaran Python SDK to be in your PYTHONPATH environment variable. Note that cameras drivers are provided in a separate package (nao_sensors).

nao_robot: nao_apps | nao_bringup | nao_description

Package Summary

Driver package for the Nao robot, providing access to walking commands, joint angles, and sensor data (odometry, IMU, ...). The most-current version is compatible with the Nao API version 1.12 or newer, connecting to a real or simulated Nao by wrapping Aldebaran Robotics' NaoQI API in Python. This requires the "lib" directory of the Aldebaran Python SDK to be in your PYTHONPATH environment variable. Note that cameras drivers are provided in a separate package (nao_sensors).

nao_robot: nao_apps | nao_bringup | nao_description

Package Summary

Driver package for the Nao robot, providing access to walking commands, joint angles, and sensor data (odometry, IMU, ...). The most-current version is compatible with the Nao API version 1.12 or newer, connecting to a real or simulated Nao by wrapping Aldebaran Robotics' NaoQI API in Python. This requires the "lib" directory of the Aldebaran Python SDK to be in your PYTHONPATH environment variable. Note that cameras drivers are provided in a separate package (nao_sensors).

/!\ This package replaces the nao_ctrl package since version 0.4.

To run nao_driver on the actual Nao robot, you need to crosscompile ROS the stacks nao_robot and humanoid_msgs for it first. Alternatively, you can connect remotely without installing anything on your Nao. The current version of nao_driver works with NaoQI version 1.6 or newer (last tested: 1.12.0). Versions 0.1x are still compatible to NaoQI 1.3.

Documentation

To start the Nao driver nodes on the robot, ssh on it, load the ROS setup.bash, and start

roslaunch nao_driver nao_driver.launch

After that you can start the remote nodes from nao_remote and nao_teleop. Note that you can also run everything on your remote machine (PC), connecting to your Nao (or a simulated Nao in Webots) via Aldebaran's API. Export the environment variables NAO_IP and NAO_PORT to point to your robot and launch the driver as above, e.g.:

NAO_IP=192.168.1.10 roslaunch nao_driver nao_driver.launch

This may be slower, but avoids other problems e.g. when the times are not synchronized between your Nao and PC.

See nao_driver/Troubleshooting for common errors and solution.

Nodes

nao_sensors

nao_sensors publishes the Nao's sensors (currently joint state, IMU, and odometry) by wrapping the Aldebaran Python NaoQI API.

Published Topics

torso_odometry (nao_msgs/TorsoOdometry)
  • Basic odometry of Nao's torso (6D)
torso_imu (nao_msgs/TorsoIMU)
  • Raw and filtered data from Nao's internal IMU
joint_states (sensor_msgs/JointState)
  • Measured state of all joints of Nao

nao_walker

nao_walker provides teleoperation with an omnidirectional walk by wrapping the Aldebaran Python NaoQI API. Accessing Nao's speech synthesis is also possible with the topic speech.

Subscribed Topics

cmd_vel (geometry_msgs/Twist)
  • Omnidirectional velocity (x, y, and theta) for the walking engine
motion_command_btn (nao_msgs/MotionCommandBtn)
  • Removed in v0.4: to execute fixed movements use the more general joint angle control in nao_controller or fixed poses from pose_manager (in nao_remote) instead
head_angles (nao_msgs/HeadAngles)
  • Removed in v0.4: use joint angles control in nao_controller instead
speech (std_msgs/String)
  • Text to be said over Nao's speech synthesis

Parameters

~step_frequency (double, default: 0.5)
  • Maximum fraction of Nao's step frequency to be used when walking (between 0 and 1). This controls how fast (and stable) Nao is walking.
~use_walk_pose (boolean, default: False)
  • Slowly move from init pose to walk pose before walking to avoid toppling over backwards (might improve stability for naoqi versions >= 1.10.10, not tested for other versions)
~enable_foot_contact_protection (boolean)
  • Enable or disable foot contact protection in robot's motion configuration. If this parameter is not specified, the current setting will not be changed.

nao_controller

Controls the Nao's joints either with messages (non-blocking) or with an actionlib interface (blocking, using SimpleActionServer).

Action Goal

joint_trajectory (nao_msgs/JointTrajectoryGoal)
  • Executes a given joint angle trajectory over time (multiple keypoints possible)
joint_stiffness_trajectory (nao_msgs/JointTrajectoryGoal)
  • Executes a given joint stiffness trajectory over time
joint_angles_action (nao_msgs/JointAnglesWithSpeedGoal)
  • Executes a give joint angle trajectory as one goal keypoint with relative joint speed

Subscribed Topics

joint_angles (nao_msgs/JointAnglesWithSpeed)
  • Joint Angle control with relative speed (non-blocking)
joint_stiffness (sensor_msgs/JointState)
  • Sets stiffness of a set of joints with effort between 0 and 1 (non-blocking)

Services

body_stiffness/[enable/disable] (std_srvs/Empty)
  • Enable / disable the stiffness of the whole body

nao_tactile

Publishes sensor data of Nao's tactile sensors and bumpers. A message is sent whenever the state of the touch sensors or bumpers change, and the full state (pressed / touched or not) is sent.

Published Topics

tactile touch (nao_msgs/TactileTouch)
  • Contains information about which tactile button on Nao's head was touched
bumper (nao_msgs/Bumper)
  • Contains information about which bumper (left or right) was triggered.

nao_diagnostic_updater

This script collects diagnostic information on a Nao robot and publishes the information as DiagnosticArray messages (last tested with NaoQI 1.10.52). CPU temperature and network status will only be available if the script runs directly on the robot.

Published Topics

diagnostics (diagnostic_msgs/DiagnosticArray)
  • Dignostic messages

nao_camera

nao_camera publishes Nao's camera image by wrapping the Aldebaran Python NaoQI API.

Published Topics

image_raw (sensor_msgs/Image)
  • Image stream (by default bgr8 encoding)
camera_info (sensor_msgs/CameraInfo)

nao_footsteps

nao_footsteps handles footsteps meant to be executed on the NAO robot. It offers a topic and a service to execute footsteps on the NAO robot, as well as a service to clip footsteps which can be afterwards performed by the NAO robot.

Subscribed Topics

footstep (humanoid_nav_msgs/StepTarget)
  • Sends a footstep command to the NAO robot.

Services

footstep_srv (humanoid_nav_msgs/StepTargetService)
  • Sends a footstep command to the NAO robot. The service blocks until the footstep has been executed.
clip_footstep_srv (humanoid_nav_msgs/ClipFootstep)
  • Clips a footstep into the range executable by the NAO robot.

nao_behaviors

nao_behaviors allows you to query and execute pre-recorded actions on the NAO. Note a node may only execute one behaviour at a time. You can use choregraphe to generate behaviors (Box libraries->Templates->Animation).

Action Goal

nao_behaviors/run_behavior (nao_msgs/RunBehaviorGoal)
  • Executes an already installed behavior

Services

nao_behaviors/get_installed_behaviors (nao_msgs/GetInstalledBehaviors)
  • Returns a list of the installed behaviors on the robot

nao_leds

nao_leds can control all the LEDs on the NAO. It also allows to activate a customazible blinking behavior.

Action Goal

nao_leds/blink (nao_msgs/BlinkGoal)
  • NAO will blink with a color chosen at random from colors, the duration of the actual blink is determined by blink_duration and the blinking rate is assumed to be normal with mean blink_rate_mean and standard deviation blink_rate_sd. The background color while the robot is not blinking is set to bg_color. This behavior runs until either a new BlinkGoal is sent or the current goal is cancelled.

Published Topics

nao_leds/fade_rgb (nao_msgs/FadeRGB)
  • Set the leds represented by led_name to color. Transisition lasts for fade_duration. For more information about valid names refer to the NAOqi documentation.