Skip to main content

StackForce Giant Bipedal Wheeled Robot Development Guide

tip

This guide is designed for professional developers and researchers, providing a complete solution from basic setup to advanced application development. If you are a beginner, we recommend starting with the Mini version.

📋 Table of Contents

Product Overview

Product Positioning

The StackForce Giant Bipedal Wheeled Robot is a professional-grade wheel-legged robot system built on the StackForce lightweight robot development platform. Compared to the Mini version, the full version has significant improvements in hardware configuration, software functionality, and expansion capabilities, specifically designed for professional development, academic research, and commercial applications.

Core Technical Architecture

Dual-Chip Collaborative Control System

  • S1 Main Control Chip: Responsible for motor control, FOC algorithm execution, and motion control
  • S3 Coprocessor Chip: Responsible for servo control, sensor fusion, and wireless communication

Omnidirectional Kinematics Model

  • Quaternion-based attitude calculation algorithm
  • Real-time inverse kinematics solution

Intelligent Balance Algorithm

  • Adaptive PID control
  • Dynamic center of gravity adjustment
  • Complex terrain adaptive stabilization

BOM Bill of Materials

Large Wheel-Leg Structure Bill of Materials

Item NameQuantityNotes
Electronic Components
StackForce Main Control Board1
StackForce High Current Board A1
StackForce High Current Board B1
StackForce Servo Board1
StackForce CAN Board1
StackForce IO Expansion Board1
StackForce Hall Board1
Carbon Fiber Structural Parts
Side Panel25mm thickness
Side Panel Base Frame23mm thickness
Front Guide45mm thickness
Baffle23mm thickness
PLA 3D Printed Parts
Upper Leg4
Lower Leg4
Front/Rear Panel4
Front/Rear Panel Connector4
Baffle Connector4
Main Control Base1
Motor Cover4
Cover Plate V12
Cover Plate V22
Battery Compartment1
Battery Cover1
CNC Machined Parts
Leg Connector 302
Leg Connector 402
Aluminum Profile
4030100 1mm thick4Requires drilling
6020320mm 1mm thick2Requires drilling
Fasteners
M2*101Round head black
M3*84Round head
M3*832Black, hex socket
M3*1012Black, hex socket
M3*1416Black, hex socket
M3*2012Black, hex socket
M3*2524Black, hex socket
M3*4016Black, hex socket
M3*458Black, hex socket
M3*508Black, hex socket
M3*508Black, flat head
M4*3044Black, hex socket
M4*302Black round head
Copper Pillar22M3*8+4
Set Screw410M830
M3 Nut10Black
M3 Lock Nut54Black
M4 Lock Nut20Black
M6 Lock Nut4
M8 Lock Nut4
External Thread Bearing49C2L15M6
F6000ZZ Bearing810268
Motors
Hub Motor 5.5 inch 24v2
GIM6010-8-Standard Version4

Core Features

1. 🚀 High-Performance Hardware Platform

Main Control System

  • Dual-Chip Architecture: S1 + S3 collaborative processing
  • Real-Time Performance: Microsecond-level response time
  • Expansion Interfaces: Rich I2C, SPI, PWM interfaces

Motion Control System

  • FOC Vector Control: Precise torque control

2. 🧠 Intelligent Perception System

Sensor Configuration

  • High-Precision IMU: 9-axis sensor fusion
  • Magnetic Encoder: 14-bit precision position feedback

3. 🌐 Powerful Communication Capabilities

Wireless Communication

  • WiFi 6: High-speed data transmission
  • Bluetooth 5.2: Low-power connection
  • Custom Protocol: Efficient communication protocol stack for remote controller connection

Wired Interfaces

  • USB Type-C: Serial debugging
  • CAN Bus: Motor driving

4. 🔧 Flexible Development Support

Development Toolchain

  • PlatformIO: Professional embedded development environment
  • ROS/ROS2: Robot Operating System compatibility

Open Source Ecosystem

  • Fully Open Source: Control code is open source
  • Modular Design: Facilitates feature expansion

Quick Start

System Requirements

