naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 2.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver2.git
VCS Type git
VCS Version main
Last Updated 2024-04-30
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS2. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Victor Paléologue
  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver2

This repo defines the naoqi_driver package for ROS2. The driver is in charge of providing bridging capabilities between ROS2 and NAOqiOS.

How it works

The naoqi_driver is a ROS node. It connects to a robot running NAOqi using libQi. To support the audio features, naoqi_driver opens a public endpoint, on a random port by default.

To avoid opening a public endpoint, you would need to disable the audio features by setting the audio argument to false in boot_config.json, and then set qi_listen_url to listen to a local endpoint, e.g. qi_listen_url:=tcp://127.0.0.1:12345.

Installation

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful to display the robot in RViz.

On Ubuntu, install them using:

sudo apt-get install ros-<distro>-naoqi-libqi ros-<distro>-naoqi-libqicore ros-<distro>-naoqi-bridge-msgs ros-<distro>-pepper-meshes ros-<distro>-nao-meshes

Installing from source

In your ROS2 workspace, clone the repo and its dependencies:

cd <ws>/src
git clone https://github.com/ros-naoqi/naoqi_driver2.git
vcs import < naoqi_driver2/dependencies.repos
cd <ws>
rosdep install --from-paths src --ignore-src --rosdistro <distro> -y

To install vcs: sudo apt-get install python3-vcstool

Then build the workspace:

cd <ws>
colcon build --symlink-install

Meshes can only be built on x86(_64) platforms. You can skip them by building with these arguments:

colcon build --packages-skip nao_meshes pepper_meshes

License of the meshes

The source repositories include pepper_meshes2 and nao_meshes2, which require an interactive agreement to be provided. If you agree to their license terms ( CC BY-NC-ND 4.0: pepper_meshes2 LICENSE, nao_meshes2 LICENSE). you may skip the interactive prompt by setting the AGREE_TO_NAO_MESHES_LICENSE and I_AGREE_TO_PEPPER_MESHES_LICENSE environment variables:

I_AGREE_TO_NAO_MESHES_LICENSE=1 I_AGREE_TO_PEPPER_MESHES_LICENSE=1 colcon build --symlink-install

Automated jobs on non-interactive environments (DEBIAN_FRONTEND=noninteractive) defaults to agreeing to the licenses, assuming the author of the job has agreed to the license terms.

Launch

Avoid interference with autonomous life

To have full control of the robot with ROS, you may want to disable autonomous behaviors first:

ssh nao@<robot_host>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

NAOqi 2.8 and lower

The driver can be launched from a remote machine this way:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:0

NAOqi 2.9 and higher

Username and password arguments are required for robots running NAOqi 2.9 or greater:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> nao_username:=nao nao_password:=<robot_password> qi_listen_url:=tcp://0.0.0.0:0

From a Docker container

If you run naoqi_driver from a Docker container with audio features enabled, you must specify the libQi endpoint with, e.g. for port 56000:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:56000

Then you must expose it from the container.

On the robot or on the same machine

If you run the driver directly from the robot (or your machine running a virtual robot), you can omit the options:

ros2 launch naoqi_driver naoqi_driver.launch.py

Check that the node is running correctly

Check that the driver is connected:

ros2 node info /naoqi_driver

Hello, world

Make the robot say hello:

ros2 topic pub --once /speech std_msgs/String "data: hello"

Listen to words

You can setup speech recognition and get one result.

ros2 action send_goal listen naoqi_bridge_msgs/action/Listen "expected: [\"hello\"]
language: \"en\""

Move the head

Check that you can move the head by publishing on /joint_angles:

ros2 topic pub --once /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with ros2 topic echo /joint_angles

Move around

Check that you can move the robot by publishing on cmd_vel to make the robot move:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.785"

Make some room around the robot!

To stop the robot, you must send a new message with linear and angular velocities set to 0:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

Development

Check how to install the driver from source, or use docker compose to get a more reproducible dev environment:

ROS_DISTRO=iron docker compose up dev --build

To get all logs in live and build debuggable binaries, you may build with this command:

colcon build --event-handlers console_direct+ --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug

It works also when running tests:

