Boxer ROS Packages

_images/boxer_urdf_banner.png

Boxer’s Noetic packages are split into 5 repositories on Github:

  • Boxer – the core description and control packages, needed for physical and simulated robots

  • Boxer Robot – core launch files and services needed for operating a physical Boxer

  • Boxer Simulation – Gazebo simulation packages for Boxer

  • Boxer Desktop – desktop visualization packages for Boxer

  • Boxer Manipulation – optional support for robotic arms and grippers, including Kinova, Kuka, Robotiq, and UR

Installation from Debian Packages

Note

At the time of writing, not all of the Boxer packages have been released as .deb packages yet. These are queued, and will be released ASAP. In the meantime, all the packages can be installed from source using the method outlined below.

The preferred way to install Boxer’s ROS packages is using precompiled Debian packages. These packages are available for Ubuntu 20.04.

To install these packages on your computer, ensure that you have added the ROS1 Noetic and ROS2 Foxy sources to your apt configuration, as well as Clearpath’s package server:

Note that Foxy is only needed if you plan on installing the boxer_robot packages; because of the Otto 100’s ROS2 API the Foxy version of ros_bridge is required to operate the physical robot.

Once you have added all of the new apt sources, simply run

sudo apt-get update
sudo apt-get install ros-noetic-boxer-description ros-noetic-boxer-desktop ros-noetic-boxer-simulation ros-noetic-boxer-robot

Note that the boxer_manipulation packages are not available as .deb packages, because they have additional dependencies that can only be installed from source. See below for details on building packages from source, and refer to boxer_manipulation on Github for more details on using these packages.

Installation from Source

Boxer packages can be compiled and installed from source if desired. Boxer uses the normal catkin build tools.

To compile the Boxer packages, first create a catkin workspace if you do not already have one:

source /opt/ros/noetic/setup.bash
mkdir -p $HOME/catkin_ws/src
cd $HOME/catkin_ws
catkin_init_workspace src

Then clone the necessary packages from Github. Depending on your needs, not all packages will be necessary.

cd $HOME/catkin_ws/src
# you'll likely always need the core boxer description and msg packages:
git clone https://github.com/boxer-cpr/boxer.git

# desktop packages are only needed if you'll be using Rviz to monitor or
# control a real or simulated robot
git clone https://github.com/boxer-cpr/boxer_desktop.git

# simulation packages are only needed if you'll be using the Gazebo simulations
git clone https://github.com/boxer-cpr/boxer_simulation.git

# robot packages are only needed on the backpack PC connected to the base platform
git clone https://github.com/boxer-cpr/boxer_robot.git

# manipulation packages are only needed if your robot is equipped with a robotic arm or gripper
git clone https://github.com/boxer-cpr/boxer_manipulation.git

Install the necessary dependencies using rosdep

cd $HOME/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro=noetic -r

Note

If you included the boxer_manipulation repository you will need to install additional dependencies from source, e.g. the ros_kortex driver for Kinova arms, or the universal_robots_ros_driver for UR arms. Refer to the boxer_manipulation github page for more information.

Finally, build the workspace:

cd $HOME/catkin_ws
catkin_make

If you are setting up a Boxer backpack PC, see Configuring the Backpack for additional steps needed.

Boxer Environment Variables

Like all Clearpath robots, Boxer supports additional customization through the use of environment variables.

The following table lists the available environment variables and their effect on the robot.

Variable

Default

Description

ROS_ROBOT_SERIAL_NO

undefined

The Boxer's serial number. This should be of the form A31_0123456789 and must match the serial number stamped on the robot

BOXER_API_VERSION

v1_1

The version of the Otto SDK running on the base platform.

BOXER_URDF_EXTRAS

empty.urdf.xacro

Optional path to an additional URDF file to be added to the robot's description. Commonly used to add additional joints and links to add additional payloads, e.g. arms, additional sensors

BOXER_CONTROL_EXTRAS

empty.yaml

Optional path to a configuration file to override any of the Boxer's control parameters. Commonly used to change controller button mappings, EKF parameters, etc...

BOXER_PC

1

If 1 the URDF will include a model of the backpack PC. If t the backpack PC is omitted from the URDF. The shape of the mode is determined by the BOXER_PC_MODEL variable

BOXER_PC_MODEL

evs-2000

Customizes the shape of the backpack PC added to the URDF. Must be one of the following:

  • evs-2000 (default): the Vecow EVS-2000 series computer (or equivalent case)
  • ecx-2000: the Vecow ECX-2000 series computer (or equivalent case)
  • mini-itx: a common mini-ITX mini desktop enclosure

BOXER_PC_XYZ

0 0 0

Defines the position of the backpack computer in the URDF relative to the Boxer's top_plate_link

BOXER_PC_RPY

0 0 0

Defines the orientation of the backpack computer in the URDF relative to the Boxer's top_plate_link

BOXER_GPIO

0

If 1 the GPIO pins on the PC can be controlled via a ROS node. Not yet supported