kauailabs / navxmxp

Robotics Navigation Sensors. NavX-MXP designed for the National Instruments RoboRIO & FIRST FRC Robotics. Navx-MIcro designed for Android-based FIRST FTC Robots
MIT License
105 stars 87 forks source link

Linux Simulation Support #94

Open modelmat opened 4 years ago

modelmat commented 4 years ago

I am able to build this library on my linux machine and produce linuxx86-64 maven zips. Would it be possible to publish equivalents of this to maven so that Linux Simulation is possible?

I'd be happy to test it to see if there are any other issues.

kauailabs commented 4 years ago

It's possible, will start looking into what's involved. Don't have a good way to test it, so will need your help w/that. Will update on this issue as things progress.

modelmat commented 4 years ago

Okay, thanks. I believe all that's needed is a Linux machine for building and testing.

kauailabs commented 4 years ago

It's a drag the cross-compiling isn't supported, and it requires setting up a different machine for this to manage the linux simulation build process.

Are you aware of anyone else who might be wanting linux simulation capabilities? We must trade off the effort to do this versus developing our next-generation sensors. You're the only one who has asked, so if this is a one-off effort I'm not sure it's worth it from our side.

auscompgeek commented 4 years ago

Would "skipInvalidPlatforms": false do the trick? (Disclaimer: I have little idea how GradleRIO works.)

modelmat commented 4 years ago

I shouldn't think so - this issue that there are no platform builds for desktop on Linux.

virtuald commented 4 years ago

@kauailabs RobotPy compiles navx for Linux/Windows/OSX all using github actions -- I've been pretty happy with it compared to other CI solutions I've used in the past. Since you're completely open source (unlike CTRE, for example), using github actions might make sense for you and you'd be able to support all the simulation platforms, unlike most vendors.

dawonn commented 3 years ago

Just came to say that I'm interested in this feature as well. (FRC2021 kickoff)

> Task :linkFrcUserProgramLinuxx86-64ReleaseExecutable
/usr/bin/ld: /home/dereck/frc/SimDemo/build/objs/frcUserProgram/linuxx86-64/release/frcUserProgramCpp/cpxox320jmytzosewdh0ktd87/Drivetrain.o: in function `Drivetrain::GetYaw()':
Drivetrain.cpp:(.text+0x10): undefined reference to `AHRS::GetYaw()'
/usr/bin/ld: /home/dereck/frc/SimDemo/build/objs/frcUserProgram/linuxx86-64/release/frcUserProgramCpp/9760xtgdau9jsoxxi90ozrpww/Robot.o: in function `Drivetrain::Drivetrain()':
Robot.cpp:(.text._ZN10DrivetrainC2Ev[_ZN10DrivetrainC5Ev]+0x17a): undefined reference to `AHRS::AHRS(frc::SPI::Port)'
/usr/bin/ld: Robot.cpp:(.text._ZN10DrivetrainC2Ev[_ZN10DrivetrainC5Ev]+0x4dc): undefined reference to `AHRS::ZeroYaw()'
collect2: error: ld returned 1 exit status
person4268 commented 2 years ago

I would also like to see this, especially considering that it doesn't seem like you're open sourcing your newer code anymore.