littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于ROS框架的简化Cluedo游戏机器人系统

项目简介

本项目基于ROS框架实现了一个机器人代理,用于玩简化版的Cluedo游戏。机器人可随机前往环境中的四个位置,通过移动手臂收集(who, PERSON)(where, PLACE)(what, WEAPON) 形式的线索。收集到的线索会添加到本体中,每收集到3条线索,机器人就会前往中心点检查是否找到正确假设,直至找到为止。

项目的主要特性和功能

  1. 知识本体:采用OWL本体表示机器人的当前知识。
  2. ARMOR服务:借助ARMOR服务与知识本体通信,实现添加新假设和线索,查询完整假设类的个体信息。
  3. ROSPlan:负责依据问题和领域PDDL文件进行问题生成、规划和计划执行。
  4. Moveit:规划和控制机器人手臂关节,使末端执行器在两个预设高度(0.75和1.25)间移动。
  5. 任务管理:由任务管理器调用ROSPlan的各项服务,若计划执行失败,会更新知识状态并重新规划。
  6. 行动接口:包含多个ROSPlan行动接口,如调整初始高度、移动到指定路点、获取线索、移动手臂和检查假设等。

安装使用步骤

安装依赖

  1. 将armor_py_api脚本的代码从Python2适配到Python3:
    • 在armor_client.py中添加 "from armor_api.armor_exceptions import ArmorServiceInternalError, ArmorServiceCallError"。
    • 将所有 "except rospy.ServiceException, e" 替换为 "except rospy.ServiceException as e"。
    • 修改armor_query_client的第132行为 "if res.success and len(res.queried_objects) > 1:"。
  2. 将armor模块的路径添加到Python路径: export PYTHONPATH=$PYTHONPATH:/root/ros_ws/src/armor/armor_py_api/scripts/armor_api/

编译项目

下载本项目到工作空间,然后执行: catkin_make

启动项目

依次在四个终端标签中运行以下命令: 1. 启动ROSPlan及行动接口: roslaunch erl2 cluedo.launch 2. 启动ARMOR: rosrun armor execute it.emarolab.armor.ARMORMainService 3. 启动仿真、本体服务器和go_to_point动作服务器: roslaunch erl2 assignment.launch 4. 运行任务管理器以开始游戏: rosrun erl2 plan_manager.py

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】