what would be the best way of moving the robot TCP between two points while maintaining constant orientation of the TCP along the path? Do i have to use multiple waypoints in between and make sure that they are sufficiently close to each other or is there a simpler way of just giving the robot the final destination and have it figure out the rest of the trajectory ?
Since UR does not have a pose control as such (like Kuka, where you define a Status and turn along with the cartesian co-ordinates, which would unambiguously define which Robot pose is used to reach a particular Point in space), it could make a sudden Change in how it travels to a Position when it realises that the end Position can be reached with a different Robot pose.
So I would suggest that you can use a start and end Position that has the same TCP orientation, the Robot would try to maintain the orientation along the way. But, before you start moving to the end position, check if a kinematic solution to the end position exists, in order to prevent dangerous/unexpected Robot motions.
Hope that helps.