Zurück zu LinkerBot O6 Path

Software und SDK

Installieren und konfigurieren Sie das LinkerBot O6 SDK, den ROS2-Controller und die LeRobot-Integration. Gemeinsame Steuerung in Python. Arbeitsraumlimits und Drehmomentmanagement. ~ 2 Stunden.

Einheit 2 von 5 · Software & SDK · ~ 2 Stunden

Setzen Sie den vollständigen Software-Stack ein: LinkerBot SDK, ROS2-Controller, LeRobot-Integration und Joint Position Control in Python. Führen Sie eine scripted Multi-Joint-Trajektorie aus, bevor Sie zur Teleoperation wechseln.

Schritt 1: Python SDK und virtuelle Umgebung

# Create a dedicated venv for the O6
python3 -m venv ~/o6-env
source ~/o6-env/bin/activate

# Install the LinkerBot SDK and data dependencies
pip install roboticscenter lerobot numpy torch torchvision

# Verify the import works
python3 -c "from roboticscenter.o6 import O6Robot; print('SDK OK')"

Schritt 2: Einrichtung des ROS2-Controllers

Das LinkerBot ROS2-Paket stellt das O6 als Standard T6 Hardware-Schnittstelle dar.

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/roboticscenter/linkerbot_ros2.git

cd ~/ros2_ws
source /opt/ros/humble/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash

Starten Sie den Steuergerät mit dem Arm angeschlossen:

ros2 launch linkerbot_bringup o6_bringup.launch.py \
  can_interface:=can0

In einem zweiten Terminal bestätigen die gemeinsamen staatlichen Themen:

source ~/ros2_ws/install/setup.bash
ros2 topic echo /joint_states --once

Schritt 3: Referenz der gemeinsamen Grenzen

Joint Min (rad) Max (rad) Max Vel (rad/s)
Joint 1 (base rotation) -3.14 +3.14 1.5
Joint 2 (shoulder) -2.09 +2.09 1.5
Joint 3 (elbow) -2.62 +2.62 1.5
Joint 4 (forearm roll) -3.14 +3.14 2.0
Joint 5 (wrist pitch) -1.57 +1.57 2.0
Joint 6 (wrist roll) -3.14 +3.14 2.0

Schritt 4: Schreiben Sie eine Schriftbahn

Dies überprüft, dass alle 6 Gelenke auf Positionbefehle reagieren.

from roboticscenter.o6 import O6Robot
import time

robot = O6Robot(can_interface="can0")
robot.connect()
robot.enable_torque()

# Move to a pre-reach position
print("Moving to pre-reach...")
robot.move_joints(
    positions=[0.0, -0.5, 1.0, 0.0, 0.5, 0.0],  # radians
    speed_fraction=0.2
)
time.sleep(3)

# Reach forward (extend joint 2 and 3)
print("Reaching forward...")
robot.move_joints(
    positions=[0.0, -1.0, 1.5, 0.0, 0.5, 0.0],
    speed_fraction=0.2
)
time.sleep(3)

# Return to home
print("Returning to home...")
robot.move_to_home(speed_fraction=0.2)
time.sleep(3)

robot.disable_torque()
robot.disconnect()
print("Trajectory complete")

Beim Drehbewegung mit Schrift verhindern Sie die Hand des Arms. Laufen Sie beim ersten Versuch mit T8 oder niedriger und beobachten Sie den Arm genau, bevor Sie die Geschwindigkeit erhöhen.

Schritt 5: Integration des LeRobot SDK

Bestätigen Sie, dass LeRobot mit dem O6 mithilfe der bereitgestellten Roboterkonfiguration kommunizieren kann:

python3 -c "
from lerobot.common.robot_devices.robots.factory import make_robot
robot = make_robot('linker_bot_o6')
robot.connect()
obs = robot.capture_observation()
print('Observation keys:', list(obs.keys()))
robot.disconnect()
"

Sie sollten Tasten wie T9 (gemeinsame Positionen und Geschwindigkeiten) und T10 sehen, wenn eine Kamera konfiguriert ist. Wenn Sie eine T11 sehen, überprüfen Sie die CAN-Schnittstelle und dass der Arm angetrieben und reagiert.

Einheit 2 ist fertig, wenn...

Der ROS2-Controller startet ohne Fehler und T12 veröffentlicht. Die scripted Trajektorie läuft alle 6 Verbindungen durch zwei Waypoints und kehrt nach Hause zurück. LeRobots T13 gibt einen gültigen Beobachtungsdict zurück. Sie verstehen die gemeinsame Grenztabelle und befehlen keine Positionen außerhalb dieser Reichweiten.

[← Zurück zu Wegübersicht]