colcon test --event-handlers console_direct+ --ctest-args tests

Build Status

ROS Distro Binary Status Source Status GitHub Status
Humble ros2-humble-jammy-bin-status-badge ros2-humble-jammy-src-status-badge ros2-humble-jammy
Iron ros2-iron-jammy-bin-status-badge ros2-iron-jammy-src-status-badge ros2-iron-jammy
CHANGELOG

Changelog for package naoqi_driver

2.1.1 (2023-12-05)

  • Drop testing of [foxy]{.title-ref} and [galactic]{.title-ref}
  • README: remove extraneous args in example
  • Update code and instructions about Docker
  • Fix build for humble
  • Improve README about audio service
  • Contributors: Victor Pal

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 2.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver2.git
VCS Type git
VCS Version main
Last Updated 2024-04-30
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS2. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Victor Paléologue
  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver2

This repo defines the naoqi_driver package for ROS2. The driver is in charge of providing bridging capabilities between ROS2 and NAOqiOS.

How it works

The naoqi_driver is a ROS node. It connects to a robot running NAOqi using libQi. To support the audio features, naoqi_driver opens a public endpoint, on a random port by default.

To avoid opening a public endpoint, you would need to disable the audio features by setting the audio argument to false in boot_config.json, and then set qi_listen_url to listen to a local endpoint, e.g. qi_listen_url:=tcp://127.0.0.1:12345.

Installation

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful to display the robot in RViz.

On Ubuntu, install them using:

sudo apt-get install ros-<distro>-naoqi-libqi ros-<distro>-naoqi-libqicore ros-<distro>-naoqi-bridge-msgs ros-<distro>-pepper-meshes ros-<distro>-nao-meshes

Installing from source

In your ROS2 workspace, clone the repo and its dependencies:

cd <ws>/src
git clone https://github.com/ros-naoqi/naoqi_driver2.git
vcs import < naoqi_driver2/dependencies.repos
cd <ws>
rosdep install --from-paths src --ignore-src --rosdistro <distro> -y

To install vcs: sudo apt-get install python3-vcstool

Then build the workspace:

cd <ws>
colcon build --symlink-install

Meshes can only be built on x86(_64) platforms. You can skip them by building with these arguments:

colcon build --packages-skip nao_meshes pepper_meshes

License of the meshes

The source repositories include pepper_meshes2 and nao_meshes2, which require an interactive agreement to be provided. If you agree to their license terms ( CC BY-NC-ND 4.0: pepper_meshes2 LICENSE, nao_meshes2 LICENSE). you may skip the interactive prompt by setting the AGREE_TO_NAO_MESHES_LICENSE and I_AGREE_TO_PEPPER_MESHES_LICENSE environment variables:

I_AGREE_TO_NAO_MESHES_LICENSE=1 I_AGREE_TO_PEPPER_MESHES_LICENSE=1 colcon build --symlink-install

Automated jobs on non-interactive environments (DEBIAN_FRONTEND=noninteractive) defaults to agreeing to the licenses, assuming the author of the job has agreed to the license terms.

Launch

Avoid interference with autonomous life

To have full control of the robot with ROS, you may want to disable autonomous behaviors first:

ssh nao@<robot_host>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

NAOqi 2.8 and lower

The driver can be launched from a remote machine this way:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:0

NAOqi 2.9 and higher

Username and password arguments are required for robots running NAOqi 2.9 or greater:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> nao_username:=nao nao_password:=<robot_password> qi_listen_url:=tcp://0.0.0.0:0

From a Docker container

If you run naoqi_driver from a Docker container with audio features enabled, you must specify the libQi endpoint with, e.g. for port 56000:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:56000

Then you must expose it from the container.

On the robot or on the same machine

If you run the driver directly from the robot (or your machine running a virtual robot), you can omit the options:

ros2 launch naoqi_driver naoqi_driver.launch.py

Check that the node is running correctly

Check that the driver is connected:

ros2 node info /naoqi_driver

Hello, world

Make the robot say hello:

ros2 topic pub --once /speech std_msgs/String "data: hello"

Listen to words

You can setup speech recognition and get one result.

ros2 action send_goal listen naoqi_bridge_msgs/action/Listen "expected: [\"hello\"]
language: \"en\""

Move the head

Check that you can move the head by publishing on /joint_angles:

ros2 topic pub --once /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with ros2 topic echo /joint_angles

Move around

Check that you can move the robot by publishing on cmd_vel to make the robot move:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.785"

Make some room around the robot!

To stop the robot, you must send a new message with linear and angular velocities set to 0:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

Development

Check how to install the driver from source, or use docker compose to get a more reproducible dev environment:

ROS_DISTRO=iron docker compose up dev --build

To get all logs in live and build debuggable binaries, you may build with this command:

colcon build --event-handlers console_direct+ --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug

It works also when running tests:

colcon test --event-handlers console_direct+ --ctest-args tests

Build Status

ROS Distro Binary Status Source Status GitHub Status
Humble ros2-humble-jammy-bin-status-badge ros2-humble-jammy-src-status-badge ros2-humble-jammy
Iron ros2-iron-jammy-bin-status-badge ros2-iron-jammy-src-status-badge ros2-iron-jammy
CHANGELOG

Changelog for package naoqi_driver

2.1.1 (2023-12-05)

  • Drop testing of [foxy]{.title-ref} and [galactic]{.title-ref}
  • README: remove extraneous args in example
  • Update code and instructions about Docker
  • Fix build for humble
  • Improve README about audio service
  • Contributors: Victor Pal

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

No version for distro rolling. Known supported distros are highlighted in the buttons above.

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 0.6.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver.git
VCS Type git
VCS Version master
Last Updated 2024-01-29
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver

This module establishes a ROS bridge with NAOqi. It publishes several sensor data as well as the robot position.

It also enables ROS to call parts of the NAOqi API. It was tested with a pepper robot.

Installation

For noetic, on Ubuntu 20.04:

sudo apt install ros-noetic-naoqi-driver

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful if you try to display the robot in RViz.

How it works

The naoqi_driver module is a NAOqi module that also acts as a ROS node. Ros will automaticaly generate a roscore IP for the robot. Usually, you will start your roscore on your local desktop.

Once connected, normal ROS communication is happening between your robot, running NAOqi OS, and your desktop, running ROS.

Launch

Before launching, you may want to shutdown the autonomous life of the robot with the following process:

ssh nao@<naoip>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

The driver can be launched using the following command:

Be aware that username and password arguments are only required for robots running NAOqi 2.9 or greater.

source <catkin_ws>/devel/setup.bash
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ip> nao_port:=<port> roscore_ip := <ip> network_interface:=<interface> username:=<name> password:=<passwd>

Warning: naoqi_driver for melodic and greater have to be used for robots running NAOqi 2.9 and greater.

Warning: If you have a connection refused error such as this issue when using robots running NAOqi 2.8 and greater, please try to give nao_port:=9503 explicitly.

Check that the node is running correctly

Check that naoqi_driver is connected with :

rosnode info /naoqi_driver

Check that you can move the head by publishing on /joint_angles:

rostopic pub /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {seq: 0, stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with rostopic echo /joint_angles

Check that you can move the robot by publishing on cmd_vel to make the robot move:

rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

Build status

ROS Distro Binary Status Source Status Github Build
Noetic Build Status Build Status ros-noetic-focal
Melodic Build Status Build Status ros-melodic-bionic
Kinetic passing passing ros-kinetic-xenial

Further information

For further information, you can consult the documentation (OUTDATED) here or build it:

cd doc
doxygen Doxyfile
sphinx-build -b html ./source/ ./build/

CHANGELOG

Changelog for package naoqi_driver

0.6.0 (2023-06-30)

  • Support for Pepper running NAOqi 2.9 #157
    • Audio is disabled for now
  • Update README contents and presentation
  • Contributors: Mouad Abrini, Th

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]
      • user [default: nao]
      • password [default: no_password]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 2.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver2.git
VCS Type git
VCS Version main
Last Updated 2024-04-30
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS2. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Victor Paléologue
  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver2

This repo defines the naoqi_driver package for ROS2. The driver is in charge of providing bridging capabilities between ROS2 and NAOqiOS.

