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.shlaunchesRViz2showing 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.shlaunchesRViz2showing 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.