Lerobot-ros: a lightweight interface for controlling ROS-based robotic arms using LeRobot

Hello ROS community!

I’d like to showcase lerobot-ros, a lightweight ROS 2 interface for LeRobot - HuggingFace’s framework for real-world robotics AI.

What it does: lerobot-ros should enable any ros2_control or MoveIt2-compatible robotic arm to integrate with LeRobot’s full suite of capabilities, including collecting teleop datasets, and training imitation learning and reinforcement learning policies from them. This also allows LeRobot to leverage the strengths of ROS’s manipulation stack, such as real-time cartesian velocity control and collision avoidance.

Supported features:

  • Joint control via ros2_control (position and trajectory controllers)

  • End-effector velocity control via MoveIt Servo

  • Teleoperation (gamepad end-effector control and keyboard joint control)

Demo video: https://www.youtube.com/watch?v=8U8vDyi5IAs

Github Repository: GitHub - ycheng517/lerobot-ros: Lightweight interface for controlling ROS-based robotic arms using LeRobot

12 Likes

Thanks for sharing. This is pretty cool that you are bridging the gap between ROS and LeRobot. Just starred the repo. Keep it up!

I also noticed that you were using rerun. How is your experience with it? Does it work well with rosbags?

Lerobot uses rerun for live visualization of robot state, but not for storage where they use their own dataset format. It seems to work great for visualization! Though it annoyingly doesn’t shut down cleanly on Ubuntu.

1 Like

Thanks for sharing!

Would be interested to know your thoughts on what other ROS features would be helpful in this type of application?

Thanks for sharing your experience!

I would love it if rclpy and ROS messages were pip-installable! So that rclpy and other Python ROS dependencies can be easily added to a project by just adding it to pyproject.toml