How it works

The naoqi_driver is a ROS node. It connects to a robot running NAOqi using libQi. To support the audio features, naoqi_driver opens a public endpoint, on a random port by default.

To avoid opening a public endpoint, you would need to disable the audio features by setting the audio argument to false in boot_config.json, and then set qi_listen_url to listen to a local endpoint, e.g. qi_listen_url:=tcp://127.0.0.1:12345.

Installation

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful to display the robot in RViz.

On Ubuntu, install them using:

sudo apt-get install ros-<distro>-naoqi-libqi ros-<distro>-naoqi-libqicore ros-<distro>-naoqi-bridge-msgs ros-<distro>-pepper-meshes ros-<distro>-nao-meshes

Installing from source

In your ROS2 workspace, clone the repo and its dependencies:

cd <ws>/src
git clone https://github.com/ros-naoqi/naoqi_driver2.git
vcs import < naoqi_driver2/dependencies.repos
cd <ws>
rosdep install --from-paths src --ignore-src --rosdistro <distro> -y

To install vcs: sudo apt-get install python3-vcstool

Then build the workspace:

cd <ws>
colcon build --symlink-install

Meshes can only be built on x86(_64) platforms. You can skip them by building with these arguments:

colcon build --packages-skip nao_meshes pepper_meshes

License of the meshes

The source repositories include pepper_meshes2 and nao_meshes2, which require an interactive agreement to be provided. If you agree to their license terms ( CC BY-NC-ND 4.0: pepper_meshes2 LICENSE, nao_meshes2 LICENSE). you may skip the interactive prompt by setting the AGREE_TO_NAO_MESHES_LICENSE and I_AGREE_TO_PEPPER_MESHES_LICENSE environment variables:

I_AGREE_TO_NAO_MESHES_LICENSE=1 I_AGREE_TO_PEPPER_MESHES_LICENSE=1 colcon build --symlink-install

Automated jobs on non-interactive environments (DEBIAN_FRONTEND=noninteractive) defaults to agreeing to the licenses, assuming the author of the job has agreed to the license terms.

Launch

Avoid interference with autonomous life

To have full control of the robot with ROS, you may want to disable autonomous behaviors first:

ssh nao@<robot_host>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

NAOqi 2.8 and lower

The driver can be launched from a remote machine this way:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:0

NAOqi 2.9 and higher

Username and password arguments are required for robots running NAOqi 2.9 or greater:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> nao_username:=nao nao_password:=<robot_password> qi_listen_url:=tcp://0.0.0.0:0

From a Docker container

If you run naoqi_driver from a Docker container with audio features enabled, you must specify the libQi endpoint with, e.g. for port 56000:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:56000

Then you must expose it from the container.

On the robot or on the same machine

If you run the driver directly from the robot (or your machine running a virtual robot), you can omit the options:

ros2 launch naoqi_driver naoqi_driver.launch.py

Check that the node is running correctly

Check that the driver is connected:

ros2 node info /naoqi_driver

Hello, world

Make the robot say hello:

ros2 topic pub --once /speech std_msgs/String "data: hello"

Listen to words

You can setup speech recognition and get one result.

ros2 action send_goal listen naoqi_bridge_msgs/action/Listen "expected: [\"hello\"]
language: \"en\""

Move the head

Check that you can move the head by publishing on /joint_angles:

ros2 topic pub --once /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with ros2 topic echo /joint_angles

Move around

Check that you can move the robot by publishing on cmd_vel to make the robot move:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.785"

Make some room around the robot!

To stop the robot, you must send a new message with linear and angular velocities set to 0:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

Development

Check how to install the driver from source, or use docker compose to get a more reproducible dev environment:

ROS_DISTRO=iron docker compose up dev --build

To get all logs in live and build debuggable binaries, you may build with this command:

colcon build --event-handlers console_direct+ --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug

It works also when running tests:

colcon test --event-handlers console_direct+ --ctest-args tests

Build Status

ROS Distro Binary Status Source Status GitHub Status
Humble ros2-humble-jammy-bin-status-badge ros2-humble-jammy-src-status-badge ros2-humble-jammy
Iron ros2-iron-jammy-bin-status-badge ros2-iron-jammy-src-status-badge ros2-iron-jammy
CHANGELOG

