-
Notifications
You must be signed in to change notification settings - Fork 118
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
Document usage on custom robot #47
Comments
Hello @stefanscherzinger, I was wondering whether I should pose under this issue, but since the questions I ask pertain to the content of the ReadMes in each case, so here it is. I intend to use cartesian controllers in gazebo and on two UR10e real robots. I have been trying to understand a few things about the repo so as to document their use and implement on our robots:
But I can't seem to find this topic. The only wrench related topics I find after doing a
So, I tested by publishing to both the
Everything seems to work fine despite 4. But should we be worried about it? |
Hi @Mohatashem That's ok to post it here.
The
It's a little bit hidden. It's part of the
You are right. Thanks for pointing this out. I guess I remapped both the
The
That's the same case. See
No, you needn't worry. Ignore that for now. I need to rework that feature a little (#40 ). |
@stefanscherzinger The second point, I've managed to implement it with my setup in rviz, just following the tutorials and your explanation above. However, when trying to implement the same in gazebo, the
and my launch file is here:
And since I am not doing any remapping, Inside rviz, I am using the |
Yes, that works. But use the devel branch for this. We need an additional joint damping to suppress null space motion for redundant manipulators. Alternatively, you could switch the controller's IK-Solver and see if that works better in your case.
That's a bit more tricky. I remember that a colleague of mine tried this and it did not work out-of-the-box. You could try that in simulation first. If it doesn't work, I would like to help debugging and fixing this. Thinking about this, I guess you need some sort of
Hm. You seem to be using yaml arguments a lot. I don't have much experience with this, but I would debug the classic way:
This is the high-level information flow that needs to be connected: |
Thanks again for your suggestions. I do apologize if I am pushing this discussion too long.
Yes, I am currently trying to wrap my head around this. I have already written a Besides that, I am wondering whether there is anything else we need to do when using gazebo urdf spawner instead of the This is the Case 1: my setup in rviz
The above case is similar to running the examples.launch in terms of working: Case 2: examples.launch
Case 3: With Gazebo
I even tried remapping:
But apparently, it does not work, as the rqt_graph stays the same, and I get the same behaviour with rostopic echo as without remapping |
Sounds interesting. I'm curious to see how that turns out in the end. Concerning you questions:
Just to be clear, by does publish and do not, you mean that when
Yes, that's always a bit tricky. But it does work correctly. Just try different things until you get there. You could adapt your remaps to the global Edit: I think it's worth taking the time to understand remaping.. |
@stefanscherzinger
Testing around a bit, I got it to work. Apart from that, my To summarize (just in case someone else finds it useful for setting it up with gazebo):
|
Hello @stefanscherzinger, I succeeded in implementing the controllers on the real robot (UR10e mounted on a ceiling). I've tested the motion, compliance and force controllers. But I have a few follow-up questions/doubts. I hope you could kindly clarify them for me: 1. Using the
This is a phenomenon I observed, with and without the end-effector attached. And before starting the controller, I make sure from the teach pendant side, to set the appropriate TCP and tool COM and payload. Q: How can this be avoided? Is there a calibration procedure, I need to run on ROS side? Is there anything else I am missing? 2. Using The stiffness values chosen were the lowest possible specified in the
Is it recommended stay within the range specified in the repo? Would it be safe to go lower than these values? Additionally, I noticed that for the real robot, to run Q: Does it mean that for So far for me, setting
I am assuming this would have the same result as
Q: Is the above mentioned method correct/recommended? For these tests I had set the
the reason why, in pd_gains, my Apart from everything above:
Two of them seem to be the "position_controllers/JointTrajectoryController". Thank you |
Great! I'm happy to hear that.
You might need to call a special service in the controller to signal that you were biasing the sensor. But I guess that needs some more refinement. See here and here and also here
Yes, you can go lower by changing the config file and rebuilding the repositories.
Not necessarily. But when you have a setting of controller gains that are at the edge of stability with your system, then increasing the
It looks correct to me, yes. Building in
Note that stability can be lost per Cartesian axes. It's sometimes not obvious, which of the controller gains is the one causing instability. You might get a more responsive and stable system by tweaking the relation between individual axes a bit more. This, however, is task dependent.
Yes, this can be used with Moveit. I don't have a tutorial for that yet, but maybe this short info gives a direction. |
Hi, you mentioned "you need a sensor that publishes force-torque measurements on the respective ft_sensor_wrench topic." In my case, I have a UR5e robot, one topic "/wrench" which outputs the measured force and torque (I cannot see a "force_sensor_link" in my case), should I publish this topic to "my_cartesian_force_controller/ft_sensor_wrench"? Since currently, the "my_cartesian_force_controller/ft_sensor_wrench" has nothing. Thank you. @stefanscherzinger @Mohatashem |
Hello @ZZWang21,
Alternatively, this also worked for me (directly from the command line terminal):
All the best |
@Mohatashem Thank you for your reply. I have tried yesterday, it works. |
Hi @Mohatashem, I see, you have done your control on real UR10 robot. Is your yaml file just like what you post in this issue? So you have loaded all the controllers? But in that yaml file, I did not see "joint_to_cartesian_controller". Do I have to load all the controllers to control the movement of the robot (in rqt or in Rviz or using python code)? Thank you. |
Hello,
Yes, that is because we didn't need it. If I've understood correctly, it's probably for using with Moveit but we didn't proceed in that direction.
If I am not mistaken, you can load any and all controllers but start only the controller you need. For example, if I needed Cartesian control only I'd start only Hope it helps |
Goal
Users new to both ROS and ROS-control are sometimes unsure how to adjust the examples to their real robot at hand. Although we can't provide a ROS-tutorial here, it would be nice to have some tips, concerning
.config
filecontroller_manager
can find themjoint_states
,TF
tree,rqt-joint-trajectory-controller
,motion_control_handle
,cartesian_motion_controller
, ...)Edit: I created a getting started package here for a Universal Robots UR10e.
The text was updated successfully, but these errors were encountered: