-
Notifications
You must be signed in to change notification settings - Fork 565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Port kinematic_constraints to ROS2 #42
Changes from 7 commits
7cdb756
0f079c9
5ace7e8
8d49463
d70f888
beb3bca
61cdfba
6b1dd61
57f271e
c6aa8e6
df09d3a
da78630
b3855c3
4ff5652
f4a7b2d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,59 @@ | ||
set(MOVEIT_LIB_NAME moveit_kinematic_constraints) | ||
|
||
add_library(${MOVEIT_LIB_NAME} | ||
if(WIN32) | ||
# set(append_library_dirs "$<TARGET_FILE_DIR:${PROJECT_NAME}>;$<TARGET_FILE_DIR:${PROJECT_NAME}_TestPlugins1>") | ||
else() | ||
set(append_library_dirs "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_BINARY_DIR}/../utils;${CMAKE_CURRENT_BINARY_DIR}/../robot_model;${CMAKE_CURRENT_BINARY_DIR}/../robot_state;${CMAKE_CURRENT_BINARY_DIR}/../collision_detection_fcl") | ||
endif() | ||
|
||
add_library(${MOVEIT_LIB_NAME} SHARED | ||
src/kinematic_constraint.cpp | ||
src/utils.cpp) | ||
|
||
set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") | ||
|
||
ament_target_dependencies(${MOVEIT_LIB_NAME} | ||
urdf | ||
urdfdom | ||
urdfdom_headers | ||
tf2_geometry_msgs | ||
visualization_msgs | ||
tf2_eigen | ||
) | ||
|
||
target_link_libraries(${MOVEIT_LIB_NAME} | ||
moveit_robot_model moveit_kinematics_base moveit_robot_state moveit_collision_detection_fcl moveit_utils | ||
${catkin_LIBRARIES} ${urdfdom_LIBRARIES} ${urdfdom_headers_LIBRARIES} ${Boost_LIBRARIES}) | ||
add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) | ||
moveit_collision_detection_fcl | ||
moveit_kinematics_base | ||
moveit_robot_state | ||
moveit_robot_model | ||
) | ||
|
||
|
||
install(TARGETS ${MOVEIT_LIB_NAME} | ||
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib) | ||
|
||
install(DIRECTORY include/ DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}) | ||
install(DIRECTORY include/ DESTINATION include) | ||
|
||
if(CATKIN_ENABLE_TESTING) | ||
if(BUILD_TESTING) | ||
find_package(ament_cmake_gtest REQUIRED) | ||
find_package(moveit_resources REQUIRED) | ||
find_package(resource_retriever REQUIRED) | ||
|
||
include_directories(${moveit_resources_INCLUDE_DIRS}) | ||
|
||
catkin_add_gtest(test_constraints test/test_constraints.cpp) | ||
target_link_libraries(test_constraints moveit_test_utils ${MOVEIT_LIB_NAME}) | ||
ament_add_gtest(test_constraints test/test_constraints.cpp | ||
mlautman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
APPEND_LIBRARY_DIRS "${append_library_dirs}") | ||
|
||
target_link_libraries(test_constraints | ||
moveit_kinematic_constraints | ||
moveit_collision_detection_fcl | ||
moveit_robot_model | ||
moveit_robot_state | ||
moveit_utils | ||
moveit_test_utils | ||
${geometric_shapes_LIBRARIES} | ||
resource_retriever::resource_retriever | ||
${MOVEIT_LIB_NAME} | ||
) | ||
endif() |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,9 +38,9 @@ | |
#define MOVEIT_KINEMATIC_CONSTRAINTS_UTILS_ | ||
|
||
#include <moveit_msgs/msg/motion_plan_request.hpp> | ||
#include <geometry_msgs/PointStamped.h> | ||
#include <geometry_msgs/PoseStamped.h> | ||
#include <geometry_msgs/QuaternionStamped.h> | ||
#include <geometry_msgs/msg/point_stamped.hpp> | ||
#include <geometry_msgs/msg/pose_stamped.hpp> | ||
#include <geometry_msgs/msg/quaternion_stamped.hpp> | ||
#include <moveit/robot_state/robot_state.h> | ||
#include <limits> | ||
|
||
|
@@ -118,7 +118,7 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const robot_state::RobotS | |
* | ||
* @return A full constraint message containing both constraints | ||
*/ | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, const geometry_msgs::PoseStamped& pose, | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, const geometry_msgs::msg::PoseStamped& pose, | ||
double tolerance_pos = 1e-3, double tolerance_angle = 1e-2); | ||
|
||
/** | ||
|
@@ -136,7 +136,7 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_n | |
* | ||
* @return A full constraint message containing both constraints | ||
*/ | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, const geometry_msgs::PoseStamped& pose, | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, const geometry_msgs::msg::PoseStamped& pose, | ||
const std::vector<double>& tolerance_pos, | ||
const std::vector<double>& tolerance_angle); | ||
|
||
|
@@ -152,7 +152,7 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_n | |
* @return A full constraint message containing the orientation constraint | ||
*/ | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, | ||
const geometry_msgs::QuaternionStamped& quat, | ||
const geometry_msgs::msg::QuaternionStamped& quat, | ||
double tolerance = 1e-2); | ||
|
||
/** | ||
|
@@ -169,8 +169,8 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_n | |
* @return A full constraint message containing the position constraint | ||
*/ | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, | ||
const geometry_msgs::Point& reference_point, | ||
const geometry_msgs::PointStamped& goal_point, | ||
const geometry_msgs::msg::Point& reference_point, | ||
const geometry_msgs::msg::PointStamped& goal_point, | ||
double tolerance = 1e-3); | ||
|
||
/** | ||
|
@@ -186,7 +186,7 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_n | |
* @return A full constraint message containing the position constraint | ||
*/ | ||
moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_name, | ||
const geometry_msgs::PointStamped& goal_point, | ||
const geometry_msgs::msg::PointStamped& goal_point, | ||
double tolerance = 1e-3); | ||
|
||
/** | ||
|
@@ -200,7 +200,8 @@ moveit_msgs::msg::Constraints constructGoalConstraints(const std::string& link_n | |
* | ||
* @return was the construction successful? | ||
*/ | ||
bool constructConstraints(XmlRpc::XmlRpcValue& params, moveit_msgs::msg::Constraints& constraints); | ||
// TODO rework this function | ||
// bool constructConstraints(XmlRpc::XmlRpcValue& params, moveit_msgs::msg::Constraints& constraints); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add TODO with missing dependency. Was this removed because xmlrpc is not available? If so, it looks like it is used in the ros1_bridge There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can actually use the rclcpp parameters to fix these kind of things, or at least, the way that I'm following. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @v4hn spent a lot of time on this feature. Perhaps you and he can collaborate on the best path for porting this. In the mean time, any time you comment out a feature, please add comments explaining why the feature is being removed and what steps would be necessary before re-enabling the feature |
||
} | ||
|
||
#endif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hardcoding relative paths is a bad idea.
I would recommend that for every library in this package that is used else ware you set a
<lib_name>_lib_dir
environment variable that can then be used by the testsA good example is the
rcl_lib_dir
I have taken the time to show how it is used below:The example uses rcl_add_custom_gtest but it works just as well with ament_add_gtest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you don't mind I prefer to merge this. And then I will fix them all together. Because we have other merged that use this style. I can open an issue to avoid forgetting it.