Changelog for package naoqi_driver

2.1.1 (2023-12-05)

  • Drop testing of [foxy]{.title-ref} and [galactic]{.title-ref}
  • README: remove extraneous args in example
  • Update code and instructions about Docker
  • Fix build for humble
  • Improve README about audio service
  • Contributors: Victor Pal

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 2.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver2.git
VCS Type git
VCS Version main
Last Updated 2024-04-30
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS2. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Victor Paléologue
  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver2

This repo defines the naoqi_driver package for ROS2. The driver is in charge of providing bridging capabilities between ROS2 and NAOqiOS.

How it works

The naoqi_driver is a ROS node. It connects to a robot running NAOqi using libQi. To support the audio features, naoqi_driver opens a public endpoint, on a random port by default.

To avoid opening a public endpoint, you would need to disable the audio features by setting the audio argument to false in boot_config.json, and then set qi_listen_url to listen to a local endpoint, e.g. qi_listen_url:=tcp://127.0.0.1:12345.

Installation

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful to display the robot in RViz.

On Ubuntu, install them using:

sudo apt-get install ros-<distro>-naoqi-libqi ros-<distro>-naoqi-libqicore ros-<distro>-naoqi-bridge-msgs ros-<distro>-pepper-meshes ros-<distro>-nao-meshes

Installing from source

In your ROS2 workspace, clone the repo and its dependencies:

cd <ws>/src
git clone https://github.com/ros-naoqi/naoqi_driver2.git
vcs import < naoqi_driver2/dependencies.repos
cd <ws>
rosdep install --from-paths src --ignore-src --rosdistro <distro> -y

To install vcs: sudo apt-get install python3-vcstool

Then build the workspace:

cd <ws>
colcon build --symlink-install

Meshes can only be built on x86(_64) platforms. You can skip them by building with these arguments:

colcon build --packages-skip nao_meshes pepper_meshes

License of the meshes

The source repositories include pepper_meshes2 and nao_meshes2, which require an interactive agreement to be provided. If you agree to their license terms ( CC BY-NC-ND 4.0: pepper_meshes2 LICENSE, nao_meshes2 LICENSE). you may skip the interactive prompt by setting the AGREE_TO_NAO_MESHES_LICENSE and I_AGREE_TO_PEPPER_MESHES_LICENSE environment variables:

I_AGREE_TO_NAO_MESHES_LICENSE=1 I_AGREE_TO_PEPPER_MESHES_LICENSE=1 colcon build --symlink-install

Automated jobs on non-interactive environments (DEBIAN_FRONTEND=noninteractive) defaults to agreeing to the licenses, assuming the author of the job has agreed to the license terms.

Launch

Avoid interference with autonomous life

To have full control of the robot with ROS, you may want to disable autonomous behaviors first:

ssh nao@<robot_host>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

NAOqi 2.8 and lower

The driver can be launched from a remote machine this way:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:0

NAOqi 2.9 and higher

Username and password arguments are required for robots running NAOqi 2.9 or greater:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> nao_username:=nao nao_password:=<robot_password> qi_listen_url:=tcp://0.0.0.0:0

From a Docker container

If you run naoqi_driver from a Docker container with audio features enabled, you must specify the libQi endpoint with, e.g. for port 56000:

source /opt/ros/<distro>/setup.bash # or source <ws>/install/setup.bash if built from source
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=tcp://0.0.0.0:56000

Then you must expose it from the container.

On the robot or on the same machine

If you run the driver directly from the robot (or your machine running a virtual robot), you can omit the options:

ros2 launch naoqi_driver naoqi_driver.launch.py

Check that the node is running correctly

Check that the driver is connected:

ros2 node info /naoqi_driver

Hello, world

Make the robot say hello:

ros2 topic pub --once /speech std_msgs/String "data: hello"

Listen to words

You can setup speech recognition and get one result.

ros2 action send_goal listen naoqi_bridge_msgs/action/Listen "expected: [\"hello\"]
language: \"en\""

