Skip to content

ezrassor_launcher

Tiger Sachse edited this page Sep 29, 2020 · 19 revisions

Summary

The ezrassor_launcher package contains no nodes. Instead, it provides a collection of launch files designed to launch any combination of other launch files, nodes, and/or components of the EZ-RASSOR system. Typically, launch files that only initialize nodes within a single EZ-RASSOR package are located in the same package as the nodes they initialize. Launch files that launch nodes from multiple EZ-RASSOR packages are located in this package.

This package also serves as the main interaction point for most end users: people who plan to install and run this software will usually only call these launch files. The launch files in this package are purposely more user-friendly as a consequence.

Launch Files

Note that many arguments in the following launch files default to "default". This means that the arguments defer to whatever the defaults happen to be in lower-level launch files, such as controller_server.launch. Additionally, many arguments are not needed in different configurations. For example in the configurable_communication.launch file, if control_methods is set to only gamepad then the port argument is unnecessary.

configurable_communication.launch

This launch file initializes the EZ-RASSOR communication system, including all necessary nodes for autonomous control, mobile app control, and/or gamepad control. The control_methods argument determines which of these subcomponents is initialized. All possible arguments are listed below:

control_methods
A space-separated list of control methods. Five control types are supported: app, gamepad, keyboard, actions, and autonomy.
port
The port that the controller server listens on. Defaults to default.
joystick
The joystick number for the joystick that Joy listens to. Defaults to default.
digsite_x_coord
In autonomous mode, the x coordinate of the target digsite. Defaults to default.
digsite_y_coord
In autonomous mode, the y coordinate of the target digsite. Defaults to default.
spawn_x_coords
The x coordinate of the spawn point. Defaults to default.
spawn_y_coords
The y coordinate of the spawn point. Defaults to default.
enable_real_odometry
Enable real odometry over simulated odometry. This is useful for testing parts of the system not involving odometry directly or preventing errors in low-texture, simulated environments. Defaults to default.
enable_park_ranger
Enable Park Ranger (matching the surroundings of the robot to an overhead map) for absolute localization. Currently, Park Ranger is inaccurate, so enabling it will not actually affect the movement of the robot; instead, Park Ranger's estimate will be published to a topic. Defaults to false.
world
The world filename that the simulation loads. Defaults to base.

configurable_simulation.launch

This launch file initializes the EZ-RASSOR simulation. It loads the world, spawns an arbitrary number of EZ-RASSOR models, and configures the communication system for each model. This is the most important launch file with regards to launching the simulation, and it serves as the foundation for any and all simulation configurations. All possible arguments are listed below:

control_methods
A space-separated list of control methods. Five control types are supported: app, gamepad, keyboard, actions, and autonomy. These control methods apply to every model that is spawned.
robot_count
The number of models you wish to spawn. Defaults to 1.
ports
The ports that the controller servers for the models listen on. If you spawn multiple models, you must specify different ports for each model, otherwise parts of the communication system will crash. If you spawn multiple models and do not set this argument, all controller servers will try to use the default port and they will crash. Defaults to default.
joysticks
The joystick numbers for the joysticks that the Joy nodes of each model listen to. If you spawn multiple models, you must specify different joysticks for each model, otherwise parts of the communication system will crash. If you spawn multiple models and do not set this argument, all Joy nodes will try to use the default joystick and they will crash. Defaults to default.
spawn_x_coords
The x coordinates for each model's spawn point. Defaults to default.
spawn_y_coords
The y coordinates for each model's spawn point. Defaults to default.
spawn_z_coords
The z coordinates for each model's spawn point. Defaults to default.
digsite_x_coords
In autonomous mode, the x coordinates of the target digsites for each model. Defaults to default.
digsite_y_coords
In autonomous mode, the y coordinates of the target digsites for each model. Defaults to default.
world
The world filename that the simulation loads. Defaults to base.
debug
Start gzserver in debug mode using gdb. Defaults to false.
paused
Start the simulation paused. Defaults to false.
verbose
Show verbose information in the terminal. Defaults to false.
show_gui
Toggle whether the GUI is displayed or not. Defaults to true.
recording
Toggle Gazebo state log recording. Defaults to false.
use_sim_time
Use Gazebo-published simulation time over the ROS topic /clock for ROS nodes. Defaults to true.
enable_real_odometry
Enable real odometry over simulated odometry. This is useful for testing parts of the system not involving odometry directly or preventing errors in low-texture, simulated environments. Defaults to default.
enable_park_ranger
Enable Park Ranger (matching the surroundings of the robot to an overhead map) for absolute localization. Currently, Park Ranger is inaccurate, so enabling it will not actually affect the movement of the robot; instead, Park Ranger's estimate will be published to a topic. Defaults to false.

battle_bots.launch

This launch file starts up BATTLE BOTS! Four robots, four apps, three minutes of PLAYTIME. Connect on ports 8080, 8081, 8082, and 8083.

gps_denied_nav_demo.launch

This launch file starts up a demonstration of GPS-denied navigation in a moon environment. Odometry is used for localization starting from a known location, and obstacle detection and path planning are used to navigate the robot around an above-ground obstacle and a crater to arrive at the target location.

obstacle_detection_demo.launch

This launch file starts up a demonstration of obstacle detection in an environment that contains both a below-ground and above-ground obstacle. Use rviz to visualize the laser scans created for each type of obstacle.

park_ranger_demo.launch

This launch file starts up a demonstration of the Park Ranger component in a moon environment.

tutorial.launch

Contains simple, configured tutorials. Will eventually be the home for many of the other tutorials listed above. All possible arguments are listed below:

tutorial
The tutorial to execute. Read the launch file to see a list of possible tutorials.

Examples

Launch the simulation with a single EZ-RASSOR, controllable via a gamepad:

roslaunch ezrassor_launcher configurable_simulation.launch \
    control_methods:=gamepad

Launch the simulation with a single EZ-RASSOR that is controlled autonomously and/or with the mobile app (on port 8082):

roslaunch ezrassor_launcher configurable_simulation.launch \
    control_methods:="autonomy app" \
    ports:="8082"

Launch the simulation with three EZ-RASSORs operating autonomously. The EZ-RASSORs each have a different initial target digsite:

roslaunch ezrassor_launcher configurable_simulation.launch \
    control_methods:=autonomy \
    robot_count:=3 \
    spawn_x_coords:="1 1.5 2" \
    spawn_y_coords:="1 1.5 2" \
    digsite_x_coords:="4 -8 12" \
    digsite_y_coords:="-4 8 -12"

Launch the simulation with two EZ-RASSORs that is controlled autonomously and/or via gamepads. A few Gazebo options are also toggled:

roslaunch ezrassor_launcher configurable_simulation.launch \
    control_methods:="gamepad autonomy" \
    robot_count:=2 \
    joysticks:="0 1" \
    spawn_x_coords:="1 1 -1" \
    spawn_y_coords:="1 -1 1" \
    digsite_x_coords:="4 4 -4" \
    digsite_y_coords:="4 -4 4" \
    debug:=true \
    verbose:=true \
    use_sim_time:=false

Launch the communication system for a single robot that is controllable with all three methods:

roslaunch ezrassor_launcher configurable_communication.launch \
    control_methods:="gamepad app autonomy" \
    joystick:=1 \
    port:=8083