[Question] Can I teleoperate Isaac Lab (imitation demonstrations collection) by publishing my own joint commands over ROS topics? #3576
Replies: 1 comment 1 reply
-
Thank you for posting this. Yes, it is possible to teleoperate robots in Isaac Lab using ROS or ROS 2 by publishing joint commands, and this approach is supported for custom demonstration collection workflows. Isaac Lab supports ROS/ROS2 integration, allowing external control via standard topics. However, direct Python control (like keyboard teleop in the Isaac Lab tutorial) is typically more responsive compared to ROS message publishing due to network, serialization, and bridge overhead. I'll move this to our Discussions section for follow up. In the meantime, here is a summary to consider. ROS Topics for Isaac Lab
Response Delay Considerations
Example Setup: Publishing Joint CommandsBelow is a minimal ROS Python publisher example for real-time joint commands to Isaac Lab's Franka robot: import rospy
from sensor_msgs.msg import JointState
rospy.init_node('franka_joint_command_publisher')
pub = rospy.Publisher('/franka/joint_states', JointState, queue_size=10)
js = JointState()
js.name = ['panda_joint1', 'panda_joint2', 'panda_joint3', 'panda_joint4', 'panda_joint5', 'panda_joint6', 'panda_joint7']
rate = rospy.Rate(100) # 100 Hz for near real-time
while not rospy.is_shutdown():
# Replace with your custom control logic
js.position = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
pub.publish(js)
rate.sleep()
In Isaac Lab, your robot should subscribe to this topic via its ROS bridge configuration. Reference the Isaac Lab ROS bridge documentation for setting up subscribers and confirming topic/callback mapping for your robot model. Isaac Lab Documentation References
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Environment
Isaac Lab 2.1.0 (also 2.3.0)
Post (short)
Hi — I have a question about using ROS/ROS2 to teleoperate robots inside Isaac Lab for imitation-learning dataset collection.
I followed tutorial to collect demonstration data for Isaac Lab imitation learning by teleoperating 'franka pandas' robots (using keyboard).
https://isaac-sim.github.io/IsaacLab/main/source/overview/imitation-learning/teleop_imitation.html
isaaclab.teleop.mp4
What I want to do
I have custom control logic (not keyboard/joystick) that produces joint commands for a robot. I want to publish those commands as ROS topics and drive a robot inside Isaac Lab (so I can record demonstrations for imitation learning).
My questions
Is it supported / recommended to control Isaac Lab robots by publishing joint commands over ROS/ROS2 topics? (e.g.
sensor_msgs/JointState
). If yes — which topic/message types are commonly used/supported for low-latency control in Isaac Lab?If it’s possible to implement this with ROS, would there be any response delay? In the video the control wasn’t via ROS, and it seemed more responsive. (Like the Franka Panda robot arm in the tutorial.)
Are there example setups (minimal code snippets) that publish topic of joint commands inside Isaac Lab?
Any advice would be greatly appreciated.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions