-
Notifications
You must be signed in to change notification settings - Fork 10
Software Architecture: File Structure and Organization
Kaelin Laundry edited this page Aug 25, 2019
·
2 revisions
.
├── README.md
├── aruw_common launchfiles and common util scripts
│ ├── CMakeLists.txt
│ ├── launch
│ │ ├── dev.launch launchfile: only vision tracking
│ │ ├── full.launch launchfile: all nodes but without automatic restart
│ │ └── prod.launch launchfile: all nodes with automatic restart
│ ├── package.xml
│ └── src
│ └── common_utils.py utilities for all nodes
├── aruw_msgs
│ ├── CMakeLists.txt
│ ├── msg
│ │ ├── AlignCompleteMessage.msg
│ │ ├── AlignControlMessage.msg
│ │ ├── AlignRequestMessage.msg
│ │ ├── AutoAimDataMessage.msg message: data for turret aim at plate target
│ │ ├── AutoAimRequestMessage.msg message: request to begin turret aim
│ │ ├── McbOdomMessage.msg message: odometry information from main controller
│ │ ├── RobotIdMessage.msg message: robot id information relayed from main controller
│ │ └── TurretAimFeedbackMessage.msg message: turret telemetry
│ └── package.xml
├── aruw_odometry
│ ├── CMakeLists.txt
│ ├── package.xml
│ └── src
│ ├── common_utils.py -> ../../aruw_vision/src/common_utils.py
│ ├── drive_odometry.py base drive-agnostic odometry framework
│ ├── four_wheel_mecanum_drive.py odometry specific to four-wheel mechanum drive
│ ├── odometry.py odometry node which publishes odom data
│ └── sentinel_drive.py odometry specific to sentinel drive
├── aruw_serial
│ ├── CMakeLists.txt
│ ├── package.xml
│ └── src
│ ├── internal_serial.py core serial rx/tx coe
│ ├── serial_msg_classes.py handlers for received message types
│ └── serial_node.py rx/tx bridge between ROS topics and serial
├── aruw_tf_broadcaster
│ ├── CMakeLists.txt
│ ├── package.xml
│ └── src
│ ├── common_utils.py -> ../../aruw_common/src/common_utils.py
│ └── tf-broadcaster.py node which broadcasts TF frames for robot and messages
├── aruw_vision
│ ├── CMakeLists.txt
│ ├── package.xml
│ └── src
│ ├── PID.py
│ ├── aim_turret.py top-level target aiming class: takes in frames and produces aim commands
│ ├── alignment.py
│ ├── common_utils.py -> ../../aruw_common/src/common_utils.py
│ ├── darknet_detector.py wrapper to interface with Darknet
│ ├── frame_set.py container for one frame of data from the RealSense
│ ├── target_tracker.py tracks a set of 3D targets and correlates them with new detections
│ ├── tracked_objective_controller.py
│ ├── tracked_target.py single target tracked by the TargetTracker
│ ├── utils.py vision-specific utilities
│ ├── video_dumper.py vision processor which saves video to disk
│ └── vision.py root vision node
├── aruw_vision.service systemd service for running whole system
├── cv-prod-model trained models and other data
│ ├── aruw-tiny-V2.cfg darknet model configuration for plate detector
│ ├── aruw-tiny-V2_prod.weights trained weights for plate detector
│ ├── aruw.data data config for plate detector
│ ├── aruw.names plate detector classes
├── darknet-aruw fork of darknet neural network library with custom edits
├── scripts
├── choose-log-file.py helper script which picks an available log file name for this session
├── configure-service.sh utility to enable/disable automatic service
├── shutdown-switch-watcher.py background script to watch for shutdown switch
└── startup.sh main launch script run by service