Hardware Requirements

  • StackForce Full Version Robot Kit
  • Computer with Ubuntu 20.04+ or Windows 10+ installed
  • At least 8GB RAM, 100GB available storage space

Software Requirements

  • Visual Studio Code
  • PlatformIO IDE Extension

Remote Control Operation Guide

1. Receiver Wiring

The diagram below shows the output wiring sequence of the receiver; only the following three wires are needed: CH1/PPM, GND, VCC.

The receiver outputs in order: CH1/PPM, GND, VCC

The expansion board has 40 pins, with GND and 3V3 in the middle row, as shown in the diagram below.

2. Receiver and Remote Control Frequency Pairing

Before pairing frequencies, first turn off the remote control, then power on and off the receiver three times within 10 seconds to enter pairing mode. The receiver indicator light will light up and go out after one second.

Then flip the remote control enable switch down to enable signal transmission, flip the left joystick of the remote control down to the lowest position, and then turn on the remote control. The frequency pairing is successful. After successful frequency pairing, the receiver indicator light will go out.

3. Remote Control Basic Usage Instructions

Joystick and Switch Functions

ControllerFunctionDescription
Enable JoystickWhether remote control sends signalMust be flipped before controlling the robot
Left Joystick (up/down)Control robot heightRaise up, lower down
Left Joystick (left/right)Control height of both sides of robot legsNeed to enable shoulder swing function
Right Joystick (up/down)Control robot forward/backward movementUp to move forward, down to move backward
Right Joystick (left/right)Control robot left/right turningTurn left, turn right

Left Joystick with Left Knob Usage

  • When the left knob is turned clockwise to the top: Flip the left joystick down to enable shoulder swing function; flip up to disable
  • When the left knob is turned counterclockwise to the bottom: Flip down to make the robot jump, flip up to disable jump

Right Joystick and Right Knob

  • The right joystick has three positions:

    • Top position: Disable hub motor
    • Middle position: Enable hub motor
    • Bottom position: Activate self-stabilizing mechanism
  • Right knob: Adjust balance deviation

4. Robot Power-On Operation Steps

Detailed Operation Process

  1. Remote Control Preparation

    • Flip the left joystick of the remote control to the lowest position, then turn on the remote control
    • Ensure the robot legs are suspended and parallel to the ground
    • The robot legs should hang naturally, ensuring smooth wheel rotation for calibration
  2. Robot Power-On

    • Turn on the robot power switch
    • Wait for hub motor calibration to complete
  3. Main Control Board Reset

    • Flip the left joystick all the way up to reset the S3 chip on the main control board
    • Wait for calibration to complete
  4. Leg Retraction

    • Flip the left joystick all the way down to retract the robot legs
    • Place the robot on the ground
  5. Hub Motor Activation

    • Flip the right joystick to the middle position to start the hub motor
    • If the robot cannot maintain balance, fine-tune the right knob on the remote control until the robot maintains balance
warning

Important Reminders:

  • Do not over-discharge the remote control battery
  • You can use a multimeter to measure battery voltage
  • Normal discharge range is generally 25-21V
  • If voltage drops below 21V, please charge in time
  • If you do not understand the above steps, you can contact technical staff to watch the robot power-on operation video!

System Debugging Guide

tip

This section uses the ID number of the joint motor board as the label for explanation. Please connect strictly according to the wiring diagram.

1. Wiring Guide

tip

Wiring Diagram - Wire strictly according to the diagram to ensure each connection is correct

Overall wiring diagram

1. Hub Motor Wiring

Hub motor three-phase line and Hall three-phase line wiring:

  • Hub motor three-phase wire welding sequence (left to right): Green, Yellow, Blue
  • Encoder wire sequence (left to right): Yellow, Green, Blue, Black, Red

Detailed Wiring Diagram:

Motor wiring detail image 1

Figure 1: Motor three-phase line wiring

Motor wiring detail image 2

Figure 2: Encoder wiring details

Left and right hub motor wiring allocation:

  • Left hub motor:
    • Three-phase line → High current Board B
    • Hall encoder line → Hall Board M0 port

Left and right wheel detailed wiring scheme:

