< >
Home » ROS2与Open-RMF仿真教程#Jazzy版# » ROS2与Open-RMF仿真教程#Jazzy版#-Office World场景示例

ROS2与Open-RMF仿真教程#Jazzy版#-Office World场景示例

文章说明

  • 本教程主要介绍Open-RMF运行Office World场景示例
  • 测试环境:Ubuntu 24.04 + ROS2 Jazzy + Gazebo Harmonic 8.9.0

操作步骤

  • Office World场景是模拟一个供机器人导航的室内办公环境
  • 新开终端,打开Office World仿真场景
$ ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal"

请输入图片描述

  • 新开终端,启动rmf-web的后端程序
$ cd ~/ros2_rmf_ws/src/rmf-web/packages/api-server
$ pnpm start
  • 新开终端,启动rmf-web的前端程序
$ cd ~/ros2_rmf_ws/src/rmf-web/packages/rmf-dashboard-framework
$ pnpm start:example examples/demo
  • 现在打开浏览器,地址栏上输入http://localhost:5173/

请输入图片描述

测试任务

  • 下面执行两个测试任务作为示例
  • 执行一个配送任务,从pantry配送一支可乐到hardware_2地点
$ ros2 run rmf_demos_tasks dispatch_delivery -p pantry -ph coke_dispenser -d hardware_2 -dh coke_ingestor --use_sim_time
[INFO] [1755586940.881461920] [task_requester]: Using Sim Time
[INFO] [1755586940.885825907] [task_requester]: Using 'dispatch_task_request'
Json msg payload: 
{
  "type": "dispatch_task_request",
  "request": {
    "unix_millis_request_time": 0,
    "unix_millis_earliest_start_time": 0,
    "requester": "rmf_demos_tasks",
    "category": "delivery",
    "description": {
      "pickup": {
        "place": "pantry",
        "handler": "coke_dispenser",
        "payload": []
      },
      "dropoff": {
        "place": "hardware_2",
        "handler": "coke_ingestor",
        "payload": []
      }
    }
  }
}
Got response:
{'state': {'booking': {'id': 'delivery.dispatch-a49f9e0205', 'requester': 'rmf_demos_tasks', 'unix_millis_earliest_start_time': 0, 'unix_millis_request_time': 0}, 'category': 'delivery', 'detail': {'dropoff': {'handler': 'coke_ingestor', 'payload': [], 'place': 'hardware_2'}, 'pickup': {'handler': 'coke_dispenser', 'payload': [], 'place': 'pantry'}}, 'dispatch': {'errors': [], 'status': 'queued'}, 'status': 'queued', 'unix_millis_start_time': 0}, 'success': True}

请输入图片描述

  • 执行一个巡逻任务,在coelounge地点之间,来回巡逻3次
$ ros2 run rmf_demos_tasks dispatch_patrol -p coe lounge -n 3 --use_sim_time
[INFO] [1755587362.098502888] [task_requester]: Using Sim Time
[INFO] [1755587362.102600147] [task_requester]: Using 'dispatch_task_request'
Json msg payload: 
{
  "type": "dispatch_task_request",
  "request": {
    "unix_millis_request_time": 0,
    "unix_millis_earliest_start_time": 0,
    "requester": "rmf_demos_tasks",
    "category": "patrol",
    "description": {
      "places": [
        "coe",
        "lounge"
      ],
      "rounds": 3
    }
  }
}
Got response:
{'state': {'booking': {'id': 'patrol.dispatch-8f51f157a3', 'requester': 'rmf_demos_tasks', 'unix_millis_earliest_start_time': 0, 'unix_millis_request_time': 0}, 'category': 'patrol', 'detail': {'places': ['coe', 'lounge'], 'rounds': 3}, 'dispatch': {'errors': [], 'status': 'queued'}, 'status': 'queued', 'unix_millis_start_time': 0}, 'success': True}

请输入图片描述

演示视频

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none