Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions .github/workflows/build_and_test_rolling.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# This config uses industrial_ci (https://github.com/ros-industrial/industrial_ci.git).
# For troubleshooting, see readme (https://github.com/ros-industrial/industrial_ci/blob/master/README.rst)

name: Build and Test (rolling)

on:
workflow_dispatch:
pull_request:
push:
branches:
- main

jobs:
industrial_ci:
strategy:
matrix:
env:
- ROS_DISTRO: rolling
ROS_REPO: main
- ROS_DISTRO: rolling
ROS_REPO: testing
# galactic is not yet supported by industrial_ci
# - ROS_DISTRO: galactic

@henningkayser henningkayser May 18, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tried galactic and it seems to work just as well with the provided workspace dependencies. There are only some deprecation and formatting warnings that we still need to fix (same for rolling and galactic). Any reason not to enable galactic as well?

env:
UPSTREAM_WORKSPACE: moveit2_rolling.repos
AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src
TARGET_CMAKE_ARGS: -DCMAKE_BUILD_TYPE=Release
CCACHE_DIR: ${{ github.workspace }}/.ccache
BASEDIR: ${{ github.workspace }}/.work
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
CLANG_TIDY_BASE_REF: ${{ github.base_ref || github.ref }}

name: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: cache upstream_ws
uses: pat-s/always-upload-cache@v2.1.3
with:
path: ${{ env.BASEDIR }}/upstream_ws
key: upstream_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('moveit2_rolling.repos') }}-${{ github.run_id }}
restore-keys: |
upstream_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('moveit2_rolling.repos') }}
# The target directory cache doesn't include the source directory because
# that comes from the checkout. See "prepare target_ws for cache" task below
- name: cache target_ws
uses: pat-s/always-upload-cache@v2.1.3
with:
path: ${{ env.BASEDIR }}/target_ws
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }}
restore-keys: |
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}
- name: cache ccache
uses: pat-s/always-upload-cache@v2.1.3
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}
ccache-${{ env.CACHE_PREFIX }}
- name: industrial_ci
uses: 'ros-industrial/industrial_ci@master'
env: ${{ matrix.env }}
- name: upload test artifacts (on failure)
uses: actions/upload-artifact@v2
if: failure()
with:
name: test-results
path: ${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml
- name: prepare target_ws for cache
if: always()
run: |
du -sh ${{ env.BASEDIR }}/target_ws
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src
du -sh ${{ env.BASEDIR }}/target_ws
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ The MoveIt Motion Planning Framework for **ROS 2**. For ROS 1, see [MoveIt 1](ht

## Continuous Integration Status


[![Formatting (pre-commit)](https://github.com/ros-planning/moveit2/actions/workflows/format.yaml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2/actions/workflows/format.yaml?query=branch%3Amain)
[![Build and Test (Foxy)](https://github.com/ros-planning/moveit2/actions/workflows/build_and_test.yaml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2/actions/workflows/build_and_test.yaml?query=branch%3Amain)
[![Build and Test (Rolling)](https://github.com/ros-planning/moveit2/actions/workflows/build_and_test.yaml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2/actions/workflows/build_and_test_rolling.yaml?query=branch%3Amain)
[![Code Coverage](https://codecov.io/gh/ros-planning/moveit2/branch/main/graph/badge.svg?token=W7uHKcY0ly)](https://codecov.io/gh/ros-planning/moveit2)

## General MoveIt Documentation
Expand Down
61 changes: 61 additions & 0 deletions moveit2_rolling.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
repositories:
control_toolbox:
type: git
url: https://github.com/ros-controls/control_toolbox
version: ros2-master
geometric_shapes:
type: git
url: https://github.com/ros-planning/geometric_shapes
version: ros2
moveit_msgs:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious.. once rolling is working on all dependencies, we won't really need this file anymore, right? Or is it still required for checking the lastest versions before the corresponding rolling release is out? I'm wondering how changes that affect multiple repos would be synced then.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is needed because there are dependencies that are not released for rolling yet that are not in the normal repos file.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I already understood so far. The question is just if there is a recommended strategy for syncing changes in multiple repos without breaking Rolling (the release) all the time.

type: git
url: https://github.com/ros-planning/moveit_msgs
version: ros2
moveit_resources:
type: git
url: https://github.com/ros-planning/moveit_resources
version: ros2
object_recognition_msgs:
type: git
url: https://github.com/wg-perception/object_recognition_msgs
version: ros2
octomap:
type: git
url: https://github.com/octomap/octomap
version: devel
octomap_msgs:
type: git
url: https://github.com/OctoMap/octomap_msgs
version: ros2
ompl:
type: git
url: https://github.com/ompl/ompl
version: 1.5.0
random_numbers:
type: git
url: https://github.com/ros-planning/random_numbers
version: ros2
realtime_tools:
type: git
url: https://github.com/ros-controls/realtime_tools
version: foxy-devel
ros2_control:
type: git
url: https://github.com/ros-controls/ros2_control
version: master
ros2_controllers:
type: git
url: https://github.com/ros-controls/ros2_controllers
version: master
srdfdom:
type: git
url: https://github.com/ros-planning/srdfdom
version: ros2
warehouse_ros:
type: git
url: https://github.com/ros-planning/warehouse_ros
version: ros2
warehouse_ros_mongo:
type: git
url: https://github.com/ros-planning/warehouse_ros_mongo
version: ros2
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,7 @@ bool ompl_interface::ModelBasedPlanningContext::loadConstraintApproximations(con
constraints_library_->loadConstraintApproximations(constraint_path);
std::stringstream ss;
constraints_library_->printConstraintApproximations(ss);
RCLCPP_INFO(LOGGER, ss.str());
RCLCPP_INFO_STREAM(LOGGER, ss.str());
return true;
}
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ class GripperControllerHandle : public ActionBasedControllerHandle<control_msgs:
}
rclcpp_action::Client<control_msgs::action::GripperCommand>::SendGoalOptions send_goal_options;
// Active callback
send_goal_options.goal_response_callback = [this](const auto& /* unused-arg */) {
RCLCPP_DEBUG_STREAM(LOGGER, name_ << " started execution");
};
send_goal_options.goal_response_callback =
[this](std::shared_future<rclcpp_action::Client<control_msgs::action::GripperCommand>::GoalHandle::SharedPtr>
/* unused-arg */) { RCLCPP_DEBUG_STREAM(LOGGER, name_ << " started execution"); };
// Send goal
auto current_goal_future = controller_action_client_->async_send_goal(goal, send_goal_options);
current_goal_ = current_goal_future.get();
Expand Down Expand Up @@ -213,6 +213,6 @@ class GripperControllerHandle : public ActionBasedControllerHandle<control_msgs:
* joint is considered the command.
*/
std::set<std::string> command_joints_;
};
}; // namespace moveit_simple_controller_manager

} // end namespace moveit_simple_controller_manager
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,17 @@ bool FollowJointTrajectoryControllerHandle::sendTrajectory(const moveit_msgs::ms

rclcpp_action::Client<control_msgs::action::FollowJointTrajectory>::SendGoalOptions send_goal_options;
// Active callback
send_goal_options.goal_response_callback = [this](const auto& future) {
RCLCPP_INFO_STREAM(LOGGER, name_ << " started execution");
const auto& goal_handle = future.get();
if (!goal_handle)
RCLCPP_WARN(LOGGER, "Goal request rejected");
else
RCLCPP_INFO(LOGGER, "Goal request accepted!");
};
send_goal_options.goal_response_callback =
[this](
std::shared_future<rclcpp_action::Client<control_msgs::action::FollowJointTrajectory>::GoalHandle::SharedPtr>
future) {
RCLCPP_INFO_STREAM(LOGGER, name_ << " started execution");
const auto& goal_handle = future.get();
if (!goal_handle)
RCLCPP_WARN(LOGGER, "Goal request rejected");
else
RCLCPP_INFO(LOGGER, "Goal request accepted!");
};

done_ = false;
last_exec_ = moveit_controller_manager::ExecutionStatus::RUNNING;
Expand Down
2 changes: 1 addition & 1 deletion moveit_ros/moveit_servo/src/servo_calcs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ rcl_interfaces::msg::SetParametersResult ServoCalcs::robotLinkCommandFrameCallba
rcl_interfaces::msg::SetParametersResult result;
result.successful = true;
robot_link_command_frame_ = parameter.as_string();
RCLCPP_INFO(LOGGER, "robot_link_command_frame changed to: " + robot_link_command_frame_);
RCLCPP_INFO_STREAM(LOGGER, "robot_link_command_frame changed to: " + robot_link_command_frame_);
return result;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class KinematicsPluginLoader::KinematicsLoaderImpl
tip_debug << "Planning group '" << jmg->getName() << "' has tip(s): ";
for (const auto& tip : tips)
tip_debug << tip << ", ";
RCLCPP_DEBUG(LOGGER, tip_debug.str());
RCLCPP_DEBUG_STREAM(LOGGER, tip_debug.str());

return tips;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
set(MOVEIT_LIB_NAME moveit_trajectory_execution_manager)

find_package(tinyxml_vendor)

add_library(${MOVEIT_LIB_NAME} SHARED src/trajectory_execution_manager.cpp)
set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}")
ament_target_dependencies(${MOVEIT_LIB_NAME}
Expand Down
6 changes: 3 additions & 3 deletions moveit_ros/planning_interface/moveit_cpp/src/moveit_cpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ MoveItCpp::MoveItCpp(const rclcpp::Node::SharedPtr& node, const Options& options
if (!loadPlanningSceneMonitor(options.planning_scene_monitor_options))
{
const std::string error = "Unable to configure planning scene monitor";
RCLCPP_FATAL(LOGGER, error);
RCLCPP_FATAL_STREAM(LOGGER, error);
throw std::runtime_error(error);
}

Expand All @@ -76,15 +76,15 @@ MoveItCpp::MoveItCpp(const rclcpp::Node::SharedPtr& node, const Options& options
{
const std::string error = "Unable to construct robot model. Please make sure all needed information is on the "
"parameter server.";
RCLCPP_FATAL(LOGGER, error);
RCLCPP_FATAL_STREAM(LOGGER, error);
throw std::runtime_error(error);
}

bool load_planning_pipelines = true;
if (load_planning_pipelines && !loadPlanningPipelines(options.planning_pipeline_options))
{
const std::string error = "Failed to load planning pipelines from parameter server";
RCLCPP_FATAL(LOGGER, error);
RCLCPP_FATAL_STREAM(LOGGER, error);
throw std::runtime_error(error);
}

Expand Down