5 Comments
User's avatar
Ishneet Sukhvinder Singh's avatar

For the CAN emulator, we used virtual CAN as we are utilising SocketCAN on Linux for motor communication.

For the IMU, we read IMU data from UDP. The MuJoCo bridge reads the virtual robot's imu_ang_vel and imu_lin_acc sensors and sends them to the firmware.

FusionX was to get the projected gravity value needed for the policy. Using it allowed us to have the exact same code in sim and real, compared to using a pre-computed proj gravity calculation that we wouldn't be able to simulate.

Steve XP's avatar

Seconding Praveen, there has been a good amount of prior lit covering the addition of noise in training and I think we all agree its good to do, is there anything you feel is giving you an extra edge? How detailed is your CAN bus emulator?

Ishneet Sukhvinder Singh's avatar

Replied above!

Praveen Kumar's avatar

It was really nice article. I think it could become even more interesting if you went deeper into some of the technical details.

I’m particularly curious about how you built the CAN bus and IMU simulator. Is the mujoco sensor data transmitted through a real USB-to-CAN adapter or cable interface?

Also, how much did the FusionX sensor fusion contribute? Did you conduct any ablation studies to evaluate its impact?

Ishneet Sukhvinder Singh's avatar

Replied above!