Left hub motor wiring

Left hub motor wiring scheme

Right hub motor wiring

Right hub motor wiring scheme

2. S1 Firmware Flashing

Pre-flashing Preparation

warning

Important Reminder - USB cable insertion direction is crucial, incorrect insertion may cause device damage

  1. Insert the USB cable's type-c head with the seam side facing down into the main control board's type-c interface
  2. Check the main control board indicator light:
    • If the main control board lights yellow → Normal, can flash directly
    • If the main control board lights green → Press the white self-locking button beside it to switch to yellow light
USB cable insertion direction diagram

⚠️ Note the USB cable insertion direction

Flashing Steps

Step 1: Open the flashing tool

  1. Double-click to open the flash_download_tool_3.9.2.exe tool
  2. After the tool opens, a dialog will pop up, select ESP32
Flashing tool startup interface

Step 2: Select firmware file

  1. Click the three dots (📁 icon) in the first row
  2. In the pop-up folder, select the target.bin file
Firmware file selection interface

Step 3: Configure flashing parameters

info

Parameter Configuration Checklist - Please configure according to the following parameters to ensure successful flashing

Configure the following parameters:

  1. Select file path (automatically displayed)
  2. Check selection
  3. Write address: 0x00
  4. Clock frequency: 80MHz
  5. Flash mode: QIO
  6. Serial port selection: View CH340 corresponding port through Device Manager
  7. Baud rate: 921600
Flashing parameter configuration 1

📋 Parameter configuration step 1

Flashing parameter configuration 2

📋 Parameter configuration step 2

Flashing parameter configuration 3

📋 Parameter configuration step 3

Step 4: Verify flashing results After successful flashing:

  1. Assemble the board and connect the wires
  2. Open the serial assistant (VOFA) and select the corresponding port
  3. Power on the robot:
    • First turn on the remote control
    • Flip the left joystick of the remote control to the top
    • Flip the top-right lever to the top (L position)
  4. Press the S1 chip reset button (position marked with red box)
success

Verification Steps - Please verify according to the following steps after flashing is complete

S1 chip reset button position

✅ S1 chip reset button position

Serial debugging assistant interface

📊 Serial debugging assistant interface

If the serial print information is as shown in the figure below, it means the hub motor wiring is correct and the S1 firmware was successfully flashed.

Flashing success verification information

🎉 Flashing successful! Seeing this message indicates everything is normal

3. Checking Terminal Resistance

Joint Motor Driver Board ID Numbers

The joint motor driver boards have firmware flashed before shipping and are labeled with labels that are the CAN ID numbers:

Joint PositionCAN ID Number
Left Front Joint Motor Driver Board0x04
Right Front Joint Motor Driver Board0x03
Left Rear Joint Motor Driver Board0x02
Right Rear Joint Motor Driver Board0x01

Connection and Terminal Resistance Settings

  1. Use XT30 (2+2) cable connection:

    • Connect the four joint motor driver boards in series
    • Only need to open the terminal resistance of one of the motor driver boards in the wiring
    • The other three do not need to open terminal resistance
  2. CAN Board Terminal Resistance Check:

    • Check whether the terminal resistance on the CAN board is open
    • Use a multimeter resistance mode to measure the resistance of CAN board H and L terminals
    • Normal resistance should be around 60Ω
  3. Troubleshooting:

    • If the resistance is incorrect, check whether the terminal resistance switches on the back of the other three joint motor driver boards are closed
    • Ensure only one terminal resistance is in the open state

4. Calibrating Zero Position

Step 1: Modify Code Settings

In the can.cpp file:

  1. Scroll down to find the CAN_control() function
CAN_control function in can.cpp file

📝 Key code location in can.cpp

In the main.cpp file:

posInit function in main.cpp file

📝 Key code location in main.cpp

Step 2: Hardware Preparation and Flashing

  1. Robot Preparation:

    • First let the joint motor legs hang naturally vertically downward
    • Insert the USB cable into the main control board (note that the side of the type-c interface with the seam is down, the side without the seam is up)
    • After insertion, the main control board S3 serial port should light green light
    • If it lights yellow, press the white button on the main control board to switch to S3 chip
  2. Program Flashing:

    • Flash the modified program