Move the head

Check that you can move the head by publishing on /joint_angles:

ros2 topic pub --once /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with ros2 topic echo /joint_angles

Move around

Check that you can move the robot by publishing on cmd_vel to make the robot move:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.785"

Make some room around the robot!

To stop the robot, you must send a new message with linear and angular velocities set to 0:

ros2 topic pub --once /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

Development

Check how to install the driver from source, or use docker compose to get a more reproducible dev environment:

ROS_DISTRO=iron docker compose up dev --build

To get all logs in live and build debuggable binaries, you may build with this command:

colcon build --event-handlers console_direct+ --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug

It works also when running tests:

colcon test --event-handlers console_direct+ --ctest-args tests

Build Status

ROS Distro Binary Status Source Status GitHub Status
Humble ros2-humble-jammy-bin-status-badge ros2-humble-jammy-src-status-badge ros2-humble-jammy
Iron ros2-iron-jammy-bin-status-badge ros2-iron-jammy-src-status-badge ros2-iron-jammy
CHANGELOG

Changelog for package naoqi_driver

2.1.1 (2023-12-05)

  • Drop testing of [foxy]{.title-ref} and [galactic]{.title-ref}
  • README: remove extraneous args in example
  • Update code and instructions about Docker
  • Fix build for humble
  • Improve README about audio service
  • Contributors: Victor Pal

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 0.6.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver.git
VCS Type git
VCS Version master
Last Updated 2024-01-29
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver

This module establishes a ROS bridge with NAOqi. It publishes several sensor data as well as the robot position.

It also enables ROS to call parts of the NAOqi API. It was tested with a pepper robot.

Installation

For noetic, on Ubuntu 20.04:

sudo apt install ros-noetic-naoqi-driver

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful if you try to display the robot in RViz.

How it works

The naoqi_driver module is a NAOqi module that also acts as a ROS node. Ros will automaticaly generate a roscore IP for the robot. Usually, you will start your roscore on your local desktop.

Once connected, normal ROS communication is happening between your robot, running NAOqi OS, and your desktop, running ROS.

Launch

Before launching, you may want to shutdown the autonomous life of the robot with the following process:

ssh nao@<naoip>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

The driver can be launched using the following command:

Be aware that username and password arguments are only required for robots running NAOqi 2.9 or greater.

source <catkin_ws>/devel/setup.bash
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ip> nao_port:=<port> roscore_ip := <ip> network_interface:=<interface> username:=<name> password:=<passwd>

Warning: naoqi_driver for melodic and greater have to be used for robots running NAOqi 2.9 and greater.

Warning: If you have a connection refused error such as this issue when using robots running NAOqi 2.8 and greater, please try to give nao_port:=9503 explicitly.

Check that the node is running correctly

Check that naoqi_driver is connected with :

rosnode info /naoqi_driver

Check that you can move the head by publishing on /joint_angles:

rostopic pub /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {seq: 0, stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with rostopic echo /joint_angles

Check that you can move the robot by publishing on cmd_vel to make the robot move:

rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

Build status

ROS Distro Binary Status Source Status Github Build
Noetic Build Status Build Status ros-noetic-focal
Melodic Build Status Build Status ros-melodic-bionic
Kinetic passing passing ros-kinetic-xenial

Further information

For further information, you can consult the documentation (OUTDATED) here or build it:

cd doc
doxygen Doxyfile
sphinx-build -b html ./source/ ./build/

CHANGELOG

Changelog for package naoqi_driver

0.6.0 (2023-06-30)

  • Support for Pepper running NAOqi 2.9 #157
    • Audio is disabled for now
  • Update README contents and presentation
  • Contributors: Mouad Abrini, Th

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]
      • user [default: nao]
      • password [default: no_password]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 0.6.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver.git
VCS Type git
VCS Version master
Last Updated 2024-01-29
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver

This module establishes a ROS bridge with NAOqi. It publishes several sensor data as well as the robot position.

It also enables ROS to call parts of the NAOqi API. It was tested with a pepper robot.

Installation

For noetic, on Ubuntu 20.04:

sudo apt install ros-noetic-naoqi-driver

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful if you try to display the robot in RViz.

