Hi all,
I want to use a skid steer robot in Isaac, and I tried to use the joint-state command from ros bridge but it does not work when I try to control the joints using velocity drives. It works fine using position drives though.
Basically if I use the python example called moveit.py with franka it works well. However, if I replace franka by the jetbot, I cannot control the joints. I can see the state of the joints, but when I publish a command to a joint it does not work.
Is there something I am doing wrong? A post from last year mentioned that this would be possible with the next release (as of today, the current one). Here is the command I am sending from ROS.
rostopic pub -r 50 /joint_command sensor_msgs/JointState "header:
seq: 0
stamp: {secs: 0, nsecs: 0}
frame_id: ''
name: ['left_wheel_joint']
position: [0]
velocity: [100]
effort: [0]"
I guess I could do it manually using something like that with dynamic control:
self._wheel_right = self._dc.find_articulation_dof(self._ar, "left_wheel_joint")
self._wheel_left = self._dc.find_articulation_dof(self._ar, "right_wheel_joint")
vel_props = _dynamic_control.DofProperties()
vel_props.drive_mode = _dynamic_control.DRIVE_VEL
vel_props.damping = 1e8
vel_props.stiffness = 0
_dc.set_dof_properties(_wheel_right, vel_props)
_dc.set_dof_properties(_wheel_left, vel_props)
But doing it through the rosbridge would be more convenient.
To reproduce this issue, one can replace the starting lines in moveit.py like so:
#FRANKA_STAGE_PATH = "/Franka"
FRANKA_STAGE_PATH = "/jetbot"
FRANKA_USD_PATH = "/Isaac/Robots/Jetbot/jetbot.usd"
#FRANKA_USD_PATH = "/Isaac/Robots/Franka/franka_alt_fingers.usd"
BACKGROUND_STAGE_PATH = "/background"
#BACKGROUND_USD_PATH = "/Isaac/Environments/Simple_Room/simple_room.usd"
BACKGROUND_USD_PATH = "/Isaac/Environments/Simple_Warehouse/warehouse.usd"
Thanks in advance,
Best,
Antoine