Hardware preparation completed diagram

🔧 Hardware preparation completed state

  1. Power-on Test:

    • Open the serial assistant after flashing the program
    • Power on the robot (flip the top-right lever of the remote control to the top (L))
    • Reset the S3 chip
    • Observe that the initial angles of the joint motors printed by the serial port are all near 0
  2. Verify Angle Data:

    • Shake one of the robot's big arms
    • Which data changes corresponds to the angle data of that big arm position
Serial output angle data verification

📊 Serial output - angle data verification

Step 3: Complete Zero Position Settings

In the main.cpp file:

main.cpp zero position setting completed

✅ main.cpp zero position setting completed

In the can.cpp file:

  1. After commenting posInit(), you need to uncomment the CAN command sending in the CAN_Control() function in the can.cpp file
  2. Comment out printing the joint motor electrical angle
can.cpp final configuration

✅ can.cpp final configuration completed

Step 4: Final Adjustment

  1. Re-flash the program to the S3 chip
  2. Control Test:
    • Power on the robot
    • Control the leg height joystick
    • Observe whether the leg height changes follow the left joystick control
  3. Height Balance Adjustment:
    • Place the robot on the ground
    • Retract the robot legs to the minimum
    • Observe whether the heights on both sides of the robot plane are consistent
    • If not consistent, adjust the leftY and rightY values in the robot.cpp file

Height Balance Adjustment Diagram:

Height adjustment before and after comparison 1

⚖️ Height adjustment diagram - before adjustment

Height adjustment before and after comparison 2

⚖️ Height adjustment diagram - after adjustment

5. Debugging PID Parameter Values

Debugging Preparation

PID Parameter Debugging Interface:

PID parameter debugging step 1

🔧 PID debugging steps - function comments

PID parameter debugging step 2

🔧 PID debugging steps - parameter printing

Debugging Steps

Debug PID parameters at three height values:

Height ValueCorresponding PositionFill Parameters
0Lowest pointpid0
100Midpointpid1
200Highest pointpid2

Each pid parameter includes:

  • Speed loop Kp
  • Upright loop Kp
  • Upright loop Kd
  • Robot X-axis Kp

Debugging Process

  1. Debug each height individually:

    • Debug the PID parameter values for three different height values separately
    • Ensure the robot can maintain balance at each height
  2. Fill parameters:

    • Fill the debugged PID parameters of the three height values into the PID linear fitting function in order
    • Fill the PID parameter values of the lowest point into pid0
    • Fill the PID parameter values of the midpoint into pid1
    • Fill the PID parameter values of the highest point into pid2
  3. Final verification:

    • After debugging is complete, uncomment the PID linear fitting function
    • Flash the program into the S3 program
    • Power on the robot according to the robot power-on steps
    • Ground verify that the PID parameters meet the robot's motion balance and operational requirements
tip

If you need to refer to operation videos, you can contact the technical staff in the group to obtain the robot power-on operation video!

Hardware Assembly

Detailed Assembly Guide

Assembly Documents and Videos

📄 Assembly Documents
🔧 Development Tools
💻 Firmware and Programs
📚 Technical Documentation
🗂️ 3D Models and Schematics
🎥 Video Tutorials

Detailed Assembly Steps

Phase 1: Mechanical Framework Construction

  • Assemble base structure
  • Install wheel-leg components
  • Connect main body framework

Phase 2: Electronic System Integration

  • Install main control system (S1/S3 boards)
  • Configure sensor modules
  • Set up communication interfaces

Phase 3: System Debugging

  • Execute hardware self-check
  • Verify system functionality

Conclusion

The StackForce Giant Bipedal Wheeled Robot represents the latest development level of wheel-legged robot technology. We are committed to providing developers with the most powerful tools and most comprehensive support to jointly advance the development of robot technology.

Whether you are a student, researcher, or engineer, StackForce can provide you with an innovative platform with unlimited possibilities. We look forward to seeing you create amazing applications!

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...