kinova_isaaclab_sim2real

Codebase for Kinova Gen3 training in Isaac Lab, sim2real transfer and ROS deployment.

https://github.com/louislelay/kinova_isaaclab_sim2real

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary

Keywords

isaac-lab isaac-sim kinova kinova-robotics kinova-simulation ppo reinforcement-learning robotics ros ros2 sim2real sim2sim
Last synced: 6 months ago · JSON representation ·

Repository

Codebase for Kinova Gen3 training in Isaac Lab, sim2real transfer and ROS deployment.

Basic Info
  • Host: GitHub
  • Owner: louislelay
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 680 KB
Statistics
  • Stars: 131
  • Watchers: 6
  • Forks: 14
  • Open Issues: 1
  • Releases: 1
Topics
isaac-lab isaac-sim kinova kinova-robotics kinova-simulation ppo reinforcement-learning robotics ros ros2 sim2real sim2sim
Created 11 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

🦾 Kinova Gen3 RL & Sim2Real Toolkit

Overview

This repository provides a modular framework for training reinforcement learning (RL) agents on the Kinova Gen3 robot using Isaac Lab, and deploying trained models either in Isaac Sim, or on the real robot via ROS2.

Built as a standalone Isaac Lab extension, it allows isolated development.

[!IMPORTANT] The Sim2Real pipeline runs entirely with ROS2 and does not require Isaac Lab or Isaac Sim to be installed. And for convenience, pre-trained models are provided so you can get started immediately without training.

| Section | What you’ll find | |---------|------------------| | 🛠️ Installation | How to install Isaac Lab, clone this repo, and install the Python package. | | 🚀 Training & Basic Testing | Commands to train a reach-task policy with rsl_rl or rl_games and replay it in Isaac Lab. | | 🤖 Sim-to-Real Deployment (ROS 2) | Step-by-step instructions to test on fake hardware, then execute the exact same policy on the physical Kinova Gen3. | | 🌟 Acknowledgements | Credits to Isaac Lab, Kinova, community help, and INIT Lab. | | 📚 Citation | BibTeX citation |

https://github.com/user-attachments/assets/91d013ce-9e2a-422d-8fd5-e08fdd5c9282

🛠️ Installation

  1. Install Isaac Lab by following the official installation guide (conda recommended).
  2. Clone this repo outside the IsaacLab directory.
  3. Install from the repository:

bash python -m pip install -e source/gen3

🚀 Training & Basic Testing

You can train a policy on the Kinova Gen3 Reach Task using either rsl_rl or rl_games library:

bash python scripts/rsl_rl/train.py --task Gen3-Reach-v0

After training, a quick way to validate the behavior is to use play.py:

bash python scripts/rsl_rl/play.py --task Gen3-Reach-v0

This helps confirm that the learned policy performs as expected in Isaac Lab before attempting transfer.

🤖 Sim2Real Deployment (ROS2)

The Sim2Real pipeline focuses on deploying trained reinforcement learning policies directly onto the real Kinova Gen3 robot using a minimal ROS2-based interface, with no dependency on Isaac Lab or Isaac Sim at runtime.

Fake-hardware test

You can first try to simulate the Kinova Gen3 in ROS2 using fake hardware mode:

bash ros2 launch kortex_bringup gen3.launch.py robot_ip:=yyy.yyy.yyy.yyy use_fake_hardware:=true

To test movement commands, send a simple joint trajectory:

bash ros2 topic pub /joint_trajectory_controller/joint_trajectory trajectory_msgs/JointTrajectory "{ joint_names: [joint_1, joint_2, joint_3, joint_4, joint_5, joint_6, joint_7], points: [ { positions: [0, 0, 0, 0, 0, 0, 0], time_from_start: { sec: 1 } }, ] }" -1

Run the Reach Task with the trained policy to go to a certain predefined position:

bash python3 scripts/sim2real/run_task_reach.py

Real robot test

The next step is to connect the same interface to the real Kinova Gen3 and execute the learned Reach Task in real-world conditions — using the exact same model and runtime logic validated in simulation.

For that you'll run:

bash ros2 launch kortex_bringup gen3_lite.launch.py robot_ip:=192.168.1.10

And in the same way as simulation, in another terminal:

bash python3 scripts/sim2real/run_task_reach.py

Now your robot should be alternating between three positions.

🌟 Acknowledgements

📚 Citation

If you use this work, please cite it as:

```bibtex @software{LeLayKinovaGen3RL2025, author = {Le Lay, Louis}, doi = {https://doi.org/10.5281/zenodo.16530856}, license = {MIT}, month = jul, title = {Kinova Gen3 RL & Sim2Real Toolkit}, url = {https://github.com/louislelay/kinovaisaaclab_sim2real}, version = {v1.0.0}, year = {2025} }

Owner

  • Name: Louis LE LAY
  • Login: louislelay
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this work, please cite it as below."
title: "Kinova Gen3 RL & Sim2Real Toolkit"
version: "v1.0.0"
doi: https://doi.org/10.5281/zenodo.16530856
date-released: 2025-07-28
authors:
  - family-names: Le Lay
    given-names: Louis
    orcid: https://orcid.org/0009-0007-7638-1769
repository-code: https://github.com/louislelay/kinova_isaaclab_sim2real
url: https://github.com/louislelay/kinova_isaaclab_sim2real
keywords:
  - reinforcement learning
  - sim2real
  - robotics
  - Isaac Lab
  - Kinova Gen3
license: MIT

GitHub Events

Total
  • Issues event: 6
  • Watch event: 120
  • Issue comment event: 8
  • Push event: 7
  • Fork event: 15
Last Year
  • Issues event: 6
  • Watch event: 120
  • Issue comment event: 8
  • Push event: 7
  • Fork event: 15

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 24
  • Total Committers: 1
  • Avg Commits per committer: 24.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 24
  • Committers: 1
  • Avg Commits per committer: 24.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
louislelay l****s@g****m 24

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • WilliamBonilla62 (1)
  • giangdao1402 (1)
  • kimtaehyeong99 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

source/gen3/pyproject.toml pypi
source/gen3/setup.py pypi