How it works

The naoqi_driver module is a NAOqi module that also acts as a ROS node. Ros will automaticaly generate a roscore IP for the robot. Usually, you will start your roscore on your local desktop.

Once connected, normal ROS communication is happening between your robot, running NAOqi OS, and your desktop, running ROS.

Launch

Before launching, you may want to shutdown the autonomous life of the robot with the following process:

ssh nao@<naoip>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

The driver can be launched using the following command:

Be aware that username and password arguments are only required for robots running NAOqi 2.9 or greater.

source <catkin_ws>/devel/setup.bash
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ip> nao_port:=<port> roscore_ip := <ip> network_interface:=<interface> username:=<name> password:=<passwd>

Warning: naoqi_driver for melodic and greater have to be used for robots running NAOqi 2.9 and greater.

Warning: If you have a connection refused error such as this issue when using robots running NAOqi 2.8 and greater, please try to give nao_port:=9503 explicitly.

Check that the node is running correctly

Check that naoqi_driver is connected with :

rosnode info /naoqi_driver

Check that you can move the head by publishing on /joint_angles:

rostopic pub /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {seq: 0, stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with rostopic echo /joint_angles

Check that you can move the robot by publishing on cmd_vel to make the robot move:

rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

Build status

ROS Distro Binary Status Source Status Github Build
Noetic Build Status Build Status ros-noetic-focal
Melodic Build Status Build Status ros-melodic-bionic
Kinetic passing passing ros-kinetic-xenial

Further information

For further information, you can consult the documentation (OUTDATED) here or build it:

cd doc
doxygen Doxyfile
sphinx-build -b html ./source/ ./build/

CHANGELOG

Changelog for package naoqi_driver

0.6.0 (2023-06-30)

  • Support for Pepper running NAOqi 2.9 #157
    • Audio is disabled for now
  • Update README contents and presentation
  • Contributors: Mouad Abrini, Th

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]
      • user [default: nao]
      • password [default: no_password]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

No version for distro hydro. Known supported distros are highlighted in the buttons above.

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 0.6.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver.git
VCS Type git
VCS Version master
Last Updated 2024-01-29
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver

This module establishes a ROS bridge with NAOqi. It publishes several sensor data as well as the robot position.

It also enables ROS to call parts of the NAOqi API. It was tested with a pepper robot.

Installation

For noetic, on Ubuntu 20.04:

sudo apt install ros-noetic-naoqi-driver

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful if you try to display the robot in RViz.

How it works

The naoqi_driver module is a NAOqi module that also acts as a ROS node. Ros will automaticaly generate a roscore IP for the robot. Usually, you will start your roscore on your local desktop.

Once connected, normal ROS communication is happening between your robot, running NAOqi OS, and your desktop, running ROS.

Launch

Before launching, you may want to shutdown the autonomous life of the robot with the following process:

ssh nao@<naoip>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

The driver can be launched using the following command:

Be aware that username and password arguments are only required for robots running NAOqi 2.9 or greater.

source <catkin_ws>/devel/setup.bash
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ip> nao_port:=<port> roscore_ip := <ip> network_interface:=<interface> username:=<name> password:=<passwd>

Warning: naoqi_driver for melodic and greater have to be used for robots running NAOqi 2.9 and greater.

Warning: If you have a connection refused error such as this issue when using robots running NAOqi 2.8 and greater, please try to give nao_port:=9503 explicitly.

Check that the node is running correctly

Check that naoqi_driver is connected with :

rosnode info /naoqi_driver

Check that you can move the head by publishing on /joint_angles:

rostopic pub /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {seq: 0, stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with rostopic echo /joint_angles

Check that you can move the robot by publishing on cmd_vel to make the robot move:

rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

Build status

ROS Distro Binary Status Source Status Github Build
Noetic Build Status Build Status ros-noetic-focal
Melodic Build Status Build Status ros-melodic-bionic
Kinetic passing passing ros-kinetic-xenial

Further information

For further information, you can consult the documentation (OUTDATED) here or build it:

cd doc
doxygen Doxyfile
sphinx-build -b html ./source/ ./build/

CHANGELOG

Changelog for package naoqi_driver

0.6.0 (2023-06-30)

  • Support for Pepper running NAOqi 2.9 #157
    • Audio is disabled for now
  • Update README contents and presentation
  • Contributors: Mouad Abrini, Th

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]
      • user [default: nao]
      • password [default: no_password]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange

