7 个版本

0.1.0 2023 年 3 月 31 日
0.0.7 2022 年 12 月 9 日
0.0.6 2021 年 7 月 1 日
0.0.5 2021 年 3 月 29 日
0.0.3 2021 年 2 月 19 日

#167 in 机器人

每月 36 次下载
openrr 中使用

Apache-2.0

590KB
13K SLoC

OpenRR 应用程序

crates.io docs docs

准备

安装 urdf-viz

cargo install urdf-viz

安装

cargo install openrr-apps

如果您是 Windows 用户,ROS 不受支持。所以请删除它。

cargo install openrr-apps --no-default-features --features gui,assimp

选项:对于 UR10 示例

安装 Universal Robot 软件

选项:对于 PR2 示例

安装 ros-melodic-pr2-gazebo / ros-melodic-topic-tools.

选项:为 openrr_apps_robot_command 安装 bash 完成脚本

如果您使用 bash

openrr_apps_robot_command shell_completion bash > ~/.openrr_command
source ~/.openrr_command

如何运行 openrr_apps_robot_command

示例机器人

  • 启动 urdf-viz。
urdf-viz ./openrr-planner/sample.urdf &
  • 运行示例命令。
openrr_apps_robot_command \
  --config-path=./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml \
  load_commands ./openrr-apps/command/sample_cmd_urdf_viz.txt

环境变量

如果您设置 export OPENRR_APPS_ROBOT_CONFIG_PATH=some_path_to_config.toml,则可以跳过 --config-path。如果您明确给出 --config-path,则忽略环境变量。

  • 使用环境变量运行示例命令
export OPENRR_APPS_ROBOT_CONFIG_PATH=$(pwd)/openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml
openrr_apps_robot_command load_commands ./openrr-apps/command/sample_cmd_urdf_viz.txt

尝试其他设置之前,请勿忘记取消设置 OPENRR_APPS_ROBOT_CONFIG_PATH

UR10 (urdf-viz)

  • 启动 urdf-viz。
urdf-viz $(rospack find ur_description)/urdf/ur10_robot.urdf.xacro
  • 运行示例命令。

根据您的环境修改 设置文件 中的 urdf 路径。

openrr_apps_robot_command \
  --config-path=./openrr-apps/config/ur10_robot_client_config_for_urdf_viz.toml \
  load_commands ./openrr-apps/command/ur10_cmd_urdf_viz.txt

UR10 (ROS gazebo)

  • 启动 gazebo。
roslaunch ur_gazebo ur10.launch
  • 运行示例命令。

根据您的环境修改 设置文件 中的 urdf 路径。

openrr_apps_robot_command \
  --config-path=./openrr-apps/config/ur10_robot_client_config_for_ros.toml \
  load_commands ./openrr-apps/command/ur10_cmd_ros.txt

PR2 (urdf-viz)

  • 启动 urdf-viz。
urdf-viz $(rospack find pr2_description)/robots/pr2.urdf.xacro
  • 运行示例命令。

根据您的环境修改 设置文件 中的 urdf 路径。

openrr_apps_robot_command \
  --config-path=./openrr-apps/config/pr2_robot_client_config_for_urdf_viz.toml \
  load_commands ./openrr-apps/command/pr2_cmd_urdf_viz.txt

PR2 (ROS gazebo)

  • 启动 gazebo。
cd openrr-apps/launch/
roslaunch ./pr2.launch wait_time_secs:=10
  • 运行示例命令。

根据您的环境修改 设置文件 中的 urdf 路径。

openrr_apps_robot_command \
  --config-path=./openrr-apps/config/pr2_robot_client_config_for_ros.toml \
  load_commands ./openrr-apps/command/pr2_cmd_ros.txt

如何运行 openrr_apps_robot_teleop

示例机器人

  • 启动 urdf-viz。
urdf-viz ./openrr-planner/sample.urdf &
  • .

请在设置文件中更改您的设备下的手柄设置。默认值为'Sony DualShock 4'。

gil_gamepad_config.device_id = 0
gil_gamepad_config.map.button_map = ...
gil_gamepad_config.map.axis_map = ...
gil_gamepad_config.map.axis_value_map = ...
  • 运行teleop。
openrr_apps_robot_teleop --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml

如果您使用游戏手柄,请参考openrr-teleop的README

UR10 (urdf-viz)

  • 启动 urdf-viz。
urdf-viz $(rospack find ur_description)/urdf/ur10_robot.urdf.xacro
  • 运行teleop。

设置文件中更改urdf路径和手柄设置(见此处),以适应您的环境。

openrr_apps_robot_teleop --config-path=./openrr-apps/config/ur10_teleop_config_urdf_viz.toml

UR10 (ROS gazebo)

  • 启动 gazebo。
roslaunch ur_gazebo ur10.launch
  • 运行teleop。

设置文件中更改urdf路径和手柄设置(见此处),以适应您的环境。

openrr_apps_robot_teleop --config-path=./openrr-apps/config/ur10_teleop_config_ros.toml

