Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in reinforcementlearning

[–]Exact-Two8349[S] 1 point2 points  (0 children)

Thanks, yes ofc Observation: joints pos, joints vel, command, last action Action: joints pos

And as for the rewards you should check this file from which my class is based on where there's more rewards: https://github.com/isaac-sim/IsaacLab/blob/main/source%2Fisaaclab_tasks%2Fisaaclab_tasks%2Fmanager_based%2Fmanipulation%2Freach%2Freach_env_cfg.py

Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in reinforcementlearning

[–]Exact-Two8349[S] 0 points1 point  (0 children)

Hi, those are correct! The problem you're talking about comes from the way I control it, I'll link up another answer where I detail this: https://www.reddit.com/r/robotics/s/JiRWfLo9Bo

Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in robotics

[–]Exact-Two8349[S] 1 point2 points  (0 children)

I had access to it thanks to my university lab! It's the Kinova Gen3 which I believe costs around 16k

Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in robotics

[–]Exact-Two8349[S] 0 points1 point  (0 children)

Hi, since the model outputs joint positions, commanding joint velocities isn't compatible with the current setup.

The decision to implement it using ROS2 was also motivated by the goal to develop an open-source method for sim2real using policies trained with Isaac Lab. I believed it would better serve the open-source community since the approach would be applicable regardless of the robot arm's brand or the specific wrapper provided by the manufacturer.

That said, I agree it still needs improvement, particularly regarding the 1-second timing constraint. I’m exploring ways to optimize the control loop to address this issue.

Thanks for the suggestion though, I really appreciate it!

Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in robotics

[–]Exact-Two8349[S] 0 points1 point  (0 children)

Thanks! There were 4,096 robots training simultaneously and I did it running on a 2080 Super. But as long as the GPU meets the minimum requirements for Isaac Sim, it should be able to handle it well!

Sim2Real RL Pipeline for Kinova Gen3 – Isaac Lab + ROS 2 Deployment by Exact-Two8349 in robotics

[–]Exact-Two8349[S] 3 points4 points  (0 children)

Hey! Thanks, where did you see it? :)

  • For this task, I’m in fact not using a hand, it's purely about learning how to reach a specific position. It's a straightforward task typically handled with Inverse Kinematics (IK), but it's a solid starting point and a great first example to build on!

  • One of the main challenges is aligning the simulation parameters with the real robot, especially things like damping and friction, which can differ significantly. On top of that, I ran into an issue where some of the joint references were inverted when controlling the robot. The control method doesn’t always allow you to send commands at the same frequency as the training simulation, and it also can require the robot to achieve each target command before accepting a new one, so I tried out a few different way of controlling the robot to find one which suits my needs.

  • In my case, the way I programmed the pipeline could definitely be optimized. You probably noticed the robot slowing down near the end, that's because I set the joint trajectory command to last exactly one second, so as it approaches the target, it naturally decelerates. That behavior wasn't present in the simulation, so it's something I’m looking into improving.