gazebosim / gazebosim/sdformat
Add DOM classes for *_state elements
- Dominant language
- C++
- Stars
- 216
- Forks
- 125
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 14
Description
## Desired behavior
The syntax for specifying model, link, and joint states was updated in the SDFormat specification in https://github.com/gazebosim/sdformat/pull/1461 (inspired by the prototype in https://github.com/gazebosim/gz-sim/pull/2359). The next step is creating DOM classes for the following SDFormat elements to simplify their use in the C++ and python API:
* [ ] Create `JointAxisState` class for `//joint_state/axis_state` and `//joint_state/axis2_state`
* [ ] Create `JointState` class for `//joint_state`
* [ ] Create `LinkState` class for `//link_state`
* [ ] Create `ModelState` class for `//model_state`
## Alternatives considered
## Implementation suggestion
Follow the patterns used by our existing DOM classes.
* `sdf::JointAxis`
* [JointAxis.hh](https://github.com/gazebosim/sdformat/blob/sdf15/include/sdf/JointAxis.hh)
* [JointAxis.cc](https://github.com/gazebosim/sdformat/blob/sdf15/src/JointAxis.cc)
* [pyJointAxis.hh](https://github.com/gazebosim/sdformat/blob/sdf15/python/src/sdf/pyJointAxis.hh)
* [pyJointAxis.cc](https://github.com/gazebosim/sdformat/blob/sdf15/python/src/sdf/pyJointAxis.cc)
## Additional context
Contributor guide
Research direction
Start by reviewing the existing DOM class pattern in JointAxis.hh, JointAxis.cc, pyJointAxis.hh, and pyJointAxis.cc. Use those files as the reference while investigating the four requested state elements. Done means JointAxisState, JointState, LinkState, and ModelState are available through both the C++ and Python APIs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- api, robotics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100