7 releases
0.1.0 | Mar 31, 2023 |
---|---|
0.0.7 | Dec 9, 2022 |
0.0.6 | Jul 1, 2021 |
0.0.5 | Mar 29, 2021 |
0.0.3 | Feb 19, 2021 |
#189 in Robotics
Used in openrr
590KB
13K
SLoC
OpenRR applications
Prepare
Install urdf-viz
cargo install urdf-viz
Install
cargo install openrr-apps
If you are Windows user, ROS is not supported. So remove it.
cargo install openrr-apps --no-default-features --features gui,assimp
Option: For UR10 sample
Install Universal Robot software.
Option: For PR2 sample
Install ros-melodic-pr2-gazebo / ros-melodic-topic-tools.
Option: Install bash completion for openrr_apps_robot_command
If you are using bash
,
openrr_apps_robot_command shell_completion bash > ~/.openrr_command
source ~/.openrr_command
How to run openrr_apps_robot_command
Sample robot
- Launch urdf-viz.
urdf-viz ./openrr-planner/sample.urdf &
- Run sample commands.
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
Environmental Variables
If you set export OPENRR_APPS_ROBOT_CONFIG_PATH=some_path_to_config.toml
, you can skip
--config-path
. If you give --config-path
explicitly, the env var is ignored.
- Run sample commands with env var
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
Do not forget to unset OPENRR_APPS_ROBOT_CONFIG_PATH before try other settings
UR10 (urdf-viz)
- Launch urdf-viz.
urdf-viz $(rospack find ur_description)/urdf/ur10_robot.urdf.xacro
- Run sample commands.
Change urdf path in the setting file for your environment.
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)
- Launch gazebo.
roslaunch ur_gazebo ur10.launch
- Run sample commands.
Change urdf path in the setting file for your environment.
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)
- Launch urdf-viz.
urdf-viz $(rospack find pr2_description)/robots/pr2.urdf.xacro
- Run sample commands.
Change urdf path in the setting file for your environment.
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)
- Launch gazebo.
cd openrr-apps/launch/
roslaunch ./pr2.launch wait_time_secs:=10
- Run sample commands.
Change urdf path in the setting file for your environment.
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
How to run openrr_apps_robot_teleop
Sample robot
- Launch urdf-viz.
urdf-viz ./openrr-planner/sample.urdf &
- .
Change below joystick settings in the setting file for your device. Default value is for '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 = ...
- Run teleop.
openrr_apps_robot_teleop --config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml
If you use gamepad, refer to README of openrr-teleop.
UR10 (urdf-viz)
- Launch urdf-viz.
urdf-viz $(rospack find ur_description)/urdf/ur10_robot.urdf.xacro
- Run teleop.
Change urdf path and joystick settings (see here) in the setting file for your environment.
openrr_apps_robot_teleop --config-path=./openrr-apps/config/ur10_teleop_config_urdf_viz.toml
UR10 (ROS gazebo)
- Launch gazebo.
roslaunch ur_gazebo ur10.launch
- Run teleop.
Change urdf path and joystick settings (see here) in the setting file for your environment.
openrr_apps_robot_teleop --config-path=./openrr-apps/config/ur10_teleop_config_ros.toml
PR2 (urdf-viz)
- Launch urdf-viz.
urdf-viz $(rospack find pr2_description)/robots/pr2.urdf.xacro
- Run teleop.
Change urdf path and joystick settings (see here) in the setting file for your environment.
openrr_apps_robot_teleop --config-path=./openrr-apps/config/pr2_teleop_config_urdf_viz.toml
PR2 (ROS gazebo)
- Launch gazebo.
cd openrr-apps/launch/
roslaunch ./pr2.launch wait_time_secs:=10
- Run teleop.
Change urdf path and joystick settings (see here) in the setting file for your environment.
openrr_apps_robot_teleop --config-path=./openrr-apps/config/pr2_teleop_config_ros.toml
iRobot Create
- Build again to feature ROS2.
cargo build --release --feature ros2
- Run 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
When the dock command
is executed, iRobot Create
docks to the station; when the undock command
is executed, the robot undocks. These are based ROS2 action and follow official description.
How to run openrr_apps_joint_position_sender
Sample robot
- Launch urdf-viz.
urdf-viz ./openrr-planner/sample.urdf &
- Launch openrr_apps_joint_position_sender.
openrr_apps_joint_position_sender \
--config-path ./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml
Troubleshooting
See openrr-gui crate for troubleshooting on GUI.
How to run openrr_apps_velocity_sender
Sample robot
- Launch urdf-viz.
urdf-viz ./openrr-planner/sample.urdf &
- Launch openrr_apps_velocity_sender.
openrr_apps_velocity_sender \
--config-path ./openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml
iRobot Create
- Build again to feature ROS2.
cargo build --release --feature ros2
- Launch openrr_apps_velocity_sender.
openrr_apps_velocity_sender \
--config-path ./openrr-apps/config/irobot_create_robot_client_config_ros2.toml
Environmental Variables
If you set export OPENRR_APPS_ROBOT_CONFIG_PATH=some_path_to_config.toml
, you can skip
--config-path
. If you give --config-path
explicitly, the env var is ignored.
- Run for sample urdf with env var
export OPENRR_APPS_ROBOT_CONFIG_PATH=$(pwd)/openrr-apps/config/sample_robot_client_config_for_urdf_viz.toml
openrr_apps_joint_position_sender
Do not forget to unset OPENRR_APPS_ROBOT_CONFIG_PATH before try other settings
Overwrite configuration at startup
By using --config
flag, you can overwrite the configuration at startup.
For example, to replace the urdf path:
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
In openrr_apps_robot_teleop
, there are two flags: --robot-config
to overwrite robot config and --teleop-config
to overwrite teleop config.
For example, to run openrr_apps_robot_teleop
with arci-gamepad-keyboard
:
openrr_apps_robot_teleop \
--config-path=./openrr-apps/config/sample_teleop_config_urdf_viz.toml \
--teleop-config='gamepad="Keyboard"'
To disable 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'
To overwrite multiple configs, separate the scripts with a semicolon or a newline. For example:
# 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)"
Schemas for config files
The schema
directory contains the JSON schemas for the config files used by openrr, and when combined with an extension of the editor that supports completion using the JSON schema, completion can be enabled.
Visual Studio Code
In VS Code, you can enable completion and validation by installing the Even Better TOML extension and using the evenBetterToml.schema.associations
configuration object in settings.json
.
For example:
{
"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",
},
}
License
Licensed under the Apache License, Version 2.0.
Dependencies
~30–72MB
~1M SLoC