How do I manually control/jog a robot arm with MoveIt using ROSPY?
Problem
I want to be able to move a custom robot arm with MoveIt handling the kinematics of the arm with live movement as opposed to planning followed by execution. I hope to do this with ROSPY through publishing to a topic or a service in Python 2.7.17 on ROS 1 Melodic.
Current Setup
I currently can receive information about a spotted object, and I can have the physical robot replicate the movements published from the joint state publisher.
These are the 5 nodes of my system where the second from the top is what I am trying to find a solution for now.
- One node which gives me the position of an object relative to the center of the cameras view through a topic (working)
- (What this question is about) A node which moves the robot end effector to the object spotted. (Not Working)
- One node which is my robots custom moveIt URDF (working)
- One node which is a translation node I have written to take the data from joint_state and translate it to servo movement with no feedback (working)
- One node which communicates with the arms simple RC servos over I2C through a pca9685 board (working)
More Detail
I have the relative position of an object live, and wish to move the arm until the camera is centered on the object.
I for the life of me cannot figure out how I would actually go about doing that.
All I can find is related to planning a move rather than perhaps, setting a velocity and or position for the end effector/position.
The closest I've found relates to something called jog_arm from a long time ago, which has been said to be integrated somewhere in a future version. I can't find it though, so rather than spend an even more embarrassingly long time trying to figure it out I am posting this with the hopes that someone understands what I'm trying to do and can give me the search term/documentation link/api page I need to figure this out or maybe the answer is just that the thing Im looking for somehow doesn't exist.
Environment/Setup Stats:
- Platform: Jetson Nano 2GB, with Latest jetpack (Ubuntu 18.04 base)
- ROS Version: Melodic
- Python Version: Python 2.7.17
- MoveIt: Version for Melodic
it was renamed to Servo and is integrated into MoveIt.
See MoveIt: Realtime Arm Servoing for the Noetic version of the documentation/tutorial.
Note: I've posted this as a comment instead of an answer as I'm not sure what your question is.
If you're just asking for the current documentation/tutorials on what used to be called JogArm, then I believe the link above should be the answer. In that case, I'll convert this comment into an answer.
@gvdhoorn
I think this looks like maybe what I'm looking for yet setting it up seems like a nightmare. Basically since the moment you posted this I've been trying to figure it out to see if it was the answer 😥
Maybe for someone else this will make more sense, but basically nothing from the example seems immediately applicable. I don't have any moveit_servo, and Im not even sure exactly what needs to be launched for this to work even in the event I did.
This is starting to feel impossible to tackle without having taken a course on the subject and having deep knowledge of the system underneath. Its probably made harder due to the awkward way Im using regular hobby motors and joint_state_publisher rather than a proper robot controller.
Im also not certain it even exists in Melodic because the link given is for noetic?! but ...(more)