- Perching Arm motion (and dynamics) functional
- PerchCam and HazCam depth sensors enabled
- Improved performance
- Guest Science Manager implementation available on Android
- Guest Science library for communication between the manager and guest apps
- Executive can command Guest Science apps
- GN&C decomposed into three separate ROS nodes for easier customization / extension:
- EKF
- Control
- Force Allocation Module
- Management of FlightModes handled on all levels (Exec, Mobility, GN&C and Propulsion)
- Feature map much smaller
- Faster sparse mapping (3Hz on 2 cores only versus 2Hz on 4 cores)
- Visualization tool for localization features
- Calibration of depth cameras relative to IMU
- Fixed 6DoF face-forward bug with the trapezoidal path planner
- Asynchronous, state-based mobility and control pipeline with improved debugging output
- Multiple speed gains now supported by FAM, with a controlled ramp up/down
- Robot now starts in "off" flight mode by default
- Asychronous, state-based procedures for
- Arm control
- Docking and undocking
- Perching and unperching
- Changed to new motion system
- Flight mode propagation
- Picoflexx driver produces depth images in addition to point clouds
- Picoflexx internal core (Royale) driver bumped to v3.9.0 LTS
- PMC actuator now determines its state (ramping up/down, ready) based on telemetry feedback
- Use the same flight software stack that is run on the platform (but the HW drivers)
- Dynamics of the Astrobee using Gazebo at 1KHz
- One ISS module environment from Gazebo
- GNC control running at 62.5Hz (same as real platform)
- uses GNC Simulink blower propulsion module
- EKF inputs:
- IMU model (no noise in this release)
- Sparse mapping features (sampled from point cloud)
- Visual features from synthetic images for optical flow
- Camera models (from Gazebo with radial distortion)
- Flashlight and laser representation
- Can run with Gazebo 7 GUI and RViz or headless
- Supports muti-Astrobee simulation (no communication between them)
- Collision between Astrobee and ISS walls simulated
- No AR target tracking
- No Handrail detection
- Depthcam point cloud disabled (efficiency)
- Camera raytracing runs at 2Hz
- Conservative limit on angular velocity
- Arm simulation disabled
- No noise in the system
- JAVA API generated from XP-JSON command dictionary
- Commands can be send to the Executive using the API and provided ROS Java framework
- Android framework to support ROS Java in development
- No guest science manager (life cycle of Guest Science apps)
- Localize without external infrastructure (beacons, etc.)
- EKF works with following inputs:
- Sparse mapping with BRISK (regular nav), ~2Hz
- Optical flow ~15Hz
- AR targets (docking)
- Handrail detection (perching)
- Produce 62.5Hz output
- Localization manager allows switching safely between localization modes
- Tools to calibrate intrinsics and extrinsics (IMU to Camera)
- Tools to build maps from monocular vision (SURF + BRISK)
- Tools to test localization performance from rosbag
- Custom visualizer (gViz) for EFK inspection
- Sparse mapping runs only at 2Hz (vision processing + feature matching)
- High distortion limits the usable features
- Handrail localization needs improvements
- No extrinsics calibration between depthcam and IMU
- Better tuning for noise model and "lost" threshold required
- No incremental map building
- No tiling of large maps
- No perched localization (low power localization when perched)
- Provides 4 different motion types:
- IDLE (drifting)
- STOP (zeros velocity, hold position if not externally moved)
- MOVE (moves to given end pose)
- EXECUTE (follows a time/space trajectory)
- Provides 2 motion planners:
- trapezoidal (default)
- QP planner
- Move primitive are position based
- Validation of trajectories: stationary end-point, hard limits (velocity and acceleration) and control frequency
- Velocity control is not allowed
- On-board validation of trajectories against keep-in and keep-out not enabled
- Planner type cannot be changed from ground (DDS)
- Hazard detection not implemented
- Arbitrates commands regarding operating mode and current state
- Sequencer supports plan execution
- Supports essential commands (see list of currently supported commands)
- Plan
- Motion
- Camera management
- System management
- Full command dictionary is not implemented
- Guest Science management not supported yet
- Faults are managed in a spreadsheet, converted to a fault table read by the system
- Heart beat monitor for most nodes
- System monitor framework can trigger responses to published faults
- Very few faults are published
- Leverages ROS framework for on-board framework
- All software stack works on Ubuntu 16.04 on Intel and ArmHF (target platform)
- Dependencies packaged as Debian
- Software updates delivered as Debian
- Unify launch file system supports multiple scenarios, on-robot, simulator or processor in the loop configuration
- Leverages rViz and Gazebo 7 integration
- Improved HTC Vive tracker, calibration procedure and integration for ground truth
- Documentation is incomplete