PR2 (urdf-viz)

  • 启动 urdf-viz。
urdf-viz $(rospack find pr2_description)/robots/pr2.urdf.xacro
  • 运行teleop。

设置文件中更改urdf路径和手柄设置(见此处),以适应您的环境。

openrr_apps_robot_teleop --config-path=./openrr-apps/config/pr2_teleop_config_urdf_viz.toml

PR2 (ROS gazebo)

  • 启动 gazebo。
cd openrr-apps/launch/
roslaunch ./pr2.launch wait_time_secs:=10
  • 运行teleop。

设置文件中更改urdf路径和手柄设置(见此处),以适应您的环境。

openrr_apps_robot_teleop --config-path=./openrr-apps/config/pr2_teleop_config_ros.toml

iRobot Create

iRobot Create是什么...

  • 重新构建以支持ROS2。
cargo build --release --feature ros2
  • 运行teleop。
openrr_apps_robot_teleop \
  --config-path ./openrr-apps/config/irobot_create_teleop_config_ros2.toml
PrintSpeaker: base
PrintSpeaker: command dock command
PrintSpeaker: command undock command

当执行dock命令时,iRobot Create停靠到站台上;当执行undock命令时,机器人会脱离。这些基于ROS2动作,并遵循官方描述

如何运行openrr_apps_joint_position_sender

示例机器人

  • 启动 urdf-viz。
urdf-viz ./openrr-planner/sample.urdf &
  • 启动openrr_apps_joint_position_sender。
openrr_apps_joint_position_sender \
  --config-path ./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml

故障排除

有关GUI的故障排除,请参阅openrr-gui crate。

如何运行openrr_apps_velocity_sender

示例机器人

  • 启动 urdf-viz。
urdf-viz ./openrr-planner/sample.urdf &
  • 启动openrr_apps_velocity_sender。
openrr_apps_velocity_sender \
  --config-path ./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml

iRobot Create

  • 重新构建以支持ROS2。
cargo build --release --feature ros2
  • 启动openrr_apps_velocity_sender。
openrr_apps_velocity_sender \
  --config-path ./openrr-apps/config/irobot_create_robot_client_config_ros2.toml

环境变量

如果您设置 export OPENRR_APPS_ROBOT_CONFIG_PATH=some_path_to_config.toml,则可以跳过 --config-path。如果您明确给出 --config-path,则忽略环境变量。

  • 使用环境变量运行示例urdf
export OPENRR_APPS_ROBOT_CONFIG_PATH=$(pwd)/openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml
openrr_apps_joint_position_sender

尝试其他设置之前,请勿忘记取消设置 OPENRR_APPS_ROBOT_CONFIG_PATH

启动时覆盖配置

通过使用--config标志,您可以在启动时覆盖配置。

例如,要替换urdf路径

openrr_apps_robot_command \
  --config-path=./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml \
  --config='openrr_clients_config.urdf_path="path/to/urdf"' \
  load_commands ./openrr-apps/command/sample_cmd_urdf_viz.txt

openrr_apps_robot_teleop中,有两个标志:--robot-config用于覆盖机器人配置和--teleop-config用于覆盖teleop配置。

例如,要使用arci-gamepad-keyboard运行openrr_apps_robot_teleop

openrr_apps_robot_teleop \
  --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml \
  --teleop-config='gamepad="Keyboard"'

禁用joint_position_limiter

openrr_apps_robot_teleop \
  --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml \
  --robot-config='urdf_viz_clients_configs[0].wrap_with_joint_position_limiter=false'

要覆盖多个配置,请用分号或换行符分隔脚本。例如

# semicolon-separated
openrr_apps_robot_teleop \
  --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml \
  --robot-config='urdf_viz_clients_configs[0].wrap_with_joint_position_limiter=false;openrr_clients_config.urdf_path="path/to/urdf"'

# newline-separated
{
  echo 'urdf_viz_clients_configs[0].wrap_with_joint_position_limiter=false'
  echo 'openrr_clients_config.urdf_path="path/to/urdf"'
} > overwrite.txt
openrr_apps_robot_teleop \
  --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml \
  --robot-config="$(cat ./overwrite.txt)"

配置文件的架构

schema目录包含openrr使用的配置文件的JSON架构,当与支持使用JSON架构的扩展名的编辑器结合使用时,可以启用补全。

Visual Studio Code

在VS Code中,您可以通过安装Even Better TOML扩展并使用evenBetterToml.schema.associations配置对象在settings.json中启用补全和验证。

例如

{
  "evenBetterToml.schema.associations": {
    ".*robot_client_config.*\\.toml": "https://raw.githubusercontent.com/openrr/openrr/main/openrr-apps/schema/robot_config.json",
    ".*teleop_config.*\\.toml": "https://raw.githubusercontent.com/openrr/openrr/main/openrr-apps/schema/robot_teleop_config.json",
  },
}

许可证

根据Apache License, Version 2.0授权。

依赖项

~28–70MB
~1M SLoC