# multi_task **Repository Path**: lyhcyt_admin/multi_task ## Basic Information - **Project Name**: multi_task - **Description**: 基于深圳元创兴科技有限公司,多功能服务机器人套件bobac3机器人。可实现通过配置文件,控制机器人完成相应的任务。可完成迎宾引导、消毒杀菌、送餐等任务。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-04-22 - **Last Updated**: 2025-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bobac3多任务导航 基于深圳元创兴科技有限公司,多功能服务机器人套件bobac3机器人。可实现通过配置文件,控制机器人完成相应的任务。可完成迎宾引导、消毒杀菌、送餐等任务。 ## 导航点配置 ```yaml navigation_target: {导航点名称}: position: x: 0 y: 0 orientation: z: 0 w: 1 ..... ``` 坐标点可以通过订阅——/move_base_simple/goal ![](images/2024-04-16-15-35-01.png) ## 任务文件 ```yaml {任务1名称}: {动作1}: {参数属性} {参数值} {动作2}: {参数属性} {参数值} {动作3}: {参数属性} {参数值} {任务2名称}: {动作1}: {参数属性} {参数值} {动作2}: {参数属性} {参数值} ..... ``` ## 动作列表及参数 - 导航到指定位置 ```yaml 参数文件格式: - nav_goal: point {导航点名称} 动作说明: - 导航到对应导航点 前置功能要求: - 自主导航(bobac3_navigation/launch/bobac3_nav_2d.launch) ``` - 相对移动 ```yaml 参数文件配置: - relative_move: val [{x},{y},{theta}] 动作说明: - 基于当前位置向x轴偏移{x}mm,向y轴偏移{y}mm,旋转{theta}弧度 前置功能要求: - 自主导航(bobac3_navigation/launch/bobac3_nav_2d.launch) - 相对移动(relative_move/launch/relative_move.launch) ``` - 二维码对准 ```yaml 参数文件配置: - track_marker: val {id} 动作说明: - 基于当前位置向x轴偏移{x}mm,向y轴偏移{y}mm,旋转{theta}弧度 前置功能要求: - 自主导航(bobac3_navigation/launch/bobac3_nav_2d.launch) - 相对移动(relative_move/launch/relative_move.launch) ``` - 播放语音文件 ```yaml 参数文件配置: - play_audio: str {语音文件名} 动作说明: - 播放语音文件 前置功能要求: - 需要安装依赖库,参考依赖库安装 ``` - 语音合成 ```yaml 参数文件配置: - voice_tts: str {需要合成的文本} 动作说明: - 合成语音并播放 前置功能要求: - 语音接口(robot_audio/launch/voice_aiui.launch) ``` - 人脸验证 ```yaml 参数文件配置: - wait_face_recognition: str {人脸标签(可中文)} 动作说明: - 等待人脸验证成功 前置功能要求: - 人脸识别(face_rec/launch/face_rec_service.launch) - 相机节点 ``` - 延时等待 ```yaml 参数文件配置: - wait_time: val {秒} 动作说明: - 等待指定时间单位为秒 ``` - 继电器控制 ```yaml 参数文件配置: - wait_face_recognition: str {人脸标签(可中文)} 动作说明: - 等待人脸验证成功 前置功能要求: - 人脸识别(face_rec/launch/face_rec_service.launch) - 相机节点 ```re - io控制 ```yaml 参数文件配置: - set_io: val {io口数据位0到6} # 控制指定IO置1 - reset_io: val {io口数据位0到6} # 控制指定IO置0 - reset_io: str all # 控制所有IO置0 前置功能要求: - 底盘控制(rei_robot_base/launch/bobac3_base.launch) ``` ## launch文件配置 ```xml ``` ## 依赖库 主要用于语音文件的播放功能。 ``` sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 sudo pip install PyAudio -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## demo 导航点配置示例,(在param目录下) ```yaml navigation_target: # 餐厅 canteen: position: x: 0 y: 0 orientation: z: 0.7121303031267905 w: 0.7020473141950943 # 电梯 elevator1: position: x: 6.39715051651001 y: -0.7087132930755615 orientation: z: 0.9999304946159852 w: 0.01179007790607127 elevator2: position: x: 9.39692211151123 y: -0.7506863474845886 orientation: z: 0.7124876531982445 w: 0.7016846471457517 elevator3: position: x: 12.012237548828125 y: -0.7060660123825073 orientation: z: 0.7128619153952126 w: 0.7013044200481476 elevator4: position: x: 14.715211868286133 y: -0.6596437096595764 orientation: z: 0.7125737627568632 w: 0.7015972011279161 log: position: x: 18.37239646911621 y: -0.8056628108024597 orientation: z: -0.9999619904253174 w: 0.008718813258546705 office401: position: x: 8.747231483459473 y: 7.152642726898193 orientation: z: 0.9999819048103981 w: 0.006015816799745665 office402: position: x: 12.459553718566895 y: 7.571231842041016 orientation: z: 0.7215984550187555 w: 0.6923118298242094 office403: position: x: 14.949150085449219 y: 7.429768085479736 orientation: z: 0.7073906408058758 w: 0.7068228075693741 office404: position: x: 18.51814842224121 y: 7.240038871765137 orientation: z: 0.9999686144349339 w: 0.007922761202914349 office405: position: x: 18.901994705200195 y: 4.864075183868408 orientation: z: -0.00576592394583923 w: 0.999983376922362 office406: position: x: 18.622535705566406 y: -9.95212173461914 orientation: z: 0.003812084054788048 w: 0.999992733981182 office408: position: x: 15.363021850585938 y: -12.495347023010254 orientation: z: -0.7091050106093898 w: 0.7051028888954131 office409: position: x: 12.244028091430664 y: -12.22224235534668 orientation: z: -0.7091050106093898 w: 0.7051028888954131 office410: position: x: 3.8618648052215576 y: -11.935079574584961 orientation: z: 0.002003960134294311 w: 0.9999979920698742 toilet: position: x: 18.193994522094727 y: -5.901092052459717 orientation: z: -0.9999136803322739 w: 0.013138945329334555 ``` 多任务文件示例:机器人消杀任务(在param目录下) ```yaml init_1: set_relay: val False reset_io: str all task_1: nav_goal: point office402 play_audio: str 开始执行消杀作业.wav set_relay: val True set_io: val 1 nav_task_1: nav_goal: point office404 nav_task_3: nav_goal: point office406 nav_task_2: nav_goal: point elevator1 task_2: nav_goal: point office405 set_relay: val False reset_io: str all play_audio: str 消杀作业已完成.wav init_2: set_relay: val False set_io: str all ``` 消杀功能启动文件示例(launch目录下) ```xml ```