Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a06672f
First claude change
OleksiiChornyi Apr 21, 2026
e1fc419
Second claude change
OleksiiChornyi Apr 21, 2026
c373e73
Third claude change, add vision_pose_bridge
OleksiiChornyi Apr 21, 2026
7b29cee
4 claude change
OleksiiChornyi Apr 21, 2026
24f8325
5 claude change
OleksiiChornyi Apr 22, 2026
add3fc7
6 claude change
OleksiiChornyi Apr 22, 2026
4e1e3ff
6 claude change
OleksiiChornyi Apr 22, 2026
d489bc1
8 claude change
OleksiiChornyi Apr 23, 2026
f9ead4f
9 claude change: remove hardcodes, make thresholds adaptive
claude Apr 24, 2026
c12953c
10 claude change: single-source-of-truth, fix XY drift, IMU yaw fallback
claude Apr 24, 2026
2546629
11 claude change: add missing rpi.launch + config dir + IMU topic def…
claude Apr 25, 2026
7f4e845
12 claude change: drop yaw fallback, restore pose_graph in rpi.launch
claude Apr 25, 2026
bb22e73
13 claude change: confidence-based fade from fork mode to stock VINS-…
claude Apr 27, 2026
e11e46d
14 claude change: drop staged init strictness — checks always run
claude Apr 27, 2026
b973ce4
15 claude change: static IMU bootstrap + bridge anchor — fast init, n…
claude Apr 27, 2026
d42fc52
16 claude change: revert static bootstrap + bridge anchor — keep only…
claude Apr 28, 2026
7a6219f
17 claude change: drop fork reject-gates in visualInitialAlign — matc…
claude Apr 28, 2026
edea5a0
18 claude change: restore init reject-gates + cleanup pass
claude Apr 28, 2026
4d4b95f
19 claude change: add yaw_offset to vision_pose_bridge for camera-mou…
claude May 4, 2026
c5be837
20 claude change: yaw_offset_deg now rotates orientation only
claude May 4, 2026
b829e17
21 claude change: revert yaw_offset_deg feature
claude May 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions config/rpi/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# rpi calibration config

`rpi.yaml` here is **runtime-generated** — copied into the docker image at startup
by the host autostart script from `~/vins_docker/rpi.yaml`. The repo intentionally
does not ship a default `rpi.yaml` so a stale committed version can never override
a fresh calibration.

If you launch `vins_estimator rpi.launch` and see "Wrong path to settings", check
that the autostart script's `docker cp` step actually fired (look for "rpi.yaml
copied from host to container" in `${RUN_DIR}/main.log`).
12 changes: 10 additions & 2 deletions vins_estimator/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ find_package(catkin REQUIRED COMPONENTS
tf
cv_bridge
visualization_msgs
mavros_msgs
)

find_package(OpenCV REQUIRED)
Expand Down Expand Up @@ -52,6 +53,13 @@ add_executable(vins_estimator
)


target_link_libraries(vins_estimator ${catkin_LIBRARIES} ${OpenCV_LIBS} ${CERES_LIBRARIES})

target_link_libraries(vins_estimator ${catkin_LIBRARIES} ${OpenCV_LIBS} ${CERES_LIBRARIES})

# Hover-aware fork: vision_pose_bridge — forwards sanitized VINS odometry to
# ArduPilot (/mavros/vision_pose/pose) and mirrors it on /vins_bridge/pose.
# Lives inside vins_estimator so the install has one catkin package instead
# of two.
add_executable(vision_pose_bridge
src/vision_pose_bridge_node.cpp
)
target_link_libraries(vision_pose_bridge ${catkin_LIBRARIES})
49 changes: 49 additions & 0 deletions vins_estimator/launch/rpi.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<launch>
<!-- VINS-Mono launch for Raspberry Pi setup. Same composition as the
user's original local rpi.launch (feature_tracker + vins_estimator
+ pose_graph) plus the hover-aware vision_pose_bridge that
forwards sanitized odometry to /mavros/vision_pose/pose for
ArduPilot.

The rpi.yaml config is copied into config/rpi/ at startup by the
host autostart script (vins_docker/rpi.yaml → docker container).

vision_pose_bridge is launched here so the autostart script does
NOT need a separate `rosrun vision_pose_bridge` step. Bridge ROS
params are exposed as launch args:
bridge_rate, bridge_max_accel, bridge_max_speed,
bridge_odom_timeout
-->
<arg name="config_path" default="$(find feature_tracker)/../config/rpi/rpi.yaml" />
<arg name="vins_path" default="$(find feature_tracker)/../config/../" />

<arg name="bridge_rate" default="10.0" />
<arg name="bridge_max_accel" default="40.0" />
<arg name="bridge_max_speed" default="30.0" />
<arg name="bridge_odom_timeout" default="1.0" />

<node name="feature_tracker" pkg="feature_tracker" type="feature_tracker" output="log">
<param name="config_file" type="string" value="$(arg config_path)" />
<param name="vins_folder" type="string" value="$(arg vins_path)" />
</node>

<node name="vins_estimator" pkg="vins_estimator" type="vins_estimator" output="screen">
<param name="config_file" type="string" value="$(arg config_path)" />
<param name="vins_folder" type="string" value="$(arg vins_path)" />
</node>

<node name="pose_graph" pkg="pose_graph" type="pose_graph" output="screen">
<param name="config_file" type="string" value="$(arg config_path)" />
<param name="visualization_shift_x" type="int" value="0" />
<param name="visualization_shift_y" type="int" value="0" />
<param name="skip_cnt" type="int" value="0" />
<param name="skip_dis" type="double" value="0" />
</node>

<node name="vision_pose_bridge" pkg="vins_estimator" type="vision_pose_bridge" output="screen">
<param name="rate" type="double" value="$(arg bridge_rate)" />
<param name="max_accel" type="double" value="$(arg bridge_max_accel)" />
<param name="max_speed" type="double" value="$(arg bridge_max_speed)" />
<param name="odom_timeout" type="double" value="$(arg bridge_odom_timeout)" />
</node>
</launch>
2 changes: 2 additions & 0 deletions vins_estimator/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<run_depend>roscpp</run_depend>
<build_depend>mavros_msgs</build_depend>
<run_depend>mavros_msgs</run_depend>


<!-- The export tag contains other, unspecified, tags -->
Expand Down
Loading