# NaoLolaClient ## Node Description The NaoLolaClient node provides a ROS2 interface to communicate with the NAO robot's LoLa (Low Level Abstraction) middleware. It continuously receives sensor data from the robot and sends command data to control the robot's actuators, LEDs, and sonar. Additionally, it can optionally publish standard ROS message types (sensor_msgs/Imu and sensor_msgs/JointState) for better integration with the ROS ecosystem. This is the recommended replacement for the deprecated `nao_lola` package. ## Publishers | Topic | Message Type | Description | |-------|-------------|-------------| | `sensors/accelerometer` | `nao_lola_sensor_msgs/msg/Accelerometer` | Publishes accelerometer sensor data from the NAO robot | | `sensors/angle` | `nao_lola_sensor_msgs/msg/Angle` | Publishes angle sensor data from the NAO robot | | `sensors/buttons` | `nao_lola_sensor_msgs/msg/Buttons` | Publishes button state data from the NAO robot | | `sensors/fsr` | `nao_lola_sensor_msgs/msg/FSR` | Publishes force-sensitive resistor (foot pressure) data | | `sensors/gyroscope` | `nao_lola_sensor_msgs/msg/Gyroscope` | Publishes gyroscope sensor data from the NAO robot | | `sensors/joint_positions` | `nao_lola_sensor_msgs/msg/JointPositions` | Publishes current joint position data | | `sensors/joint_stiffnesses` | `nao_lola_sensor_msgs/msg/JointStiffnesses` | Publishes current joint stiffness data | | `sensors/joint_temperatures` | `nao_lola_sensor_msgs/msg/JointTemperatures` | Publishes joint temperature data | | `sensors/joint_currents` | `nao_lola_sensor_msgs/msg/JointCurrents` | Publishes joint current consumption data | | `sensors/joint_statuses` | `nao_lola_sensor_msgs/msg/JointStatuses` | Publishes joint status information | | `sensors/sonar` | `nao_lola_sensor_msgs/msg/Sonar` | Publishes sonar distance sensor data | | `sensors/touch` | `nao_lola_sensor_msgs/msg/Touch` | Publishes touch sensor data | | `sensors/battery` | `nao_lola_sensor_msgs/msg/Battery` | Publishes battery status information | | `sensors/robot_config` | `nao_lola_sensor_msgs/msg/RobotConfig` | Publishes robot configuration information | | `imu` | `sensor_msgs/msg/Imu` | Publishes IMU data (accelerometer + gyroscope) in standard ROS format (published only if `publish_imu` parameter is true) | | `joint_states` | `sensor_msgs/msg/JointState` | Publishes joint states in standard ROS format (published only if `publish_joint_states` parameter is true) | ## Subscribers | Topic | Message Type | Description | |-------|-------------|-------------| | `effectors/joint_positions` | `nao_lola_command_msgs/msg/JointPositions` | Receives desired joint position commands | | `effectors/joint_stiffnesses` | `nao_lola_command_msgs/msg/JointStiffnesses` | Receives desired joint stiffness commands | | `effectors/chest_led` | `nao_lola_command_msgs/msg/ChestLed` | Receives chest LED color commands | | `effectors/left_ear_leds` | `nao_lola_command_msgs/msg/LeftEarLeds` | Receives left ear LED commands | | `effectors/right_ear_leds` | `nao_lola_command_msgs/msg/RightEarLeds` | Receives right ear LED commands | | `effectors/left_eye_leds` | `nao_lola_command_msgs/msg/LeftEyeLeds` | Receives left eye LED commands | | `effectors/right_eye_leds` | `nao_lola_command_msgs/msg/RightEyeLeds` | Receives right eye LED commands | | `effectors/left_foot_led` | `nao_lola_command_msgs/msg/LeftFootLed` | Receives left foot LED commands | | `effectors/right_foot_led` | `nao_lola_command_msgs/msg/RightFootLed` | Receives right foot LED commands | | `effectors/head_leds` | `nao_lola_command_msgs/msg/HeadLeds` | Receives head LED commands | | `effectors/sonar_usage` | `nao_lola_command_msgs/msg/SonarUsage` | Receives sonar usage configuration | ## Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `publish_joint_states` | bool | `true` | Whether to convert nao_lola sensor_msgs/JointPositions to sensor_msgs/JointState and publish it on topic 'joint_states'. This parameter is read-only and must be set at node startup. | | `publish_imu` | bool | `true` | Whether to convert nao_lola sensor_msgs/Accelerometer and nao_lola_sensor_msgs/Gyroscope to sensor_msgs/Imu and publish it on topic 'imu'. This parameter is read-only and must be set at node startup. | ## Example Usage To run the node with default parameters: ```bash ros2 run nao_lola_client nao_lola_client ``` To run the node as a component: ```bash ros2 component standalone nao_lola_client NaoLolaClient ``` To run with custom parameters: ```bash ros2 run nao_lola_client nao_lola_client --ros-args -p publish_joint_states:=false -p publish_imu:=false ```