Using Moveit! to Control the End of a Hydraulic Arm in Cartesian Coordinates
I have a small hydraulic arm (similar to an excavator arm) that consists of a rotating base, a boom link and a stick link. The boom and stick links move in a vertical plane whose orientation is defined by the rotating base. I would like to control the distal end (end furtherest from the base) of the stick link in two ways: Cylindrical coordinates and Cartesian Coordinates.
What are the main steps required to achieve this? So far I have a primitive model of my robot arm and have run through the MoveIt setup guide, but I am having difficulty with working out how to implement the joint combinations and kinematic chains. So far the behaviour of MoveIt! seems to be focused in joints only. I could set up an end effector in MoveIt! but the arm does not have an end effector as such.
Here is a screenshot of the situation.
What I have done is that I have defined the tip of the 'stick' (where the ball is) as a universal joint consisting of two continuous joints, with a dummy link in the middle.
I can move the arm fine by dragging the red and blue arrows. However, if I try to move the arm by moving the green arrows it will not move. Such movement should be accommodated by having the base rotate, something that is not happening. Indeed, if I drag the green arrows it 'breaks' the position so that I have to reset it before I can choose any other valid position. Note that if I select a 'random valid' joint end state it does pick states with the base rotated.
I am finding the whole thing perplexing. Can anyone shed light on how I could drag the position of the end of the arm using all three arrows without it breaking anything?
Thanks, Bart
Forgive my ignorance (as in: I might not fully understand this), but wouldn't defining a kinematic chain work here? Create one including all links, so the "rotating base, boom link and stick link". As long as proper joints have been defined between those links, the planners should be able to work it. Don't try to add joints to groups, then links to the chain simultaneously. Define only one. The end effector isn't needed yet.
It does work, in the sense that a solution can be found, but I cannot control the joint angles and coordinates in the way I want to, and I don't see where the MoveIt! setup assistant has any flexibility to let me adjust it to what I want.
You're going to have to be a bit more specific than "what you want". Whay did you try, what didn't work and what do you want to achieve? Please update your question with that information (instead of in the comments). Also, see if the ROS-I tutorial on moveit cfgs can fill in any of the missing pieces.