Boxer ROS Packages¶
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:
|
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 |