Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged zuuu_hal at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache-2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | Reachy 2023 workspace |
Checkout URI | https://github.com/pollen-robotics/reachy_2023.git |
VCS Type | git |
VCS Version | develop |
Last Updated | 2025-03-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | rust robotics ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Pollen Robotics
Authors
Zuuu Hardware Abstraction Layer
Purpose
Zuuu HAL has the responsability to interact with Zuuu’s (Reachy’s mobile base) hardware and ‘ROSify’ the inputs and outputs.
The HAL will periodically read the selected measurements from the controllers of the wheels (speed, temperature, voltage, etc) and publish them into the adequate topics or services. The odometry is calculated and published (/odom topic and TF transform).
Several interfaces to control the mobile base are exposed such as sending (x_vel, y_vel, theta_vel) speed commands or setting a (x, y, theta) goal position in the odometric frame. See usage for details
Installation
Clone and install this repository
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_hal.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
Clone and install our custom version of PyVESC:
cd ~/dev
git clone https://github.com/pollen-robotics/PyVESC.git
pip3 install -e PyVESC/
Install:
sudo apt install ros-foxy-tf-transformations
pip3 install transforms3d
Dependencies
- zuuu_interfaces: defines custom services for the mobile base
cd ~/reachy_ws/src
git clone https://github.com/pollen-robotics/zuuu_interfaces.git
cd ~/reachy_ws
colcon build --packages-select zuuu_hal
source ~/.bashrc
- zuuu_description: if you want to use visualization tools (e.g. rviz, gazebo)
git clone https://github.com/pollen-robotics/zuuu_interfaces
For the installation of this package, refer to the dedicated README.
Usage
Running the HAL
For all ROS based use cases, the zuuu_hal node must be running :
ros2 launch zuuu_hal hal.launch.py
Running the HAL and the Mobile base SDK server
If you want to use our Python SDK to control the mobile base with Python commands instead of working at the ROS level, you will have to launch both the HAL and the Mobile base SDK server. See run_mobile_base_sdk_server_and_hal.launch.py from the mobile base SDk server for this.
Sending speed commands
Once the zuuu_hal is started, one can take control of the mobile base with: 1) A controller
ros2 run zuuu_hal teleop_joy
2) A keyboard
ros2 run zuuu_hal teleop_keyboard
3) Sending speed commands on the ‘cmd_vel’ topic. 4) Using the SetSpeed service 5) Using the GoToXYTheta service
SetSpeed service
Sets a constant speed for a given duration. Zuuu should make a full rotation with this call:
ros2 service call /SetSpeed zuuu_interfaces/srv/SetSpeed "{x_vel: 0.0, y_vel: 0.0, rot_vel: 2.0, duration: 3.1415}"
This script makes Zuuu draw a 1mx1m square (front, right, back, left) using the SetSpeed service:
ros2 run zuuu_hal set_speed_service_test
GoToXYTheta service
Sets a goal position in the odom frame. Zuuu will try to reach that position using 3 separate PIDs (one for x, one for y and one for theta). Zuuu should go to position X=0.5, y=0.0, theta=0.0. If one resets the odom frame, this should be equivalent to moving forward 0.5m.
ros2 service call /ResetOdometry zuuu_interfaces/srv/ResetOdometry "{}"
ros2 service call /GoToXYTheta zuuu_interfaces/srv/GoToXYTheta "{x_goal: 0.5, y_goal: 0.0, theta_goal: 0.0}"
To check the current distance from the goal:
ros2 service call /DistanceToGoal zuuu_interfaces/srv/DistanceToGoal "{}"
Use the IsGoToFinished service to know if the goal position is reached:
ros2 service call /IsGoToFinished zuuu_interfaces/srv/IsGoToFinished "{}"
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ros2launch | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Name |
---|
python3-pytest |