Hello everyone,
i have a script where i add objects to the Planning Scene in MoveIt!. I want to clear all previously added objects at the beginning of the script, however, that does not work. What am i doing wrong? I also tried to iterate over all known objects but without success.
Is it because every time i start the script i create a new node and the objects of the "previous" node are not accessible?
rospy.init_node('planningscenenode', anonymous=True)
scene = moveit_commander.PlanningSceneInterface()
scene.remove_world_object() # Does not work at the beginning
sleep(1)
co = CollisionObject()
co.id = 'plate'+str(0)
co.meshes = rospkg.RosPack().get_path('agilus')+"/meshes/" + "plate.stl"
ps = PoseStamped()
ps.pose.position.x = -0.6
ps.pose.position.y = -0.6
ps.pose.position.z = 0
ps.pose.orientation = Quaternion(*tf.transformations.quaternion_from_euler(np.deg2rad(float(0)), np.deg2rad(float(0)), np.deg2rad(float(0))))
co.mesh_poses = ps
co.mesh_poses.header.frame_id = '/base_link'
scene.add_mesh(co.id, co.mesh_poses, co.meshes)
Thanks in advance!
↧
Clearing PlanningScene at beginning of script (moveit_commander)
↧
moveit cant control real robot(phantomx pincher)
Hi
I am using ros kinetic in ubuntu 16.04 lts.
I try to control phantomx_pincher robot arm.
I downloaded https://github.com/turtlebot/turtlebot_arm and also arbotix package
ı can control each servo also with arbotix_gui command but ı cannot control with moveit ?
after writing ,roslaunch turtlebot_arm_bringup arm.launch. What should ı do ?
↧
↧
MoveIt: troubles with joint values
I have just started with ROS and MoveIt! and I'd like to use it for planning trajectories on a Sawyer robot (ROS version: kinetic). I have followed the [tutorial on SDK intera webpage](http://sdk.rethinkrobotics.com/intera/MoveIt_Tutorial) then I went through the [Python tutorial](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/pr2_tutorials/planning/scripts/doc/move_group_python_interface_tutorial.html) linked at the end of that page.
After the commands `roslaunch sayer_moveit_config sawyer_movit.launch`and `roslaunch sayer_moveit_config group_movit.launch`, I ran `python tutorial.py`, the script containing the code in the linked Python tutorial, with the only difference that I defined `group = moveit_commander.MoveGroupCommander("right_arm")` instead of left_arm (because Sawyer robot has only right arm).
Well, in Rviz I can see the planned trajectory. The problem arose while attempting to execute the plan: in the output I can read
1) a vector of zeros for 'positions', like in [this question](https://groups.google.com/forum/#!topic/moveit-users/jKV9QuHeFXU) (but I don't have to rename the joint_states topic, because for Sawyer the topic is already '/robot/joint_states')
2) "Joint values for monitored state are requested but the full state is not known", whilst `$ rostopic echo /robot/joint_states` shows a stream of positions..
Googling this error, I have found [here](http://docs.ros.org/jade/api/moveit_ros_planning_interface/html/move__group_8cpp_source.html)
if (!current_state_monitor_->waitForCurrentState(opt_.group_name_, wait_seconds))
ROS_WARN_NAMED("move_group_interface", "Joint values for monitored state are requested but the full state is not "known");
Do you have some some suggestion? What's wrong? I only have [these files](https://github.com/RethinkRobotics/sawyer_moveit) and the Python tutorial. Many thanks.
↧
No motion plan for iiwa arm found
Hi,
I am trying to control KUKA iiwa7 arm with MoveIt!. I use Python tool moveit_commander to do the job.
I have found that iiwa remaps all topic for `robot_description,` `robot_description_semantic,` `move_group` etc. to `/iiwa/` namespace, so all of the topic are available at `/iiwa/move_group` etc.
When I run the sample script based on this tutorial http://docs.ros.org/indigo/api/moveit_tutorials/html/doc/pr2_tutorials/planning/scripts/doc/move_group_python_interface_tutorial.html with proper group name it woks. Same is whenI run the tool in separate launchfile which somes for demo purposes movit_commander_cmd.py.
I started to write my own script and initialization is OK, but when i try to plan a movement I get this error:
[ INFO] [1517566521.148654816, 353.165000000]: ABORTED: No motion plan found. No execution attempted.
When I take a look at topic it is all there:
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/set_link_state
/gazebo/set_model_state
/iiwa/PositionJointInterface_trajectory_controller/command
/iiwa/PositionJointInterface_trajectory_controller/follow_joint_trajectory/cancel
/iiwa/PositionJointInterface_trajectory_controller/follow_joint_trajectory/feedback
/iiwa/PositionJointInterface_trajectory_controller/follow_joint_trajectory/goal
/iiwa/PositionJointInterface_trajectory_controller/follow_joint_trajectory/result
/iiwa/PositionJointInterface_trajectory_controller/follow_joint_trajectory/status
/iiwa/PositionJointInterface_trajectory_controller/state
/iiwa/attached_collision_object
/iiwa/collision_object
/iiwa/execute_trajectory/cancel
/iiwa/execute_trajectory/feedback
/iiwa/execute_trajectory/goal
/iiwa/execute_trajectory/result
/iiwa/execute_trajectory/status
/iiwa/joint_states
/iiwa/move_group/cancel
/iiwa/move_group/display_contacts
/iiwa/move_group/display_planned_path
/iiwa/move_group/feedback
/iiwa/move_group/goal
/iiwa/move_group/monitored_planning_scene
/iiwa/move_group/ompl/parameter_descriptions
/iiwa/move_group/ompl/parameter_updates
/iiwa/move_group/plan_execution/parameter_descriptions
/iiwa/move_group/plan_execution/parameter_updates
/iiwa/move_group/planning_scene_monitor/parameter_descriptions
/iiwa/move_group/planning_scene_monitor/parameter_updates
/iiwa/move_group/result
/iiwa/move_group/sense_for_plan/parameter_descriptions
/iiwa/move_group/sense_for_plan/parameter_updates
/iiwa/move_group/status
/iiwa/move_group/trajectory_execution/parameter_descriptions
/iiwa/move_group/trajectory_execution/parameter_updates
/iiwa/pickup/cancel
/iiwa/pickup/feedback
/iiwa/pickup/goal
/iiwa/pickup/result
/iiwa/pickup/status
/iiwa/place/cancel
/iiwa/place/feedback
/iiwa/place/goal
/iiwa/place/result
/iiwa/place/status
/iiwa/planning_scene
/iiwa/planning_scene_world
/iiwa/recognized_object_array
/iiwa/rviz_MS_7788_3225_8859176999747549805/motionplanning_planning_scene_monitor/parameter_descriptions
/iiwa/rviz_MS_7788_3225_8859176999747549805/motionplanning_planning_scene_monitor/parameter_updates
/iiwa/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
/iiwa/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update
/iiwa/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full
/iiwa/trajectory_execution_event
/rosout
/rosout_agg
/tf
/tf_static
In my launchfile where I start my Pyton script I use parameter `ns="iiwa"` but it does not work.
Am I missing? Here is my Python source https://drive.google.com/open?id=1zbw-sXVAxI5BC_J1_lDxNyqC9nkrR0Jd
Thank you, Michael
↧
Move ur10 with ROS topic
Hi, with my project I'm trying to move the ur10 robot and I've attached a 3-finger gripper at the end-effector. I've already found some documentation on how to move it giving values to the joints, however my goal would be to give a final pose of the end-effector and make it unfold in order to get to that pose.
My thought would be of using the inverse kinematics and as you can imagine it's quite complex and I can't find it. I'm trying to simulate the robot in gazebo so I can see it moving, so I would need a way of setting a final pose for the end effector and with this calculate the joints positions or simply make it move to there.
I'd appreciate some feedback
↧
↧
Add collison object from a urdf file in moveit
If a collision object is defined in a urdf file similar to a robot_description,
Is there a way to add collision objects from a urdf file in PlanningScene of moveit?
↧
multiple move_group nodes on different machines
Hi,
I am trying to plan and control trajectories on a tablesize robot. The robot itself consists of a raspery pi that does all the low level stuff (motor control etc). It is running ros nodes including a move_group node and a high level commander node which provides an action server for simple tasks (like go to x, or move joints like y). This high level commander node uses move_it for trajectory planning.
I want to do give orders from another machine connected via network that include some collision avoidance. However since the rasperry pi lacks computational power, i want to do the planing on the other machine. This means i want to run a second move_group node under the same ROS_MASTER but under another namespace (say planningNS) so i can keep track of all collision object in that planing move_group and then execute the plan on the robot. The later is no problem when enhancing the highlevel commander by a "set plan action".
My problem is that i don't quite know to deal with the different namespaces. Launching another move_group node under different namespace, with different scenecontexts etc works fine, but how do i specify in my code which move group node should be picked when calling something like:
moveit::planning_interface::MoveGroupInterface move_group(loadOptions);
moveit::planning_interface::PlanningSceneInterface planning_scene_interface;
I could not find any method to set the namespace for say the planning scene. Any of you had experiences with running multiple move_group nodes and how to address this correctly?
↧
moveIT multiple move_group nodes
Hi
Is it possible to run multiple move_group nodes under different name spaces and then specifiy in code which one to use?
I want to control a robot that is running ros including a move_group and a high level interface for that (like go to pos x or move joint to y). Since it runs on a rasperzy pi its computational power is quite poor so i want to do the scene planing including object avoidance on another machine on the network that then should give the execution command to the robot. Therefore I launch a second move_group with planing scene context etc, in a different namespace (`/planningNS`)
I figured out how to send the trajectiry to the robot, but i have problems at generating the trajectory since in my code that runs on the "offline" machine i use the move group interface like this :
moveit::planning_interface::MoveGroupInterface::Options loadOptions("arm");
moveit::planning_interface::MoveGroupInterface move_group(loadOptions);
moveit::planning_interface::PlanningSceneInterface planning_scene_interface;
I could not find a way to specify which action servers should be taken for these instances (it takes the one from the `/move_group node`, but i want to take those of the `/planningNS/move_group`
Does anyone of you have experience with running multiple move_group nodes, and how to adress this correctly. The documentation does not say a word about how to do that.
Best
↧
Moveit interactive marker missing on new kinetic version
I was using Moveit totally fine on ROS Kinetic (version: 1.12.7). However, after I upgraded to the newer version (1.12.12). the interactive markers just disappear. Anyone has the same problem or know how to solve this? Thanks a lot.
↧
↧
change motor speed by using dynamixel motor with MoveIt
Dear all,
Right now I want to change speed of a certain motor. I am using joint position controller and joint trajectory action controller for my customized robot arm. I found after I changed the joint speed, speed did increase. However after I executed the planned trajectory, I found the speed came back to the original speed. Planing a path will not change but just execution. Hence I assume execute function will use default motor speed to run execution but I can't find where.
Thanks to any suggestion.
↧
Collision checking using MoveIt!
Hello everone,
I am using ROS Indigo on Xubuntu 14.04.5 LTS and having issues with collision detection using MoveIt (ros-indigo-moveit:amd64/trusty 0.7.13-0trusty-20180111-003649-0800).
When I start the demo.launch created by the setup assistant, I can check visually for collisions (parts appear in red) in rviz by changing the joint values and updating the new goal state as "current". (No collisions are indicated before updating)
After following several tutorials ([Planning Scene Tutorial](http://docs.ros.org/indigo/api/moveit_tutorials/html/doc/pr2_tutorials/planning/src/doc/planning_scene_tutorial.html) or [ROS API Planning Scene Tutorial](http://docs.ros.org/indigo/api/moveit_tutorials/html/doc/pr2_tutorials/planning/src/doc/planning_scene_ros_api_tutorial.html)), reading through various Q&A ([Collision checking for arbitrary poses using MoveIt! / PlanningSceneMonitor](https://answers.ros.org/question/261898/collision-checking-for-arbitrary-poses-using-moveit-planningscenemonitor/) or [Check collision between CollisonObject and robot with moveit
](https://answers.ros.org/question/257766/check-collision-between-collisonobject-and-robot-with-moveit/)) and the google moveit-users group, I tried getting collision information from the same scene with red marked collisions using this code ([inspired by](https://github.com/pal-robotics/get_out_of_collision/blob/master/src/fix_start_collision_state.cpp)):
#include
#include
#include
#include
#include
#include
int main(int argc, char** argv)
{
// Init the ROS node
ros::init(argc, argv, "collision_check");
ros::NodeHandle nh_("~");
std::string group_name_;
group_name_ = "arm_chain";
robot_model_loader::RobotModelLoaderPtr robot_model_loader_;
robot_model_loader_.reset(new robot_model_loader::RobotModelLoader("robot_description"));
planning_scene_monitor::PlanningSceneMonitorPtr planning_scene_monitor_;
planning_scene_monitor_.reset(new planning_scene_monitor::PlanningSceneMonitor(robot_model_loader_));
if(planning_scene_monitor_->getPlanningScene())
{
planning_scene_monitor_->startSceneMonitor("/planning_scene");
planning_scene_monitor_->startWorldGeometryMonitor();
planning_scene_monitor_->startStateMonitor();
ROS_INFO_STREAM("Context monitors started for " << nh_.getNamespace());
}
else
{
ROS_ERROR_STREAM("Planning scene not configured for " << nh_.getNamespace());
}
collision_detection::CollisionRequest collision_request;
collision_detection::CollisionResult collision_result;
planning_scene_monitor_->getPlanningScene()->checkSelfCollision(collision_request, collision_result);
ROS_INFO_STREAM("Test 1: Current state is " << (collision_result.collision ? "in" : "not in") << " self collision");
// get the start state
robot_state::RobotState start_state = planning_scene_monitor_->getPlanningScene()->getCurrentState();
collision_detection::CollisionRequest creq;
creq.group_name = group_name_;
collision_detection::CollisionResult cres;
planning_scene_monitor_->getPlanningScene()->checkCollision(creq, cres, start_state);
if (cres.collision)
{
// verbose mode
collision_detection::CollisionRequest vcreq = creq;
collision_detection::CollisionResult vcres;
vcreq.verbose = true;
planning_scene_monitor_->getPlanningScene()->checkCollision(vcreq, vcres, start_state);
if (creq.group_name.empty())
ROS_INFO("State appears to be in collision");
else
ROS_INFO_STREAM("State appears to be in collision with respect to group " << creq.group_name);
}
else
{
if (creq.group_name.empty())
ROS_INFO_STREAM("Start state is valid");
else
ROS_INFO_STREAM("Start state is valid with respect to group " << creq.group_name);
return true;
}
ros::Rate loop_rate(10);
bool collision = false;
while(ros::ok())
{
//TODO Keep checking the scene for collisions
//ros::spinOnce();
loop_rate.sleep();
}
ros::shutdown();
return 0;
}
Running it I get this:
[ INFO] [1517934186.945159033]: Loading robot model 'youbot'...
[ INFO] [1517934187.098497064]: Loading robot model 'youbot'...
[ INFO] [1517934187.227919777]: Starting scene monitor
[ INFO] [1517934187.232268182]: Listening to '/planning_scene'
[ INFO] [1517934187.232319281]: Starting world geometry monitor
[ INFO] [1517934187.236487616]: Listening to '/collision_object'
[ INFO] [1517934187.240655616]: Listening to '/planning_scene_world' for planning scene world geometry
[ WARN] [1517934187.241435490]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[ WARN] [1517934187.241471283]: Target frame specified but no TF instance specified. No transforms will be applied to received data.
[ INFO] [1517934187.269569073]: Listening to '/attached_collision_object' for attached collision objects
[ INFO] [1517934187.269623563]: Context monitors started for /youbot_moveit_interface_collision_check
[ INFO] [1517934187.269923221]: Test 1: Current state is not in self collision
[ INFO] [1517934187.270076782]: Start state is valid with respect to group arm_chain
[ INFO] [1517934187.271758918]: Stopping world geometry monitor
[ INFO] [1517934187.273524271]: Stopping scene monitor
So it is not detecting the above illustrated situation.
Obviously I am doing something wrong. Can anyone help?
I checked rostopic echo /move_group/monitored_planning_scene to see if I get some information, but what I get here is empty collision_objects and allowed_collision_matrix. Is there something wrong with my setup? What does (noname)+ mean?
name: (noname)+
robot_state:
joint_state:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: /base_link
name: ['arm_joint_1', 'arm_joint_2', 'arm_joint_3', 'arm_joint_4', 'arm_joint_5', 'gripper_finger_joint_l', 'gripper_finger_joint_r']
position: [2.94960643587, 2.6847968661377517, -2.5078715675795964, 0.258253982587798, 0.0, 0.005999999999999999, 0.005999999999999999]
velocity: []
effort: []
multi_dof_joint_state:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: /base_link
joint_names: []
transforms: []
twist: []
wrench: []
attached_collision_objects: []
is_diff: False
robot_model_name: youbot
fixed_frame_transforms: []
allowed_collision_matrix:
entry_names: []
entry_values: []
default_entry_names: []
default_entry_values: []
link_padding: []
link_scale: []
object_colors: []
world:
collision_objects: []
octomap:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
origin:
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 0.0
octomap:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
binary: False
id: ''
resolution: 0.0
data: []
is_diff: True
---
So, how is the collision detection intended to be used?
My goal is to check for collisions while giving velocity commands to the manipulator (like JOG-Mode with collision detection).
Self collisions as well as some defined world objects should be detected. So maybe I need to check for distance to objects, in order to slow down or stop. But first I think I should be able to get some collision feedback.
Thanks for any help in advance!
↧
Moveit Interactive marker doesn't move
Hi everyone,
I'm trying to use moveit over a little 3d printed arm the problem that I've is that when i try to planning a trajectory the interactive marker doesn't follow the mouse, so for move the robot I need to use the arrows that surround the interactive marker, but here the problem is that i can move it just in i plan, while if I right-click over interactive marker and select "random" i get a position that is it in a different plan. So I think the problem is it the urdf file but I'm pretty new so i can't understand where I get wrong, I would upload the urdf file but I've no enough points. Can anyone help me ? thanks
↧
How to set link(end_effector) pose?
Hi, I'm working with the ur10 model and I'm trying to get a way of controlling it by setting a pose for the end-effector. However I have no clue on how to do it. I tried the tutorial of movit regarding [kinematics](http://docs.ros.org/indigo/api/moveit_tutorials/html/doc/pr2_tutorials/kinematics/src/doc/kinematic_model_tutorial.html). But in the tutorial they calculate the IK from the value calculated from the DK for the end-effector but I want to set manually the values of the end-effector. So I tried to do the same way as they do for the joints:
kinematic_state->setRandomPosition(joint_model_group);
but had no success in finding a similar function for the links as there are for setting the joint values. Is there any other way I can do this, in order I can manually write the x,y,z values?
↧
↧
Interface EtherCAT servo motor with ROS
hello everyone,
i am student and i want to build my own robot arm. I have finished my robot urdf file and MoveIt! setup. Now i have bought Panasonic Servo and motor(MINAS A5B EtherCAT servo drives). But i can't communicate servo with Ros and don't know which package i can use. Should i use ros_control package? Can anyone guide me?
Thanks!
↧
Ik of ur10 giving no results?
Hi I managed to create a file in which I set a end-effector message, in this case, the "wrist_3_link" of the ur10 arm and it solves the IK and the I publish the joint states in order for the robot to move to that position in gazebo. However, I'm having problems with calculating the IK. Sometimes it works, but then sometimes I set one pose and it comes as "solution not found" even though I know that pose exists in the robot workspace. This is how I'm calculating the IK. Don't know if something is wrong. I'm unexperienced with this.
end_target.position.x = 0.5;
end_target.position.y = 0.5;
end_target.position.z = 0.0;
end_target.orientation.w = 0.0;
Eigen::Affine3d end_effector_state;
tf::poseMsgToEigen(end_target, end_effector_state);
bool found_ik = kinematic_state->setFromIK(joint_model_group, end_effector_state,"wrist_3_link", 4, 1.0);
if (found_ik)
{
kinematic_state->copyJointGroupPositions(joint_model_group, joint_values);
for(std::size_t i=0; i < joint_names.size(); ++i)
{
ROS_INFO("Joint %s: %f", joint_names[i].c_str(), joint_values[i]);
}
}
else
{
ROS_INFO("Did not find IK solution");
}
And here is my kinematics.yaml file
manipulator:
kinematics_solver: ur_kinematics/UR10KinematicsPlugin
kinematics_solver_search_resolution: 0.005
kinematics_solver_timeout: 0.005
kinematics_solver_attempts: 4
↧
Joint constraint problem
Hello,
I'm working on Schunk LWA 4P robotic arm with 6 DOF.
I'm doing basic pick&place operations. Since the range of the first joint is (-2.89;2.89) there are two poses that satisfy the goal for picking an object. Let's say it's -0.43 rad and 2.71 rad. After picking I set orientation constraints for the end effector since I need it to be facing ground. Here comes the problem, sometimes planner chooses to use the value 2.71 for the first joint while picking. But that means that during placing after setting orientation constraints the first joint has to go from 2.71 rad to (for example) -2.84 rad in order to keep the end effector facing ground. That is almost one full revolution around z axis. It would be much more efficient to pick with the first joint at -0.43 rad, set constraints and place with the first joint at 0.3 rad (-2.84+PI).
I tried everything that came to my mind but I cannot make the robot behave the way I want.
I tried putting the arm to "start position" with first joint value at 0 rad with down facing end effector, then setting orientation constraints, so it will be forced to pick at -0.43 rad and place at 0.3 rad. It works 3 out of 4 times, that one time the orientation constraints seem to be ignored and the arm performs pick at the 2.71 rad with end effector in forbidden orientation during movement to goal position. Placing also ignores constraints. This happens randomly for the same goal poses, sometimes it works fine, sometimes not. With this not-always-working "solution" the arm also has to pick with orientation constraints and that is not good for me. I would just really like to know, why are orientation constraints ignored sometimes...
The best solution would be to set joint constraints for the first joint. (-1.57;1.57) is all I need and I thought this would solve my problem. However this doesn't work at all. I tried a simple code, I set target pose in such way, that the first joint value is either -0.43 rad. or 2.71 rad. Of course without constraints it goes to -0.43 rad. In order to go to the target pose with the first joint at 2.71 I set the joint constraints like this:
moveit_msgs::JointConstraint jc;
jc.joint_name = "arm_1_joint";
jc.position = 0.0;
jc.tolerance_above = 2.89;
jc.tolerance_below = 0.3;
jc.weight = 1.0;
moveit_msgs::Constraints path_constraints;
path_constraints.joint_constraints.push_back(jc);
group.setPathConstraints(path_constraints);
The arm doesn't move and I get the following output:
More than 80% of the sampled goal states fail to satisfy the constraints imposed on the goal sampler. Is the constrained sampler working correctly?
[ INFO] [1518387484.328126868]: Constraint violated:: Joint name: 'arm_1_joint', actual value: -0.430208, desired value: 0.000000, tolerance_above: 2.890000, tolerance_below: 0.300000
[ INFO] [1518387484.328191166]: Position constraint satisfied on link 'end_point'. Desired: 0.000000, 0.000000, 1.300000, current: -0.000055, 0.000063, 1.300003
[ INFO] [1518387484.328288924]: Differences 5.52363e-05 -6.33628e-05 -3.49439e-06
[ INFO] [1518387484.328343911]: Orientation constraint satisfied for link 'end_point'. Quaternion desired: 0.000000 0.000000 0.000000 1.000000, quaternion actual: -0.000093 0.000454 0.000306 1.000000, error: x=0.000186, y=0.000908, z=0.000611, tolerance: x=0.001000, y=0.001000, z=0.001000
[ERROR] [1518387484.370899340]: lwa4p[RRTConnectkConfigDefault]: Unable to sample any valid states for goal tree
[ INFO] [1518389077.720587747]: lwa4p[RRTConnectkConfigDefault]: Created 1 states (1 start + 0 goal)
[ WARN] [1518389077.720745031]: ParallelPlan::solve(): Unable to find solution by any of the threads in 0.105370 seconds
[ERROR] [1518389077.721232082]: lwa4p[RRTConnectkConfigDefault]: Insufficient states in sampleable goal region
[ INFO] [1518389077.736597067]: Unable to solve the planning problem
[ INFO] [1518389079.739423379]: Execution request received for ExecuteTrajectory action.
[ WARN] [1518389079.739642992]: The trajectory to execute is empty
I don't get it, I thought the planner would find the second possible pose for reaching the target (first joint at 2.71 rad) since the -0.43 rad is unreachable because of the joint constraints.
I also tried set the joint value to 2.71 rad using joint space goal. It works well. Then I tried to set it to -0.43 rad. I expected the error above to show, instead the first joint goes to -0.10 rad (no idea why) and I got this output:
Attempted to merge incompatible constraints for joint 'arm_1_joint'. Discarding constraint.
Execution completed: SUCCEEDED
Could you please tell me what am I doing wrong, what I don't understand. I'm fairly new to ROS.
I'm using ROS Kinetic on Ubuntu 16.04, MoveIt! 0.9.9, planner RRTConnectkConfigDefault. I tried various kinematic solvers: custom generated IKFAST, KDL and also trac_ik.
Thank you for you help!
↧
Planning together multiple sequential motions in Moveit
Hello,
I'm trying to use Moveit and a Baxter robot to perform some complex actions (i.e. each action is composed of multiple motions) on a table.
My main issue is that sometimes these action would fail simply because one of these motions left the robot arms in some configuration that does not leave enough space for the successive motions to be planned successfully. This happens especially when the objects on the table I'm acting upon are very close to each other.
Is there a way in Moveit to plan multiple sequential goals together before actually moving the arms? Alternatively, can you suggest any other strategy to avoid these kind of conflicts?
Thank you!
↧
↧
Build error for planning_interface::PlannerManager
I'm trying to load a motion planner based on the the name of planning plugin loaded from the ROS param server.
I'm getting the following error while building with catkin_make (using Indigo):
Linking CXX executable /homes/radu/workspace/development/fetch/devel/lib/mira/test
/homes/corcodel/workspace/development/fetch/devel/lib/libRobotArm.so: undefined reference to `typeinfo for planning_interface::PlannerManager'
The code I'm testing is this (found in the tutorials):
robot_model_loader::RobotModelLoader robot_model_loader("robot_description");
robot_model::RobotModelPtr robot_model = robot_model_loader.getModel();
planning_scene::PlanningScenePtr planning_scene(new planning_scene::PlanningScene(robot_model));
boost::scoped_ptr> planner_plugin_loader;
try
{
planner_plugin_loader.reset(new pluginlib::ClassLoader("moveit_core", "planning_interface::PlannerManager"));
}
catch (pluginlib::PluginlibException& ex)
{
ROS_FATAL_STREAM("Exception while creating planning plugin loader " << ex.what());
}
↧
Robot Simulation using RViz as part of Custom GUI
Hello
I am trying to implement a GUI (using C++ and QT) to control my robot. I would like to have a simulation of my robot to be part of the GUI so that I can first move my robot on the simulation (using my GUI controls) and see if the move is collision-free and then move the real robot.
I can run my robot's simulation in RViz and move my robot. Now I would like to "embed" what I see in RViz (as the simulation of my robot) into my GUI application as a QWidget.
I know [this tutorial](http://docs.ros.org/indigo/api/librviz_tutorial/html/index.html) on librviz, however this tutorial is too simplistic as it only adds an empty grid into custom C++ GUI app but does not implement any robot visualization/interaction.
Can you suggest any better documentation or example projects that I can dig into? Any help or suggestion would be very much appreciated.
Thanks in advance!
↧
Implementing constraints in carthesian space in MoveIT
Hello,
As a part of a university project, me and several fellow students have been tasked with implementing a planning constraint for the Care-o-Bot 4 platform. In order to stop the robot's arm from moving in front of the base laser sensor, we came to the conclusion that implementing a constraint stopping trajectories which'd take the arm below a certain y-level in the base's frame would work. However, we quickly discovered that the documentation for how to accomplish this was confusing. Our instructor suggested posting a question here.
We have considered modifying a state sampler, however we quickly came to the conclusion it is too complex for us to accomplish with how much time we have. The tutorials suggest using a template to form a constraint sampler, but we have had no luck finding it. Any and all help would go a long way, thank you.
↧