Check the generated C code of analytic IK against MISRA C
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- embedded-iot, robotics
Hướng nghiên cứu
On the feat/symbolic-ik branch, read src/roboticstoolbox/robot/symbolic_ik.py and symbolic_ik_rr.py; use docs/notebooks/ik-symbolic.ipynb to generate the Puma and Jaco C files. Run a MISRA C checker, record violations by rule, and identify inexpensive generator fixes. Done when cheap fixes are made and remaining deviations are documented.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Analytic inverse kinematics can write its solution as C code that needs no library: robot.analytic_ik().generate("c", "my_ik"). This is on the branch feat/symbolic-ik and is not yet merged. We would like to know how close that C code is to MISRA C, since it is meant for embedded use, and to fix the generator where that is cheap.
What we know. I checked the generated C for the Puma 560, Stanford, UR5 and Jaco:
- no
malloc,calloc,reallocorfree - no input or output, and no
goto,setjmporlongjmp - no library other than
math.h, andstring.hfor the general 6R code - fixed-size working arrays, and the caller provides the array for the solutions
- no recursion and no variable-length arrays
- no warnings with
cc -std=c99 -pedantic -Wall -Wextra -Wvla
What we don't know. The code has not been checked against MISRA C:2012 or any other coding standard, so we say only that it avoids dynamic memory, not that it is compliant. The C++ output returns a std::vector, which allocates, and is out of scope here.
Help wanted:
- run a MISRA checker on the generated Puma and Jaco files (for example cppcheck with its MISRA addon, or a commercial tool)
- list the violations by rule, and say which look cheap to fix in the generator, for example floating-point equality,
NAN, multiple returns, or implicit conversions - fix those, and document the deviations that we keep
The generator is symbolic_ik.py and symbolic_ik_rr.py in src/roboticstoolbox/robot/ on that branch. The notebook docs/notebooks/ik-symbolic.ipynb shows how to generate the code.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- C++
- Star
- 3.5k
- Fork
- 639
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 113
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của petercorke/robotics-toolbox-python
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
petercorke/robotics-toolbox-python#709 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement help wanted
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
petercorke/robotics-toolbox-python#825 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feat(ets): numerical inverse kinematics for planar ETS2Có thể đã có người làm @qwist1233-cpu đã nhận 4 ngày trước. Đang mởenhancement help wanted
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 68/100
petercorke/robotics-toolbox-python#824 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Rigorous testing of operational-space methodsCó thể đã có người làm @kVinsom đã nhận 3 ngày trước. Đang mởtech-debt Tests needed
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
petercorke/robotics-toolbox-python#804 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
tech-debt
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 10/100
petercorke/robotics-toolbox-python#803 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của petercorke/robotics-toolbox-python
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
NVIDIA-Omniverse/usd-brep#23 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
qbittorrent/qBittorrent#25121 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
SVT-AV1: Unnecessary size paddingCó thể đã có người làm @pszemus đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
strukturag/libheif#1945 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
v9.6.0: CMake incorrectly enforces presence of libevdevCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
mltframework/shotcut#1943 ·
Maintainer thường phản hồi trong vòng 1 ngày