Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

mc_core

mc_core is the core package of the MC-ONE stack. The package contains core, sysinfo and beep nodes, as well as the robot description, and the firmware for the eye displays.

The Nodes

The core node controls all robot hardware. It combines the Monitor and UI servers with servo control, as well as control of the eyes, rudimentary audio/video I/O and interface with ROS. The core node runs on the chest SBC.

The sysinfo node is for other (non-chest) SBCs in the system to report their memory and CPU usage to the core.

The beep node is a node to test parameter functionality in the Monitor.

Robot Description

Part of mc_core is the robot description. This consists of the URDF file, meshes of the individual components for RViz2, and a description of all joints.

Docker and Scripts

Dockerfile describes the dependencies and build process for the nodes. You can use build.sh to build the container, and run_core.sh, run_beep.sh and run_sysinfo.sh scripts to run the nodes. It is also possible to run the nodes from within a Docker Compose setup, as demonstrated in mc_one_codey.

Next to running the nodes, it is also possible to run RViz2 to visualize the robot.

  • launch_rviz_current.sh launches RViz2 showing a robot that reflects the joint current positions as they are read from the actual servos. Note that this can only work if servos are actually connected.
  • launch_rviz_goal.sh launches RViz2 showing a robot that reflects the joint goal positions as intended by the animation system.

Rust Documentation

build_rustdoc.sh generates the code documentation for the core node. The latest version of this documentation can be found here.