Tesseract 0.28.4
Loading...
Searching...
No Matches
ROS Interface

Using Tesseract with ROS for visualization, environment monitoring, and motion planning.

While Tesseract is ROS-agnostic at its core, the tesseract_ros and tesseract_ros2 packages provide ROS integration for common workflows.

Overview

The ROS interface packages provide:

Package Purpose
tesseract_monitoring Environment and contact monitoring via ROS topics/services
tesseract_rosutils Conversion utilities between Tesseract and ROS message types
tesseract_rviz RViz visualization plugins for Tesseract environments and trajectories
tesseract_msgs ROS message definitions for Tesseract data types
tesseract_ros_examples Example applications demonstrating ROS integration

Basic Cartesian Example

This example demonstrates a typical ROS workflow: loading a robot, creating an environment with obstacles, planning a Cartesian path, and visualizing the result in RViz.

Basic Cartesian Example — Startup

Running the Example

Open a terminal and launch the example (ROS 1):

roslaunch tesseract_ros_examples basic_cartesian_example.launch

Wait for RViz to finish loading. In the launch terminal, you'll see:

[ERROR] [1613730481.601846614]: Hit enter key to continue!

Press Enter to begin robot motion.

Expected Output

The robot traces a trajectory over a cube obstacle in the environment:

Basic Cartesian Example — Execution

Code Structure

The example is organized as:

  • Executable node — Initializes ROS, creates the example class, and calls run()
  • BasicCartesianExample class — Contains all planning and environment setup logic

The workflow in the run() method is:

  1. Load parameters from the ROS Parameter Server into the Tesseract environment
  2. Create an environment monitor for collision tracking
  3. Build an octomap of a cube obstacle and add it to the environment
  4. Define Cartesian waypoints for freespace and linear moves
  5. Create a planning server and solve each motion program
  6. Plot the trajectory in RViz for visualization

ROS Package Details

tesseract_monitoring

Provides two main components:

  • Contact Monitor — Continuously monitors the environment for contact/collisions and publishes results. Useful for safety monitoring during execution.
  • Environment Monitor — Keeps the Tesseract environment synchronized with the ROS parameter server and published environment updates.

tesseract_rviz

RViz plugins for visualizing:

  • Tesseract environments (robot model, collision objects, scene graph)
  • Planned trajectories with animation
  • Contact results and collision markers

tesseract_rosutils

Conversion utilities between Tesseract internal types and ROS messages. Handles serialization and deserialization for publishing Tesseract data over ROS topics.

Next Steps