Peter Johnson
0a38400734
[datalog] Finish up a few missed moves from wpiutil split ( #7956 )
2025-05-04 11:21:29 -07:00
Thad House
08297430b5
[hal,wpilib] Add support for second I2C port ( #7878 )
2025-04-28 09:29:01 -06:00
Thad House
85a8fc9943
[hal] Add SystemCore to Java runtime type ( #7932 )
2025-04-28 09:10:32 -06:00
Peter Johnson
36811211be
Merge branch 'main' into 2027
2025-04-25 23:45:43 -07:00
Gold856
2f0990e9d2
[commands] Remove control commands and subsystems ( #7921 )
2025-04-25 22:06:26 -07:00
crueter
0695a4db89
[wpimath] Fix Debouncer type-changing behavior ( #7870 )
...
Closes #7867
Properly resets the baseline upon switching the debounce type, and adds
a test for such.
Signed-off-by: swurl <swurl@swurl.xyz >
2025-04-25 22:05:31 -07:00
me-it-is
3960045663
[wpimath] TrapezoidProfile: Fix null pointer when calling timeLeftUntil ( #7894 )
2025-04-25 21:58:05 -07:00
Tyler Veness
92010c175f
Fix more emscripten compiler errors ( #7895 )
...
I ran the CMake configure with:
```bash
emcmake cmake -B build-wasm -S . \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_SIMULATION_MODULES=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_GUI=OFF \
-DWITH_CSCORE=OFF
```
* Turned off simulation modules because they require shared libraries
* Turned off GUI because glfw requires libssh
* Turned off cscore because it requires OpenCV
I still get the following compiler errors:
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/linux.cpp:43:10: fatal error: 'sys/epoll.h' file not found
43 | #include <sys/epoll.h>
| ^~~~~~~~~~~~~
```
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/stream.cpp:991:56: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare]
991 | for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg)) {
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tav/.cache/emscripten/sysroot/include/sys/socket.h:358:44: note: expanded from macro 'CMSG_NXTHDR'
358 | __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/core.cpp:748:56: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare]
748 | for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg))
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tav/.cache/emscripten/sysroot/include/sys/socket.h:358:44: note: expanded from macro 'CMSG_NXTHDR'
358 | __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2025-04-25 21:56:26 -07:00
sciencewhiz
90ee11a9e0
[examples] Add DutyCycleEncoder Snippets ( #7930 )
2025-04-25 21:47:53 -07:00
David Vo
828199befb
[ci] Use Bazel fastbuild compilation mode on Windows ( #7925 )
2025-04-25 21:46:40 -07:00
David Vo
d04e15b957
[bazel] Avoid globally linking macOS SDK frameworks ( #7927 )
2025-04-25 10:37:42 -07:00
Joseph Eng
d98ad815b1
[wpimath] Adjust applyDeadband logic ( #7816 )
...
Reduces nesting by returning when the value is within the deadband.
Adjusts the algorithm to handle large values of maxMagnitude naturally (instead of needing a separate check).
Reformats the math comments.
2025-04-23 08:41:03 -06:00
Austin Schuh
1c35a3a5ff
[bazel] Make bazel work outside // ( #7918 )
...
The .bazelrc was doing a relative import, not an absolute one.
Signed-off-by: Austin Schuh <austin.linux@gmail.com >
2025-04-23 08:31:43 -06:00
Gold856
b248663386
[ci] Upgrade sccache action ( #7914 )
2025-04-22 15:27:55 -06:00
Gold856
9c60da1319
[ci] Use sccache for RobotPy build ( #7915 )
...
Also uses Artifactory to store the caches.
2025-04-22 15:27:20 -06:00
sciencewhiz
21d921184a
[examples] Add compilable code snippets ( #7909 )
...
This enables frc-docs to use RLIs for things that are currently in-line
code blocks, and ensures they compile, which is important with the 2027
breaking changes coming. They are kept separate from the examples to
ensure they don't polute the VSCode examples finder.
Adds the Encoder snippets used in the frc-docs Encoder article as the
first instance of this.
2025-04-22 15:26:26 -06:00
Yuhao
26e299115f
[cscore] Fix USB video mode handling on macOS ( #7904 )
...
* fix: UsbCameraImpl on macOS
* fix: add back logs
2025-04-21 09:27:42 -07:00
Wispy
07192285f6
[wpiunits] Add InchesPerSecondPerSecond ( #7905 )
2025-04-17 19:00:14 -07:00
Tyler Veness
ed94e3af3e
[ci] Upgrade sccache action ( #7911 )
2025-04-17 18:59:10 -07:00
Tyler Veness
3cd282d9b0
[ci] Upgrade to wpiformat 2025.33 ( #7902 )
2025-04-12 20:29:09 -07:00
Tyler Veness
49b4b064cf
[docs] Update readme to say Xcode is required ( #7892 )
...
The command line tools are insufficient.
2025-04-08 08:11:15 -06:00
Tyler Veness
bd78215b43
[glass] Fix compilation error with protobuf 30.1 ( #7890 )
...
```
/home/tav/frc/wpilib/allwpilib/glass/src/libnt/native/cpp/NetworkTables.cpp: In function ‘void UpdateProtobufValueSource(glass::NetworkTablesModel&, glass::NetworkTablesModel::ValueSource*, const google::protobuf::Message&, std::string_view, int64_t)’:
/home/tav/frc/wpilib/allwpilib/glass/src/libnt/native/cpp/NetworkTables.cpp:363:27: error: no match for ‘operator+’ (operand types are ‘const char [7]’ and ‘google::protobuf::internal::DescriptorStringView’ {aka ‘std::basic_string_view<char>’})
363 | out->typeStr = "proto:" + desc->full_name();
| ~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
| | |
| const char [7] google::protobuf::internal::DescriptorStringView {aka std::basic_string_view<char>}
```
2025-04-07 07:31:31 -06:00
Tyler Veness
c13b2f45c1
[wpimath] Update link to Ramsete controller derivation ( #7887 )
...
The derivation was moved from the Controls Engineering in FRC book to a
separate paper.
2025-03-30 16:25:08 -07:00
Jonah Snider
ea986427aa
[wpiutil] Add Kaitai Struct definition for data log format ( #7882 )
...
Adds a Kaitai Struct definition for the WPILOG format. This can be used to generate code to read/write data log files without needing to build out a parser/serializer by hand. Or just an additional resource for readers to help understand the WPILOG format.
2025-03-27 16:51:13 -06:00
jpokornyiii
dcd397e007
[xrp] Update XRP for new SparkFun RP2350 Board ( #7880 )
...
Enables servos 3 and 4 usage on the new XRP board.
2025-03-26 08:50:09 -06:00
Thad House
e2cc9e0059
[hal, wpilib] PWM Rewrite ( #7845 )
...
The HAL will only contain the output period and the raw microseconds. Higher level things such as SimDevice can handle everything else.
2025-03-20 19:23:22 -07:00
Thad House
2e21a41f87
[hal] Set number of SmartIO and CAN buses ( #7871 )
2025-03-19 19:49:54 -07:00
Thad House
52b353fe57
[hal, wpilib] Remove power rails that don't exist on systemcore ( #7861 )
2025-03-14 10:16:08 -07:00
Jack Cammarata
1efaaefd78
[wpimath] Fix UnscentedKalmanFilter and improve math docs ( #7850 )
...
Throughout the code the state sqrt covariance S and innovation covariance Sy are maintained as upper triangular cholesky factors of those covariance matrices. The original paper defines P=S*S', so S should be lower triangular. The functions in the paper reflect this. In the code implementation, the sqrt covariance matrices are upper triangular, but the algorithm expects them to be lower triangular.
This bug was likely missed because the incorrect version of the filter is able to converge for some systems where all the states are observed, and the test case is set up such that all states are observed.
To fix the bug, a couple things needed to be changed:
all instances of rankUpdate() needed to be changed to use the lower triangular cholesky factor,
In the unscented transform, when S is found via QR decomposition, we need to take the transpose because R is upper triangular,
P() and SetP() functions need to be modified to be P=S*S' instead of P=S'*S, and P.llt().matrixL() instead of P.llt().matrixU() respectively.
Each part of the algorithm has also had the comments changed to clarify exactly which equation from the paper it implements.
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
v2025.3.2
2025-03-14 10:05:15 -07:00
Tyler Veness
71b6e8ec58
[wpiutil] Avoid including execinfo.h for Emscripten target ( #7854 )
2025-03-06 23:15:22 -08:00
Tyler Veness
1a835fec01
[wpimath] Fix singularities in Ellipse2d::Nearest() ( #7851 )
...
The problem was ill-conditioned if either semiaxis had zero length.
2025-03-04 18:52:17 -08:00
Tyler Veness
d3cc185382
[upstream_utils] Upgrade to fmt 11.1.4 ( #7852 )
2025-03-04 18:50:56 -08:00
crueter
0ad595c33c
[wpimath] Add Debouncer type and time setters ( #7839 )
...
Signed-off-by: swurl <swurl@swurl.xyz >
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2025-03-03 17:21:38 -07:00
Tyler Veness
7cb29ce70b
[datalog] Fix sorting of related header ( #7832 )
2025-03-02 10:47:48 -08:00
Thad House
93bf6c70ba
[build] Remove sources from ceres-cpp ( #7844 )
2025-03-02 10:46:50 -08:00
arbessette
a7ae22d764
[docs] Update code of conduct ( #7833 )
2025-02-27 11:02:13 -08:00
Tyler Veness
822457d45b
[wpimath] Fix feedforward returning NaN when kᵥ = 0 ( #7790 )
2025-02-25 19:07:51 -08:00
Thad House
baa20fa239
[hal, wpilib] Rewrite CAN APIs ( #7798 )
2025-02-25 19:07:01 -08:00
Adrien Bourdeaux
75321f1d84
[wpimath] Add Translation2d/Translation3d slew rate limiter ( #7806 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
Co-authored-by: Joseph Eng <91924258+KangarooKoala@users.noreply.github.com >
2025-02-25 19:06:00 -08:00
Tyler Veness
cd6fee7fea
[sysid] Refactor feedback analysis ( #7827 )
2025-02-25 19:05:05 -08:00
Tyler Veness
517344fe80
[wpimath] Fix another infinite loop in ArmFeedforward ( #7823 )
2025-02-25 19:04:31 -08:00
Rain Heuer
b0e588fd49
[glass] Update Field2D default field to 2025 ( #7820 )
2025-02-25 19:04:16 -08:00
Tyler Veness
0f0e93722e
[ci] Upgrade to Clang 17 sanitizers ( #7819 )
2025-02-25 19:01:41 -08:00
Gold856
b39744b562
[wpimath] Remove PathWeaver support ( #7813 )
...
Also rename file load type in glass to "Field Image JSON".
2025-02-21 07:43:45 -07:00
Thad House
72bba2491a
[wpilib] Remove Nidec Brushless support ( #7811 )
2025-02-20 20:14:01 -08:00
sciencewhiz
f9307de04c
[docs] Document that /format is disabled ( #7810 )
...
Add instructions for manual workarounds
2025-02-20 20:13:09 -08:00
sciencewhiz
15dcdebe21
[docs] Update contributing so breaking changes go to 2027 ( #7809 )
2025-02-20 20:12:48 -08:00
Peter Johnson
98f933eca5
Merge branch 'main' into 2027
2025-02-20 00:26:23 -08:00
Tyler Veness
0c3c2c1fda
[sysid] Remove extra period from exception messages ( #7805 )
2025-02-19 21:08:39 -08:00
DeltaDizzy
da47f06d70
[datalog] Move all DataLog functionality to new datalog library ( #7641 )
...
Currently the major DataLog backend API (reading and writing) is split between wpiutil and glass. In the interest of allowing code that wants to use these APIs to not need to link to glass and declutter wpiutil, all of those APIs are moved to a new library named "datalog".
Signed-off-by: Jade Turner <spacey-sooty@proton.me >
Co-authored-by: Jade Turner <spacey-sooty@proton.me >
Co-authored-by: Gold856 <117957790+Gold856@users.noreply.github.com >
2025-02-19 21:08:17 -08:00