Skip to content

1 KB

Machine-translated by Robotheca from the original in Chinese (opens in a new tab). License: MIT (opens in a new tab).

MCU and IMU Embedded Task (15 points)

Problem Description

Select a CAN-capable MCU (e.g., STM32, MSPM0, ESP32, GD32, NXP, Renesas) of your choice. You must specify the model, CPU architecture, main frequency, Flash, RAM, CAN peripherals, and development environment. Set up an MCU project, connect IMU, UART, CAN, and control interfaces, and at least read acceleration and angular velocity; providing attitude angles/quaternions is recommended. The MCU controls 2 leg motors on each side and 1 wheel-footed motor, for a total of 6 actuators.

You must clearly state which communication link the MCU operates in:

  • Pure upper-computer only receives CAN messages;
  • Upper-lower-computer joint system has the MCU parse high-level commands from the upper computer and send 6-channel CAN control;
  • Pure lower-computer independently receives remote-control/sensor inputs, runs the controller, and drives the CAN bus.

The remote-control logic fields must remain consistent with docs/remote_control.md.

Deliverables

firmware/, drivers/, imu/, startup and build instructions, hardware connection diagrams, IMU readout tests, exception/timeout handling, and logs for Linux co-debugging. For CAN frame format, see ../docs/can_protocol.md; for remote-control frames, see ../docs/remote_control.md.

Scoring

ItemScore
MCU Project, Boot and Build3
IMU Reading, Calibration and Data Output4
Linux-MCU Joint Debugging and Closed-Loop Control3
Six Actuators Real-Time Performance, Fault Protection and Reproducible Flashing5

CAN transmission and reception are scored separately according to the 15 points in can/README.md. The embedded system and CAN combined total 30 points.

Files by @wusi321, at commit b6b12b0, read from GitHub in your browser. Hardware license: MIT; software license: MIT. Robotheca doesn't review code: read it before running it.