For context, I have a "floating" robot (I'm only modeling the hand, as I want a simple example that doesn't involve inverse kinematics) and I want to move this robot hand to a specified location via a direct trajectory, possibly pushing other objects out of the way as it moves.
I found a few viable approaches from the pyBullet GitHub examples, but I have reservations about each of them:
- VR examples, such as vrhand.py (https://github.com/bulletphysics/bullet ... /vrhand.py), move floating hands around with changeConstraint(), but if I understand correctly this is to account for receiving input in frames, and not the intended way to simulate continuous motion.
- Non-VR examples of robot motion, such as robotcontrol.py (https://github.com/bulletphysics/bullet ... control.py), use setJointMotorControl2() and velocity control to move robots/vehicles around, but I'd really like position control instead. While setJointMotorControl2() has an option for position control instead of velocity control, it seems to control joint position relative to the robot base, rather than moving the robot base itself.
- Other examples use applyExternalForce() to move the robot base, as in externalTorqueControlledSphere.py (https://github.com/bulletphysics/bullet ... dSphere.py), but I really prefer position control to force control, as I worry that implementing my own PID controller (or a similar controller) will be finicky.