ros2_controllers joint trajectory controller implementation
Official C++ ros2_control lifecycle plugin that accepts joint-space trajectory topic/action input, samples trajectories and writes claimed joint command interfaces. The selected source includes goal validation, tolerances and action/state feedback; no robot or successful task execution was verified.
ros2-joint-trajectory-controller | Record version: source-da42c65b96e0e5817f61449246663b576c1b3ebd108bcc3745ec5f467c6c50d4
Record JSON | Markdown | Pinned upstream source
Access
Read the immutable source, complete license, package/CMake/plugin registration and complete upstream configuration before integration. This source-only reference supplies no build, install or execution adapter.
For one verified inert file, use the installed CLI's inspect response fetch_source_args and append --project DIR --json. Source-file retrieval creates no environment and does not install or run the source.
Hub preparation adapter: false. Follow the upstream setup and invocation contract.
Source and license
- Repository
- https://github.com/ros-controls/ros2_controllers
- Revision
8ce934536c6404750fb8aafc0b62b7d365049143- Path
joint_trajectory_controller/src/joint_trajectory_controller.cpp- Source SHA256
da42c65b96e0e5817f61449246663b576c1b3ebd108bcc3745ec5f467c6c50d4- Source bytes
- 77779
- Original authors
- ros2_control Development Team
- License
- Apache-2.0
- License scope
- Copyright 2021 ros2_control Development Team. The selected source explicitly declares Apache License 2.0; the complete pinned root LICENSE and matching package.xml declaration were reviewed. Preserve applicable copyright, license, modification and notice obligations. Verification is limited to the selected source text, not all dependencies, companion implementations, binaries, hardware drivers or deployment.
- License SHA256
not independently verified- Hub commit
734a99755f851c9bea46cdd1fce089ef3b4bfe62
Artifact
{
"kind": "code",
"format": "cpp"
}
Requirements
{
"python": null,
"packages": [
"Complete pinned joint_trajectory_controller package, companion sources/headers and a C++17 toolchain",
"ament_cmake",
"ros2_control_cmake",
"angles",
"backward_ros",
"controller_interface",
"control_msgs",
"control_toolbox",
"generate_parameter_library",
"hardware_interface",
"libexpected-dev",
"pluginlib",
"rclcpp",
"rclcpp_action",
"rclcpp_lifecycle",
"realtime_tools",
"rsl",
"trajectory_msgs",
"urdf",
"lifecycle_msgs"
],
"hardware": [],
"system": [
"Configured ros2_control controller manager/lifecycle host, named joints and matching claimed command/state interfaces",
"Complete generated parameters, trajectory helpers, robot description and applicable joint/goal constraints"
],
"notes": "The selected update reads joint states, samples the companion Trajectory implementation, checks configured tolerances and writes position, velocity, acceleration or effort commands according to selected interfaces. Velocity-only or effort-only configurations can use the PID/feedforward adapter. Configuration creates ~/joint_trajectory input, ~/controller_state output, follow_joint_trajectory action, query_state service and conditional speed-scaling input. It handles goal preemption/cancellation and configured hold/deceleration paths; stopping safety and real-time performance were not tested. Companion trajectory.cpp, headers, generated parameter YAML/validators and their behavior are required but were not reviewed. lifecycle_msgs is explicitly included in this source; the other listed build/runtime dependencies come from package.xml/CMake. Optional BUILD_TESTING has additional declared test dependencies. CMake requests C++17; package 4.43.0 and the jazzy checkout are declarations, not tested ROS, OS, architecture, controller or robot combinations."
}
Invocation
{
"entrypoint": "pluginlib joint_trajectory_controller/JointTrajectoryController (controller_interface::ControllerInterface)",
"notes": "The plugin XML registers type joint_trajectory_controller::JointTrajectoryController and shared library joint_trajectory_controller. The source exports that class with PLUGINLIB_EXPORT_CLASS. A configured controller manager/lifecycle host calls on_configure/on_activate/update; this is not a standalone ros2 run program or a Hub recipe. Joint-space trajectory construction and kinematics remain caller/package responsibilities. Loading an appropriately configured host can write actual hardware command interfaces. The Hub retrieves one inert file only and did not build, load or execute the plugin."
}
Explicit compatibility
[]
Missing environment fields remain unknown. Discovery labels do not establish robot compatibility.
Evidence
Level: source_reviewed; runtime verification: not_run.
Complete selected C++ source, root Apache 2.0 license, package XML, CMake and plugin registration read as inert text. Official ROS Index canonical/jazzy metadata, exact commit, complete 768-entry tree and all ten selected immutable file bodies verified by Git blob identity, byte count and SHA-256. Fourteen bounded anonymous primary GETs total, all HTTP 200. No compilation, installation, plugin load, ROS/simulator/robot execution or measured compatibility/performance.
Source review and contributor reports do not establish task completion. Preserve upstream attribution and licenses.