Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |
Launch files
Messages
Services
Plugins
Recent questions tagged audio_interaction at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 2 packages for CyberDog |
Checkout URI | https://github.com/miroboticslab/cyberdog_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-10-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotics ros ros2 cyberdog |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- jia
Authors
audio_interaction
模块简介
该模块用于实现整个音频模块的交互部分,主要包括以下几个方面的功能: 1、与其它模块之间关于通用播放的交互功能 2、语音助手相关控制与交互功能(APP(grpc)、决策模块) 3、与APP(grpc)之间关于音量调解的交互功能
播放功能
简介
本模块实现了一个action server作为通用播放接口,其它任意模块可以通过实现action client来请求播放本地音频文件以实现播放提醒的功能。
目前语音播放的action接口播放的实现是阻塞的,即在播放一条本地音频(current_goal)的同时会拒绝接受新的播放请求(pending_goal),直到当前音频播放完毕,才有新的请求能被接收进来,后期的持续升级中,此处将会将当前设计修改为:播放一条本地音频的同时会一定程度上接受有限数量的放请求,audio_base中的播放器会将这些本地的音频播报请求做混音(mix)处理,这样就可以同时满足一定数量的请求能够被同时播放出来。
混音播放多条请求的同时,为了提供更好的听觉体验,后续升级的同时,该模块将根据播放的内容, 将这些本地音源处理为不同优先的的播报类型,混音的同时,将根据播报的类型,将各个混音的音源对象做出相应的音量调节,敬请期待。
音频播放时音频模块最基础的功能,下面着重介绍。
接口描述
action name: audio_play 此处介绍audio server与client之间的接口描述,以便了解如何实现,具体的底层播放的实现细节请参见audio base 模块的README。 回调: check_play_request 涉及的接口文件如下: AudioPlay.msg 文件定义了整个action接口的结构,分为order,result,feedback三部分,如下,每部分又有单独的msg文件来定义,下方可见具体介绍。
# goal definition
AudioOrder order
---
# result definition
AudioResult result文件
---
# feedback
AudioFeedback feed
AudioOrder.msg order部分由三部分构成,第一部分为一个时间戳,第二部分为具体播放的曲目,第三部分为发出order请求的模块,后两部分由单独的msg文件定义
# Time
std_msgs/Header header
# Song name
AudioSongName name
# User
AudioUser user
由于后期产品定义的调整,以及考虑开发者应用更加方便,AudioSongName中的定义目前已弃用,此处可直接传入一个uint16的值,这个值的具体含义可解析为一个本地(/opt/ros2/cyberdog/data/wav/)的wav文件,具体的含义可见附录。
此处支持个人开发者自由生成音频文件来扩充本地音频支援,目前支持的格式为: 采样率:16000 通道数:1 数据格式:16bit 小端 后续OTA持续升级过程中,我们将开放更广泛的采样率支持,敬请期待。
AudioUser.msg 此处定义了此action client端的具体模块名(后续优化中将被替换为优先级)
# Assistant Messages
#
#
int8 DEFAULT = 0
int8 STARTER = 1
int8 POWER = 2
int8 TOUCH = 3
int8 CAMERA = 4
int8 APP = 5
int8 BLUETOOTH = 6
int8 WIFI = 7
int8 XIAOAI = 8
#
int8 id
#
模块内部完成音播放是通过使用audio base模块中提供的方法来实现的。
在本模块中的相关实现可参见以下方法,其中play_callback在播放完成后会自动调用。
void player_init();
void player_handle(int id);
void play_callback();
语音助手控制与交互功能
功能介绍
音频模块除了支持基本的播放功能外,还支持语音助手的功能,语音助手的具体集成实现可参见audio assistant模块的README,该模块只介绍通过APP控制语音助手的交互功能。
这部分的具体功能分为以下几部分: 1、接收APP的指令,完成对语音助手的开关控制(决定助手功能功能的工作状态:是否开启) 2、查询语音助手的工作状态,并与APP的控制状态同步 3、接收语音助手发出的运动控制的指令,通知决策模块对应语音指令的下发 4、接收APP发来的获取device id的请求,并返回device id 5、接收APP发来的传输token的请求,检测token的正确性后,将token写入token.toml文件中 6、检测当前网络状态并广播
此处需要注意的是,为了提高跨平台通信的效率,模块与APP之间的通信引入了grpc的解决方案,grpc的引入不影响本模块代码的正常书写,了解grpc的解决方案,可参考cyberdog_grpc模块的README以及代码实现。
接下来选择性得介绍以上功能的重点部分。
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
audio_base | |
rclcpp | |
std_msgs | |
ception_msgs | |
interaction_msgs | |
motion_msgs | |
cyberdog_utils | |
builtin_interfaces | |
ALSA | |
OpenSSL | |
toml11_vendor |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cyberdog_audio |