Tutorials

A curated path through the best OpenArm materials — from SocketCAN communication through teleoperation and data logging. Start here, then go deeper through the research articles.

Best First Links

If you are new to OpenArm, start with these four sources before exploring the SVRC research articles. They give you the official ground truth on how the stack works.

Start Here

Official OpenArm documentation & GitHub

  • 1
    OpenArm Software Guide (official) Robot description, SocketCAN, ROS2 integration, and advanced controls. The authoritative overview before diving into specifics. Read official guide →
  • 2
    ROS2 Control Docs Launch files, fake hardware mode, controller setup, and motion commands. Read this before touching real hardware. Open ROS2 control docs →
  • 3
    CAN Library Docs SocketCAN architecture, class layout, MIT control mode, motor IDs, callback modes, and timing. Essential before writing any control code. Open CAN docs →
  • 4
    Main GitHub Repository Repository entry point: hardware, software, issues, and ecosystem links. Open issues to find answers to common problems. View GitHub →

Communication: SocketCAN & CAN Bus

Understand how the arm communicates before writing control code. Most bringup issues are CAN issues.

Practical note

What actually matters in practice

The most common sources of CAN problems are not API misuse — they are callback mode switching, timeout tuning, and inconsistent CAN ID mapping across motors after firmware updates. Check these first before anything else.

Control: ROS2 & MIT Control Modes

Hardware bringup flows and controller configuration. Always run fake hardware first, then real hardware.

Practical note

Mock first, real later

OpenArm supports fake hardware mode out of the box. Always validate your control code with use_fake_hardware:=true before connecting to real motors. This alone prevents most hardware damage incidents.

Practical note

Gains and safety margins

Start with Kp=20, Kd=0.5 for all joints. Increase slowly. The MIT gains guide documents the maximum safe values per joint — staying within them prevents motor overheating and mechanical stress.

Discuss What You Are Building

Use the OpenArm forum to ask about CAN setup, ROS2 bringup, calibration, data logging, and debugging decisions.