nao_ctrl is replaced by nao_driver, now in the nao_robot stack. Please see the documentation there for the latest updates.

To run nao_ctrl on the actual Nao robot, you need to crosscompile ROS for it first. Alternatively, you can connect remotely without installing anything on your Nao. The current version of nao_ctrl works with NaoQI version 1.6 or newer. Versions 0.1x are still compatible to NaoQI 1.3.

Documentation

To start the teleoperation on the Nao, ssh on it and run:

cd ~/naoros/ros/nao_ctrl/scripts
source naoros.env
./nao_walker.py

The sensor reading node is started with:

./nao_sensors.py

The control and sensor nodes should then connect to the running remote nodes. 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. Just run

./nao_walker --pip=ROBOT_IP --pport=NAOQI_PORT &
./nao_sensors --pip=ROBOT_IP --pport=NAOQI_PORT

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

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)
  • discrete motion actions (e.g. "sit down", "stand up")
head_angles (nao_msgs/HeadAngles)
  • desired joint angles for the head
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.
~max_head_speed (double, default: 0.2)
  • Maximum fraction of Nao's speed of changing head angles to be used for the head_angles topic (between 0 and 1).
~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_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.

Wiki: nao_ctrl (last edited 2011-11-25 13:01:51 by ArminHornung)