Hello, everyone.
Thank for looking this thread.
I want to get end-effector(link_t)'s pose using `moveit::planning_interface::MoveGroupInterface::getCurrentPose()`.
But, I could not get end-effector's pose and orientation like below.
header:
seq: 0
stamp: 74.419000000
frame_id: world
pose:
position:
x: 0
y: 0
z: 0
orientation:
x: 0
y: 0
z: 0
w: 1
I got following error (Failed to fetch current robot state)
robot@robot-NG:~$ rosrun sia20_control sequential_ik_solver
Is start spinner? true
[ INFO] [1559035400.947083805]: Loading robot model 'sia20'...
[ WARN] [1559035401.013390105]: Kinematics solver doesn't support #attempts anymore, but only a timeout.
Please remove the parameter '/robot_description_kinematics/sia20_arm/kinematics_solver_attempts' from your configuration.
[ INFO] [1559035402.311004825, 73.418000000]: Ready to take commands for planning group sia20_arm.
end effector name is
[ INFO] [1559035403.314437642, 74.418000000]: Didn't received robot state (joint angles) with recent timestamp within 1 seconds.
Check clock synchronization if your are running ROS across multiple machines!
[ERROR] [1559035403.314531291, 74.419000000]: Failed to fetch current robot state
header:
seq: 0
stamp: 74.419000000
frame_id: world
pose:
position:
x: 0
y: 0
z: 0
orientation:
x: 0
y: 0
z: 0
w: 1
[ INFO] [1559035404.314786192, 75.416000000]: Didn't received robot state (joint angles) with recent timestamp within 1 seconds.
Check clock synchronization if your are running ROS across multiple machines!
[ERROR] [1559035404.314857179, 75.417000000]: Failed to fetch current robot state
header:
seq: 0
stamp: 75.417000000
frame_id: world
pose:
position:
x: 0
y: 0
z: 0
orientation:
x: 0
y: 0
z: 0
w: 1
When I run following program.
#include
#include
#include
#include
#include
int main(int argc, char* argv[])
{
ros::init(argc, argv, "sequential_ik_solver");
ros::NodeHandle node_handle;
ros::AsyncSpinner spinner(3);
spinner.start();
std::cout << "Is start spinner? " << std::boolalpha << spinner.canStart() << std::endl;
const std::string PLANNING_GROUP = "panda_arm";
moveit::planning_interface::MoveGroupInterface move_group(PLANNING_GROUP);
//move_group.setEndEffectorLink("link_t");
std::cout << "end effector name is " << move_group.getEndEffector() << std::endl;
while (ros::ok()) {
std::cout << move_group.getCurrentPose() << std::endl;
}
return 0;
}
I'm glad if you know how to solve this problem it or come up with the cause, let me know it.
Thanks in advance.
[Additional information]
- [source code](https://github.com/harumo11/sia20/tree/master/sia20_moveit_config)
- ROS distro : melodic
If you need additional information, feel free to tell me it.
↧