Comments (7)
I agree and I'm trying my best to keep the API stable. But since it's still in development (there is not really a stable software to begin with), the API might still change. I'm sorry for the larger breaking changes, but they were necessary to simplify configuration and to support more hardware configurations.
Great work on Mowgli btw!
from openmower.
I don't have any experience with hardware release process lifecycle, however I believe hardware will have much more less frequent release process.
I believe we will have dozens of iterations on software for only one change on hardware. Additionally, there is an idea ROS stack will support more than OpenMower's mainboard. We already have @ClemensElflein 's board and @cloudn1ne 's Mowgli custom firmware for c500.
IMO we should have hardware & software with an independent release cycle. This will require us to keep some kind of "contract" alignement and think better about the breaking changes later. Sharing same major version is good idea.
from openmower.
- jakub and I are thinking about removing the link between the repos and only having the final stable software image here. If someone wants to develop, they should get the other repo for the sources.
from openmower.
DRC/ERC checks can be per-commit, CI style. And everything like linters, code-style, compilation attempts.
And artifacts can be published/generated per tag.
from openmower.
So basically as I understand it, we're doing the following:
- For the current master state, a GitHub action builds software and hardware artifacts. These should be used for development purposes / latest feature testing only and should not be considered stable.
- Since the software repo will be decoupled from this one, it will also build a Docker image for the latest master "unstable" version.
- For a stable release, we'll create a tag and the user knows the latest tag will be a stable version.
The question is: How do we get this to synchronize? I.e. each "stable" OpenMower release will probably consist of software and hardware artifacts.
Do we manually create software and hardware releases independently in the two repos and using the version number, the user can get compatible versions (i.e. all 1.x hardware versions will work with all 1.x software versions) or do we somehow synchronize the repos and pack everything together into one big (hardware + software) release bundle here?
When packing everything together and we're just doing a software release, this would probably mean that new release will copy the older versions of the hardware with a new version number on it (I don't like that, because the same exact PCB will be stamped with different versions).
So I'd go with different releases sharing a major version.
from openmower.
i think it would be nice to have a stable interface (e.g ros topics, services etc) - because then software like mowgli (which is really just a ROS enabler for existing hardware) can be linked with some middleware to OM. Middleware can be maintained separately.
At least 2 ppl have that already running with forks from openmowers comms node.
As i wanted to learn about ROS i went with robot_localisation, but even that is running since 2 days with full sensor fusion (RTK GPS, onboard IMU, ext IMU, odometry) and i can send the bot around, but i will invest some time next to make it work with OM - e.g. do some middleware.
besides that the v4.4 mainboards should also be investigated, looks like an 8051 on there that could be made to work like mowgli.
bottom line some stable api def would be nice.
from openmower.
cool im gonna check out your code and will try to understand it as much as possible and then setup some kind of middleware proxy services - maybe at some point we can make adjustments to make life easy for eventual other hardware.
i have some kind of capabilities announcing schema in mind atm. if one day OM hooks into that, other hardware should be easy to support as long as it supports some minimum reqs and adheres to the ROS REP stds
from openmower.
Related Issues (20)
- WT901 overflow issue HOT 2
- Is there a way to adjust blade height? HOT 1
- [0.10.x] WT901 pad is too narrow for manual soldering
- [0.10.x] PRi socket needs to be taller HOT 1
- Gardena Mower Compatibility HOT 4
- [0.10.x] Add "Boot RPi" button
- 3D gps holders holes are smaller than provided nuts HOT 3
- Charger PCB - add missing parts to the kit, rethink the assembly process HOT 1
- LowLevel - `init_imu` shall test that imu is accessible
- [0.10.x] put back RPI-DEV silkscreen
- Add dfplayer silkscreen hints HOT 1
- Deprecate speaker in favor of buzzer HOT 2
- Update IMU docs for new LSM6DSOTR
- Question about porting it to Rust?
- rain sensor always powered
- Lidl releasing 2x Mowers
- Discord link expired HOT 1
- Build availability? HOT 1
- Sharing of this project
- Work with bad WiFi coverage ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openmower.