Traxxas RC Car Example

Complete OctoMY™ configuration for an RC car robot

Traxxas RC Car Example

A complete example of configuring OctoMY™ for a Traxxas RC car converted into an autonomous robot platform.

Pro Tip

This example shows a complex multi-controller setup. If you're just starting out, begin with the Basic Wheeled Robot tutorial first. Come back here once you're comfortable with the fundamentals.


Overview

This example demonstrates how to configure all OctoMY™ components for a wheeled robot based on a Traxxas RC car chassis. It covers:

  • Identity and personality
  • Controller configuration
  • Actuators and sensors
  • Puppet (3D model)
  • Plans and triggers

Did You Know?

Traxxas RC cars are popular for robotics conversions because they have high-quality motors, suspensions, and drivetrains. The 1/10 scale Slash is particularly popular for autonomous car research.


Identity configuration

Every OctoMY™ Agent needs a unique identity.

identification:
  id: xxxxxx          # Unique identifier (generated)
  keypair: yyyyyy     # RSA keypair (generated)

personality:
  name: "El Traxxo"
  gender: male

The identity is created during the delivery (birth) process.


Controller configuration

This robot uses two controllers working together.

Controller 1: Arduino

The first controller handles sensors and cameras:

controller:
  name: "Arduino #1"
  type: arduino

  sensors:
    - name: imu
      type: accelerometer_gyro

  media:
    - name: usb_cam
      type: usb_camera
    - name: android_back
      type: android_camera
      position: back
    - name: android_front
      type: android_camera
      position: front
      depth: true

  lobes:
    - name: wheeled
      type: locomotion

  stanzas:
    - name: driving

Controller 2: ArduMY

The second controller handles the RC servo actuators:

controller:
  name: "ArduMY #1"
  type: ardumy

  actuators:
    - name: throttle
      type: rc_servo
      pin: 9
    - name: steering
      type: rc_servo
      pin: 10

  sensors:
    - name: lidar
      type: usb_lidar

  media:
    - name: usb_cam
      type: usb_camera
    - name: android_back
      type: android_camera
    - name: android_front
      type: android_camera
      depth: true

  lobes:
    - name: wheeled
      type: locomotion

Security Consideration

When using multiple controllers, ensure each has proper fail-safe configuration. If one controller loses communication, the others should bring the robot to a safe stop automatically.


Puppet configuration

The puppet defines the 3D scene graph for visualization and simulation.

puppet:
  name: "RC Car"
  scene:
    - body
    - wheel_fl    # Front left wheel
    - wheel_fr    # Front right wheel
    - wheel_bl    # Back left wheel
    - wheel_br    # Back right wheel
    - rc_servo_throttle
    - rc_servo_steering
    - lidar
    - cameras

The puppet connects to actuators and sensors by name, allowing the UI to visualize the robot's state in real-time.


Triggers configuration

Triggers enable autonomous responses to events.

triggers:
  - name: "Trigger-set #1"
    triggers:
      - type: location_enter
        zone: "home_base"
        action: slow_down
      - type: face_detected
        action: wave_greeting
      - type: obstacle_detected
        distance: 0.5
        action: emergency_stop

Grid configuration

Grids define sensor data processing pipelines.

grids:
  - name: "Grid #1"
    calculations:
      - type: obstacle_map
        inputs: [lidar, depth_camera]
      - type: position_estimate
        inputs: [imu, wheel_encoders]

Plan configuration

The main plan brings everything together:

plan:
  name: "Main Plan"
  autonomy: full
  skeptron:
    enabled: true
    group_size: 2  # Collaborate with 2 other agents
  waypoint_mission: true
  trigger_set: "Trigger-set #1"
  grid: "Grid #1"
  audit_trail:
    enabled: true
    type: blockchain

Pro Tip

Start with autonomy: remote to test manual control first. Once you're confident the hardware works correctly, switch to autonomy: full for autonomous operation.


Agent mode summary

With this configuration, the Agent supports multiple operating modes:

Mode Configuration
Authority Available (can be controlled by Remote)
Skeptron On (part of a 3-agent group)
Control Plan (following waypoint mission)

Stanza: Driving

The "driving" stanza connects the wheeled locomotion lobe to the actuators:

stanza:
  name: driving
  mappings:
    - lobe: wheeled
      actuators:
        - throttle
        - steering
      sensors:
        - imu
        - lidar

When this stanza is active, the locomotion lobe controls both servos while receiving sensor feedback.


Hardware setup summary

Component Purpose Controller
Throttle servo Speed control ArduMY #1
Steering servo Direction ArduMY #1
IMU (MPU6050) Orientation Arduino #1
USB LIDAR Obstacle mapping ArduMY #1
Front camera Vision, depth Arduino #1
Back camera Rear view Arduino #1

Summary

This Traxxas example demonstrates:

  1. Multi-controller setup - Distributing work between Arduino and ArduMY
  2. Rich sensor array - IMU, LIDAR, and multiple cameras
  3. Autonomous behavior - Plans, triggers, and grids working together
  4. Group collaboration - Skeptron authority for multi-agent operations

Next steps

  1. Create plans - Create a Plan
  2. Advanced topics - Advanced Tutorials
  3. OPAL reference - OPAL Language

In this section
Topics
tutorial hardware RC-car Traxxas complete-example advanced multi-controller LIDAR autonomous
See also