Skip to content

Commit 7ec8745

Browse files
committed
move to tf2_eigen everywhere (#301)
1 parent 55e30e2 commit 7ec8745

File tree

11 files changed

+47
-52
lines changed

11 files changed

+47
-52
lines changed

core/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ project(moveit_task_constructor_core)
33

44
find_package(Boost REQUIRED)
55
find_package(catkin REQUIRED COMPONENTS
6-
eigen_conversions
6+
tf2_eigen
77
geometry_msgs
88
moveit_core
99
moveit_ros_planning

core/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<build_depend>roscpp</build_depend>
1313
<exec_depend>roscpp</exec_depend>
1414

15-
<depend>eigen_conversions</depend>
15+
<depend>tf2_eigen</depend>
1616
<depend>geometry_msgs</depend>
1717
<depend>moveit_core</depend>
1818
<depend>moveit_ros_planning</depend>

core/src/solvers/pipeline_planner.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
#include <moveit/planning_pipeline/planning_pipeline.h>
4343
#include <moveit_msgs/MotionPlanRequest.h>
4444
#include <moveit/kinematic_constraints/utils.h>
45-
#include <eigen_conversions/eigen_msg.h>
45+
#include <tf2_eigen/tf2_eigen.h>
4646

4747
namespace moveit {
4848
namespace task_constructor {
@@ -181,7 +181,7 @@ bool PipelinePlanner::plan(const planning_scene::PlanningSceneConstPtr& from, co
181181

182182
geometry_msgs::PoseStamped target;
183183
target.header.frame_id = from->getPlanningFrame();
184-
tf::poseEigenToMsg(target_eigen, target.pose);
184+
target.pose = tf2::toMsg(target_eigen);
185185

186186
req.goal_constraints.resize(1);
187187
req.goal_constraints[0] = kinematic_constraints::constructGoalConstraints(

core/src/stages/compute_ik.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
#include <moveit/robot_state/robot_state.h>
4545

4646
#include <Eigen/Geometry>
47-
#include <eigen_conversions/eigen_msg.h>
47+
#include <tf2_eigen/tf2_eigen.h>
4848
#include <chrono>
4949
#include <functional>
5050
#include <iterator>
@@ -72,14 +72,14 @@ ComputeIK::ComputeIK(const std::string& name, Stage::pointer&& child) : WrapperB
7272
void ComputeIK::setIKFrame(const Eigen::Isometry3d& pose, const std::string& link) {
7373
geometry_msgs::PoseStamped pose_msg;
7474
pose_msg.header.frame_id = link;
75-
tf::poseEigenToMsg(pose, pose_msg.pose);
75+
pose_msg.pose = tf2::toMsg(pose);
7676
setIKFrame(pose_msg);
7777
}
7878

7979
void ComputeIK::setTargetPose(const Eigen::Isometry3d& pose, const std::string& frame) {
8080
geometry_msgs::PoseStamped pose_msg;
8181
pose_msg.header.frame_id = frame;
82-
tf::poseEigenToMsg(pose, pose_msg.pose);
82+
pose_msg.pose = tf2::toMsg(pose);
8383
setTargetPose(pose_msg);
8484
}
8585

@@ -259,7 +259,7 @@ void ComputeIK::compute() {
259259
target_pose_msg.header.frame_id = scene->getPlanningFrame();
260260

261261
Eigen::Isometry3d target_pose;
262-
tf::poseMsgToEigen(target_pose_msg.pose, target_pose);
262+
tf2::fromMsg(target_pose_msg.pose, target_pose);
263263
if (target_pose_msg.header.frame_id != scene->getPlanningFrame()) {
264264
if (!scene->knowsFrameTransform(target_pose_msg.header.frame_id)) {
265265
ROS_WARN_STREAM_NAMED("ComputeIK",
@@ -286,7 +286,7 @@ void ComputeIK::compute() {
286286
} else {
287287
ik_pose_msg = boost::any_cast<geometry_msgs::PoseStamped>(value);
288288
Eigen::Isometry3d ik_pose;
289-
tf::poseMsgToEigen(ik_pose_msg.pose, ik_pose);
289+
tf2::fromMsg(ik_pose_msg.pose, ik_pose);
290290
if (robot_model->hasLinkModel(ik_pose_msg.header.frame_id)) {
291291
link = robot_model->getLinkModel(ik_pose_msg.header.frame_id);
292292
} else {

core/src/stages/fix_collision_objects.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
#include <rviz_marker_tools/marker_creation.h>
4747
#include <Eigen/Geometry>
48-
#include <eigen_conversions/eigen_msg.h>
48+
#include <tf2_eigen/tf2_eigen.h>
4949
#include <ros/console.h>
5050

5151
namespace vm = visualization_msgs;
@@ -138,17 +138,16 @@ SubTrajectory FixCollisionObjects::fixCollisions(planning_scene::PlanningScene&
138138
// marker indicating correction
139139
const cd::Contact& c = info.second.front();
140140
rviz_marker_tools::setColor(m.color, failure ? rviz_marker_tools::RED : rviz_marker_tools::GREEN);
141-
tf::poseEigenToMsg(Eigen::Translation3d(c.pos) *
142-
Eigen::Quaterniond::FromTwoVectors(Eigen::Vector3d::UnitX(), correction),
143-
m.pose);
141+
m.pose = tf2::toMsg(Eigen::Translation3d(c.pos) *
142+
Eigen::Quaterniond::FromTwoVectors(Eigen::Vector3d::UnitX(), correction));
144143
rviz_marker_tools::makeArrow(m, depth, true);
145144
result.markers().push_back(m);
146145
if (failure)
147146
break;
148147

149148
// fix collision by shifting object along correction direction
150149
if (!dir.empty()) // if explicitly given, use this correction direction
151-
tf::vectorMsgToEigen(boost::any_cast<geometry_msgs::Vector3>(dir), correction);
150+
tf2::fromMsg(boost::any_cast<geometry_msgs::Vector3>(dir), correction);
152151

153152
const std::string& name = c.body_type_1 == cd::BodyTypes::WORLD_OBJECT ? c.body_name_1 : c.body_name_2;
154153
scene.getWorldNonConst()->moveObject(name, Eigen::Isometry3d(Eigen::Translation3d(correction)));

core/src/stages/generate_grasp_pose.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
#include <moveit/robot_state/conversions.h>
4444

4545
#include <Eigen/Geometry>
46-
#include <eigen_conversions/eigen_msg.h>
46+
#include <tf2_eigen/tf2_eigen.h>
4747

4848
namespace moveit {
4949
namespace task_constructor {
@@ -168,7 +168,7 @@ void GenerateGraspPose::compute() {
168168
current_angle += props.get<double>("angle_delta");
169169

170170
InterfaceState state(scene);
171-
tf::poseEigenToMsg(target_pose, target_pose_msg.pose);
171+
target_pose_msg.pose = tf2::toMsg(target_pose);
172172
state.properties().set("target_pose", target_pose_msg);
173173
props.exposeTo(state.properties(), { "pregrasp", "grasp" });
174174

core/src/stages/generate_place_pose.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
#include <moveit/robot_state/attached_body.h>
4646

4747
#include <Eigen/Geometry>
48-
#include <eigen_conversions/eigen_msg.h>
48+
#include <tf2_eigen/tf2_eigen.h>
4949

5050
namespace moveit {
5151
namespace task_constructor {
@@ -97,13 +97,13 @@ void GeneratePlacePose::compute() {
9797

9898
const geometry_msgs::PoseStamped& pose_msg = props.get<geometry_msgs::PoseStamped>("pose");
9999
Eigen::Isometry3d target_pose;
100-
tf::poseMsgToEigen(pose_msg.pose, target_pose);
100+
tf2::fromMsg(pose_msg.pose, target_pose);
101101
// target pose w.r.t. planning frame
102102
scene->getTransforms().transformPose(pose_msg.header.frame_id, target_pose, target_pose);
103103

104104
const geometry_msgs::PoseStamped& ik_frame_msg = props.get<geometry_msgs::PoseStamped>("ik_frame");
105105
Eigen::Isometry3d ik_frame;
106-
tf::poseMsgToEigen(ik_frame_msg.pose, ik_frame);
106+
tf2::fromMsg(ik_frame_msg.pose, ik_frame);
107107
ik_frame = robot_state.getGlobalLinkTransform(ik_frame_msg.header.frame_id) * ik_frame;
108108
Eigen::Isometry3d object_to_ik = orig_object_pose.inverse() * ik_frame;
109109

@@ -123,7 +123,7 @@ void GeneratePlacePose::compute() {
123123
// target ik_frame's pose w.r.t. planning frame
124124
geometry_msgs::PoseStamped target_pose_msg;
125125
target_pose_msg.header.frame_id = scene->getPlanningFrame();
126-
tf::poseEigenToMsg(object * object_to_ik, target_pose_msg.pose);
126+
target_pose_msg.pose = tf2::toMsg(object * object_to_ik);
127127

128128
InterfaceState state(scene);
129129
forwardProperties(*s.end(), state); // forward properties from inner solutions

core/src/stages/move_relative.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
#include <moveit/planning_scene/planning_scene.h>
4343
#include <rviz_marker_tools/marker_creation.h>
44-
#include <eigen_conversions/eigen_msg.h>
44+
#include <tf2_eigen/tf2_eigen.h>
4545

4646
namespace moveit {
4747
namespace task_constructor {
@@ -70,7 +70,7 @@ MoveRelative::MoveRelative(const std::string& name, const solvers::PlannerInterf
7070
void MoveRelative::setIKFrame(const Eigen::Isometry3d& pose, const std::string& link) {
7171
geometry_msgs::PoseStamped pose_msg;
7272
pose_msg.header.frame_id = link;
73-
tf::poseEigenToMsg(pose, pose_msg.pose);
73+
pose_msg.pose = tf2::toMsg(pose);
7474
setIKFrame(pose_msg);
7575
}
7676

@@ -139,8 +139,8 @@ static void visualizePlan(std::deque<visualization_msgs::Marker>& markers, Inter
139139
rviz_marker_tools::makeCylinder(m, 0.1 * linear_norm, distance);
140140
rviz_marker_tools::setColor(m.color, rviz_marker_tools::LIME_GREEN);
141141
// position half-way between pos_link and pos_reached
142-
tf::pointEigenToMsg(0.5 * (pos_link + pos_reached), m.pose.position);
143-
tf::quaternionEigenToMsg(quat_cylinder, m.pose.orientation);
142+
m.pose.position = tf2::toMsg(Eigen::Vector3d{ 0.5 * (pos_link + pos_reached) });
143+
m.pose.orientation = tf2::toMsg(quat_cylinder);
144144
markers.push_back(m);
145145
}
146146
} else {
@@ -154,8 +154,8 @@ static void visualizePlan(std::deque<visualization_msgs::Marker>& markers, Inter
154154
rviz_marker_tools::makeCylinder(m, 0.1 * linear_norm, linear_norm - distance);
155155
rviz_marker_tools::setColor(m.color, rviz_marker_tools::RED);
156156
// position half-way between pos_reached and pos_target
157-
tf::pointEigenToMsg(0.5 * (pos_reached + pos_target), m.pose.position);
158-
tf::quaternionEigenToMsg(quat_cylinder, m.pose.orientation);
157+
m.pose.position = tf2::toMsg(Eigen::Vector3d{ 0.5 * (pos_reached + pos_target) });
158+
m.pose.orientation = tf2::toMsg(quat_cylinder);
159159
markers.push_back(m);
160160
}
161161
}
@@ -224,8 +224,8 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
224224
try { // try to extract Twist
225225
const geometry_msgs::TwistStamped& target = boost::any_cast<geometry_msgs::TwistStamped>(direction);
226226
const Eigen::Isometry3d& frame_pose = scene->getFrameTransform(target.header.frame_id);
227-
tf::vectorMsgToEigen(target.twist.linear, linear);
228-
tf::vectorMsgToEigen(target.twist.angular, angular);
227+
tf2::fromMsg(target.twist.linear, linear);
228+
tf2::fromMsg(target.twist.angular, angular);
229229

230230
linear_norm = linear.norm();
231231
angular_norm = angular.norm();
@@ -267,7 +267,7 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
267267
try { // try to extract Vector
268268
const geometry_msgs::Vector3Stamped& target = boost::any_cast<geometry_msgs::Vector3Stamped>(direction);
269269
const Eigen::Isometry3d& frame_pose = scene->getFrameTransform(target.header.frame_id);
270-
tf::vectorMsgToEigen(target.vector, linear);
270+
tf2::fromMsg(target.vector, linear);
271271

272272
// use max distance?
273273
if (max_distance > 0.0) {
@@ -292,7 +292,7 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
292292
COMPUTE:
293293
// transform target pose such that ik frame will reach there if link does
294294
Eigen::Isometry3d ik_pose;
295-
tf::poseMsgToEigen(ik_pose_msg.pose, ik_pose);
295+
tf2::fromMsg(ik_pose_msg.pose, ik_pose);
296296
target_eigen = target_eigen * ik_pose.inverse();
297297

298298
success = planner_->plan(state.scene(), *link, target_eigen, jmg, timeout, robot_trajectory, path_constraints);

core/src/stages/move_to.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@
3636
Desc: Move to joint-state or Cartesian goal pose
3737
*/
3838

39+
#include <moveit/planning_scene/planning_scene.h>
40+
#include <moveit/robot_state/conversions.h>
41+
#include <tf2_eigen/tf2_eigen.h>
42+
3943
#include <moveit/task_constructor/stages/move_to.h>
4044
#include <moveit/task_constructor/cost_terms.h>
41-
42-
#include <moveit/planning_scene/planning_scene.h>
4345
#include <rviz_marker_tools/marker_creation.h>
44-
#include <eigen_conversions/eigen_msg.h>
45-
#include <moveit/robot_state/conversions.h>
4646

4747
namespace moveit {
4848
namespace task_constructor {
@@ -70,7 +70,7 @@ MoveTo::MoveTo(const std::string& name, const solvers::PlannerInterfacePtr& plan
7070
void MoveTo::setIKFrame(const Eigen::Isometry3d& pose, const std::string& link) {
7171
geometry_msgs::PoseStamped pose_msg;
7272
pose_msg.header.frame_id = link;
73-
tf::poseEigenToMsg(pose, pose_msg.pose);
73+
pose_msg.pose = tf2::toMsg(pose);
7474
setIKFrame(pose_msg);
7575
}
7676

@@ -145,7 +145,7 @@ bool MoveTo::getPoseGoal(const boost::any& goal, const planning_scene::PlanningS
145145
Eigen::Isometry3d& target_eigen) {
146146
try {
147147
const geometry_msgs::PoseStamped& target = boost::any_cast<geometry_msgs::PoseStamped>(goal);
148-
tf::poseMsgToEigen(target.pose, target_eigen);
148+
tf2::fromMsg(target.pose, target_eigen);
149149

150150
// transform target into global frame
151151
const Eigen::Isometry3d& frame = scene->getFrameTransform(target.header.frame_id);
@@ -161,7 +161,7 @@ bool MoveTo::getPointGoal(const boost::any& goal, const moveit::core::LinkModel*
161161
try {
162162
const geometry_msgs::PointStamped& target = boost::any_cast<geometry_msgs::PointStamped>(goal);
163163
Eigen::Vector3d target_point;
164-
tf::pointMsgToEigen(target.point, target_point);
164+
tf2::fromMsg(target.point, target_point);
165165

166166
// transform target into global frame
167167
const Eigen::Isometry3d& frame = scene->getFrameTransform(target.header.frame_id);
@@ -234,13 +234,13 @@ bool MoveTo::compute(const InterfaceState& state, planning_scene::PlanningSceneP
234234
// visualize plan with frame at target pose and frame at link
235235
geometry_msgs::PoseStamped target;
236236
target.header.frame_id = scene->getPlanningFrame();
237-
tf::poseEigenToMsg(target_eigen, target.pose);
237+
target.pose = tf2::toMsg(target_eigen);
238238
rviz_marker_tools::appendFrame(solution.markers(), target, 0.1, "ik frame");
239239
rviz_marker_tools::appendFrame(solution.markers(), ik_pose_msg, 0.1, "ik frame");
240240

241241
// transform target pose such that ik frame will reach there if link does
242242
Eigen::Isometry3d ik_pose;
243-
tf::poseMsgToEigen(ik_pose_msg.pose, ik_pose);
243+
tf2::fromMsg(ik_pose_msg.pose, ik_pose);
244244
target_eigen = target_eigen * ik_pose.inverse();
245245

246246
// plan to Cartesian target

core/src/stages/simple_grasp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
#include <moveit/planning_scene/planning_scene.h>
4545

4646
#include <Eigen/Geometry>
47-
#include <eigen_conversions/eigen_msg.h>
47+
#include <tf2_eigen/tf2_eigen.h>
4848

4949
namespace moveit {
5050
namespace task_constructor {
@@ -145,7 +145,7 @@ void SimpleGraspBase::init(const moveit::core::RobotModelConstPtr& robot_model)
145145
void SimpleGraspBase::setIKFrame(const Eigen::Isometry3d& pose, const std::string& link) {
146146
geometry_msgs::PoseStamped pose_msg;
147147
pose_msg.header.frame_id = link;
148-
tf::poseEigenToMsg(pose, pose_msg.pose);
148+
pose_msg.pose = tf2::toMsg(pose);
149149
setIKFrame(pose_msg);
150150
}
151151

0 commit comments

Comments
 (0)