Code Structure
Code Structure#
Here we provide an overview of the codebase.
deoxys/
InstallPackage # A bash script that install all necessary dependencies
CMakeLists.txt # cmake file taht compiles the whole project.
Makefile # Makefile that makes cmake compilation easier.
auto_scripts/ # Automated scripts for constantly running control loop
auto_arm.sh
auto_gripper.sh
# Python scripts
deoxys/
__init__.py # define config_root
franka_interface/
franka_interface.py # A file that defines the python-end franka interface
experimental/ # Developmental features
motion_utils.py # Simple motor programs
scripts/
get_deoxys_info.py # Functions that retrieve basic information about control
utils/
io_devices/ # Standalone io devices, mainly for teleoperation
keyboard.py
spacemouse.py
config_utils.py # Utility functions for setting default configs
log_utils.py # Deoxys python logger
transform_utils.py # Replica of robosuite transform_utils.py
yaml_config.py # Abstraction for loading yaml configs
# C++ implementation
franka-interface/
include/
controllers/ # Header files for controller, structures omitted to avoid repetition in src
utils/
control_callbacks/ # Header-only files
state_estimators/ # Header-only files
traj_interpolators/ # Header-only files
common_utils.h
log_utils.h
control_utils.h
shared_memory.h # Share memory class for global handler
shared_state.h # Shared state class that saves robot states
zmq_utils.h
robot_utils.h
src/
franka_control_node.cpp # Launch arm control
gripper_control_node.cpp # Launch gripper control
controllers/
base_controller.cpp # BaseController, a base class for all robot controller
osc_impedance.cpp # Operation Space Controller
osc_yaw_impedance.cpp # Operation Space Controller, with only yaw rotation
osc_position_impedance.cpp # Operation Space Controller, with only positions
cartesian_velocity.cpp # Cartesian Velocity Controller
joint_impedance.cpp # Joint Impedance Controller
joint_position.cpp # Joint Positional Controller
utils/
common_utils.cpp
control_utils.cpp
zmq_utils.cpp
robot_utils.cpp
proto/ # Protobuf messages
franka-interface/ # Franka-specific protobuf messages
franka_controller.proto # Where all controllers are defined for communication
franka_robot_state.proto # Where states are defined for communication