|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |
Launch files
Messages
Services
Plugins
Recent questions tagged rosbot_moveit at Robotics Stack Exchange
|
rosbot_moveit package from rosbot_ros repohusarion_asset_server rosbot rosbot_bringup rosbot_controller rosbot_description rosbot_gazebo rosbot_hardware_interfaces rosbot_joy rosbot_localization rosbot_moveit rosbot_utils |
ROS Distro
|
Package Summary
| Version | 1.3.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/husarion/rosbot_ros.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-10-26 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Husarion
Authors
- Rafal Gorecki
Changelog for package rosbot_moveit
1.3.1 (2026-10-26)
-
Clamp near-limit MoveIt start states onto the joint limits (#200)
- Widen MoveIt gripper bounds to the measured stops
- Clamp near-limit start states instead of widening bounds
-
Arm on its own controller_manager (HW + sim), full MoveIt model (#199)
* Run manipulator under its own controller_manager on HW ros2_control loads hardware all-or-nothing, so a missing arm on a manipulation config took the drive down with it. Arm controllers, hardware state and arm_control now live on manipulator_controller_manager (breaking for tools that addressed them on controller_manager); simulation is unchanged.
* Two controller_managers in sim too; full MoveIt model Simulation now hosts manipulator_controller_manager in a second gz_ros2_control plugin, so names and tooling match hardware; the manipulator_ros2_control / spawn_controllers launch args and the arm_control controller_manager argument are gone. move_group and servo read robot_description from robot_state_publisher instead of building it from manipulation.yaml, which left manipulation_pro's bracket + ZED out of collision checking. Existing config_dir copies need the updated rosbot_xl.srdf.
-
Contributors: Rafal Gorecki
1.3.0 (2026-09-24)
- Add servo_enabled arg to skip servo_node when arm is idle servo_node isn't a lifecycle node -- its collision-checking loop runs continuously once started (~91% of one CPU core, measured 2026-08-17) and can't be paused. Defaults to arm_activate but is independently overridable.
- Contributors: rafal-gorecki
1.2.4 (2026-09-01)
1.2.3 (2026-08-26)
1.2.2 (2026-08-25)
- moveit_servo: cut collision-check CPU cost, fix config_dir gap (#193) * moveit_servo: fix duplicate PSM + cut collision_check_rate 30->20Hz move_group.launch.py already runs move_group, the canonical primary PlanningSceneMonitor -- is_primary_planning_scene_monitor:true had servo duplicating its own world/scene monitor against the yaml's own documented guidance to set it false in that case. collision_check_rate 30Hz was the single hottest loop in the manipulator stack (~91% of one CPU core, live-measured on the Jetson) -- collision_monitor runs it as an always-on thread independent of publish_period, doing two full FCL checks every tick. Dropped to 20Hz: still 1.33x margin under the 20mm self-collision threshold at the 1 rad/s joy2servo velocity clamp (was 2x at 30Hz), for a ~33% cut. Not yet HW-verified -- needs a fast jog toward self-collision/an obstacle to confirm it still stops before contact. * servo.launch.py: honor config_dir for moveit_servo.yaml ParameterBuilder("rosbot_moveit").yaml("config/moveit_servo.yaml") always resolved to the package's installed share dir at launch-graph build time, completely ignoring config_dir -- unlike joy_config right next to it, which already went through pkg_config_dir. Found while trying to live-tune collision_check_rate on .163: the config_dir copy create_config_dir already drops there was silently unused dead weight. Moved the moveit_servo param load into an OpaqueFunction (matching rviz.launch.py's existing pattern) so config_dir -- a LaunchConfiguration, only resolvable against a real LaunchContext -- can gate a plain os.path read of either <config_dir>/rosbot_moveit/config/moveit_servo.yaml or the package share default, wrapped under the moveit_servo: namespace the node's generate_parameter_library listener expects. Not yet build-verified (rosbot_moveit isn't a locally-built overlay here) -- needs a colcon or snap rebuild + relaunch to confirm the arg still resolves and servo_node still gets its params. * rosbot_moveit: honor config_dir for SRDF/kinematics/joint_limits/moveit_controllers Same class of gap as servo.launch.py's moveit_servo.yaml (fixed in the previous commit): every launch file building a MoveItConfigsBuilder (move_group, home, dock, rviz, and servo's own SRDF/kinematics/ joint_limits calls) always read from rosbot_moveit's installed package share, config_dir or not. Each file now conditionally chains the builder's file_path overrides (robot_description_semantic/robot_description_kinematics/joint_limits/ trajectory_execution -- all accept an absolute path per moveit_configs_utils, same Path-join behavior ParameterBuilder uses) when config_dir is set, falling through to the untouched default otherwise. Each override list matches only what that file's Node(s) actually consume as parameters -- e.g. rviz2 only takes robot_description_kinematics + planning_pipelines, so only kinematics is overridden there. ompl_planning.yaml is NOT covered: MoveItConfigsBuilder.planning_pipelines() has no file_path override and always scans <package_share>/config/ *_planning.yaml with no way to redirect the scan directory -- a moveit_configs_utils limitation, documented inline rather than routed around with a
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rosbot | |
| rosbot_controller |