naoqi_driver package from naoqi_driver repo

naoqi_driver

Package Summary

Tags No category tags.
Version 0.6.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-naoqi/naoqi_driver.git
VCS Type git
VCS Version master
Last Updated 2024-01-29
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Driver module between Aldebaran's NAOqiOS and ROS. It publishes all sensor and actuator data as well as basic diagnostic for battery, temperature. It subscribes also to RVIZ simple goal and cmd_vel for teleop.

Additional Links

No additional links.

Maintainers

  • Marine Chamoux
  • Maxime Busy
  • Surya Ambrose
  • Karsten Knese

Authors

  • Karsten Knese

naoqi_driver

This module establishes a ROS bridge with NAOqi. It publishes several sensor data as well as the robot position.

It also enables ROS to call parts of the NAOqi API. It was tested with a pepper robot.

Installation

For noetic, on Ubuntu 20.04:

sudo apt install ros-noetic-naoqi-driver

Dependencies

To run, the driver requires the naoqi_libqi, naoqi_libqicore and naoqi_bridge_msgs packages. Those can be installed using apt-get (if they have been released for your ROS distro) or from source. Additionally, pepper_meshes and/or nao_meshes can be useful if you try to display the robot in RViz.

How it works

The naoqi_driver module is a NAOqi module that also acts as a ROS node. Ros will automaticaly generate a roscore IP for the robot. Usually, you will start your roscore on your local desktop.

Once connected, normal ROS communication is happening between your robot, running NAOqi OS, and your desktop, running ROS.

Launch

Before launching, you may want to shutdown the autonomous life of the robot with the following process:

ssh nao@<naoip>
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp

The driver can be launched using the following command:

Be aware that username and password arguments are only required for robots running NAOqi 2.9 or greater.

source <catkin_ws>/devel/setup.bash
roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ip> nao_port:=<port> roscore_ip := <ip> network_interface:=<interface> username:=<name> password:=<passwd>

Warning: naoqi_driver for melodic and greater have to be used for robots running NAOqi 2.9 and greater.

Warning: If you have a connection refused error such as this issue when using robots running NAOqi 2.8 and greater, please try to give nao_port:=9503 explicitly.

Check that the node is running correctly

Check that naoqi_driver is connected with :

rosnode info /naoqi_driver

Check that you can move the head by publishing on /joint_angles:

rostopic pub /joint_angles naoqi_bridge_msgs/JointAnglesWithSpeed "{header: {seq: 0, stamp: now, frame_id: ''}, joint_names: ['HeadYaw', 'HeadPitch'], joint_angles: [0.5,0.1], speed: 0.1, relative: 0}"

You can see the published message with rostopic echo /joint_angles

Check that you can move the robot by publishing on cmd_vel to make the robot move:

rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

Build status

ROS Distro Binary Status Source Status Github Build
Noetic Build Status Build Status ros-noetic-focal
Melodic Build Status Build Status ros-melodic-bionic
Kinetic passing passing ros-kinetic-xenial

Further information

For further information, you can consult the documentation (OUTDATED) here or build it:

cd doc
doxygen Doxyfile
sphinx-build -b html ./source/ ./build/

CHANGELOG

Changelog for package naoqi_driver

0.6.0 (2023-06-30)

  • Support for Pepper running NAOqi 2.9 #157
    • Audio is disabled for now
  • Update README contents and presentation
  • Contributors: Mouad Abrini, Th

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/naoqi_driver.launch
      • nao_ip [default: $(optenv NAO_IP)]
      • nao_port [default: $(optenv NAO_PORT 9559)]
      • roscore_ip [default: 127.0.0.1]
      • network_interface [default: eth0]
      • namespace [default: naoqi_driver]
      • user [default: nao]
      • password [default: no_password]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged naoqi_driver at Robotics Stack Exchange