Skip to content

feat: Introduce end to end simulator support#87

Open
DNedic wants to merge 1 commit into
masterfrom
feat/sitl-jmavsim-closed-loop
Open

feat: Introduce end to end simulator support#87
DNedic wants to merge 1 commit into
masterfrom
feat/sitl-jmavsim-closed-loop

Conversation

@DNedic

@DNedic DNedic commented Jul 4, 2026

Copy link
Copy Markdown
Member

Description

This wires up jMavSim and QGroundControl with the efc core code with new plumbing and enables us to start development on estimation and control.

Design choices

  • All bussiness logic is moved into the autopilot lib
  • This continues the work of @mileticveljko, the approach of using uv and a standalone linux binary is kept, however we should explore native_sim Zephyr use.
  • jMAVSim is added as a submodule, but can be moved to the west manifest later.

@filipembedded filipembedded left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just a few suggestions but I will not block

Comment thread libs/autopilot/include/autopilot/autopilot.h Outdated
Comment on lines +56 to +58
// Skeleton step: no estimator or controller yet, just a slow sine sweep on
// the first four outputs so prop motion is visible in the simulator without
// the vehicle taking off.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should consider doxygen function comments

Comment thread libs/autopilot/include/autopilot/autopilot.h
Comment thread sitl/app/src/hil_link.c Outdated
@DNedic DNedic force-pushed the feat/sitl-jmavsim-closed-loop branch 2 times, most recently from 6f3b74d to b6b4a97 Compare July 4, 2026 22:02
This wires up jMavSim and QGroundControl with the efc core code
with new plumbing and enables us to start development on estimation and
control.
@DNedic DNedic force-pushed the feat/sitl-jmavsim-closed-loop branch from b6b4a97 to 790499a Compare July 4, 2026 22:02

@nikolaptr nikolaptr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice job

Comment on lines -18 to -30
#include "mavlink_custom.h"
#ifndef HIL_LINK_H
#define HIL_LINK_H

/* Global status and buffer instances for each channel */
static mavlink_status_t chan_statuses[MAVLINK_COMM_NUM_BUFFERS];
static mavlink_message_t chan_buffers[MAVLINK_COMM_NUM_BUFFERS];
#include <stdbool.h>
#include <stdint.h>

mavlink_status_t *mavlink_get_channel_status(uint8_t chan) {
return &chan_statuses[chan];
}
#include <uv.h>

mavlink_message_t *mavlink_get_channel_buffer(uint8_t chan) {
return &chan_buffers[chan];
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you chose to git mv this file instead of deleting?


#define SENSOR_HEALTH_MASK \
(MAV_SYS_STATUS_SENSOR_3D_GYRO | MAV_SYS_STATUS_SENSOR_3D_ACCEL | \
MAV_SYS_STATUS_SENSOR_3D_MAG | MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE | \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: IIRC we don't record data from mag, so should we set it in health mask?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants