Following a winding path with MoveIt
My robot is designed spray concert on the inside of tunnel walls. It has a nozzle for spray at the end of a long arm. To distribute the concrete, the nozzle has to be moved back and forth across the tunnel surface in a specific path. Path description:
- Consists of horizontal lines along the tunnel surface.
- Semicircles connect the lines
- The nozzle (frame) must at all times be orientated towards the surface.
- The velocity of the nozzle should be near constant to ensure spread of on the concrete.
My question is: How can I utilize MoveIt to plan a path that satisfy these specifications? Alternatively, could I define such a path myself, and let MoveIt create the joint trajectories? Suggestions on better approaches are also appreciated, as I am a MoveIt novice.
Would gladly upload illustrative pictures if I get some points.
Any help appreciated :)
Edit: Thank you for the response @AndyZe, this seems like a very good approach. However, in discussion with my supervisor, we concluded that the input to the planning module should be a set of waypoints. At first, I experimented with the computeCartesianPath() function of MoveGroupInterface, then I tried to utilize setPoseTargets() as suggested by @sampreets3. Unfortunately, I have not been able to implement a working planner yet. My issue is my waypoints are too strict:
- The robot only has 5 Degrees of freedom.
- The waypoints I have defined include orientation and position (6 DOF). Trough testing in Rviz, it is clear that many of the waypoints I defined for the robot are unreachable (in orientation).
However, I only need the x-axis of my end effector (nozzle) to point in a certain direction, the y and z-axis are irrelevant. So my question is: Is it possible to define target poses where the orientation is not fully defined? Keep in mind that target orientation changes between the waypoints.