دانش برنامه نویسی، کاربرد فوق العادهای در توسعه و درک تحلیلهای بیومکانیکی دارد (اعم از بحث بیومکانیک حرکت، بیومکانیک اسکلتی عضلانی، بیومکانیک بالینی و ارتوپدی و…). از آنجا که نگارنده به شخصه در برنامه نویسی نرم افزار متلب تخصص و تجربه بیشتری را کسب کرده است، لذا این مقاله بیشتر بر محوریت برنامه نویسی متلب است، منتهی قابل تعمیم به دیگر زبانهای برنامه نویسی نیز است چون زبان برنامه نویسی یک موضوع، و درک خود برنامه نویسی و الگوریتم نویسی موضوعی دیگر و مهمتر است.
به طور معمول، دانشجویان مهندسی پزشکی و بیومکانیک از پیچیدگیها و دشواریهای برنامه نویسی دوری میکنند و صرفاً به دنبال نرم افزارهای از پیش آماده شده و ویژوال (گرافیکی) و راهحلهای سادهتر هستنند، که این در کل امری صحیح نیست و گاهی نیاز است تا حتماً از برنامه نویسی کمک گرفت پس تا انتهای این مقاله با ما همراه باشید.
تا کنون احتمالاً در تمرینهای مربوط به دروس تخصصی دانشگاهی نیز به بحث برنامه نویسی برای حل مسئله برخورد کردهاید. به عنوان نمونه در تمرینهای ساده مربوط به تخمین نیروی عضله و مفصل از یک فعالیت، ابتدا تحلیل دستی انجام دادهاید، ولی با پیچیدهتر شدن و اضافه شدن متغیرها و پارامترهای مسئله (مانند افزایش تعداد نیروهای عضلانی یا پارامترهای حرکتی) باید از برنامه نویسی کمک میگرفتید. در حقیقت برای بیومکانیستها و زمینههای تخصصی مشابه، راه آشتی با برنامه نویسی نیز همین است که از حل یک مسئله ساده (مثل تخمین نیروی عضله دلتوئید و مفصل شانه در دست افقی نگهداشته شده) به صورت تحلیل دستی شروع کنید و همان مسئله را با برنامه نویسی (مثل متلب) تحلیل کنید تا کمکم به الگوریتمها، متغیرها و دستورالعملهای برنامه نویسی نیز عادت کنید. سپس همان مسئله را با شرایط پیچیدهتر (افزایش تعداد عضلات، افزایش پارامترهای حرکتی مثل زوایای مختلف مفصل و…) حل کنید. به عنوان مثال همین مسئله شانه را در زوایای مختلف ابداکشن شانه به صورت متغیر با زاویه (استفاده از حلقه) در متلب حل کنید و نمودارش را رسم کنید. فقط دقت کنید که در اینجا ما با ترکیب دو دانش، دو تخصص و دو مهارت با هم سر و کار داریم که هر دو را باید آموزش ببینیم، دانش و تخصص فنی (بیومکانیک و…)، و دانش و تخصص برنامه نویسی (الگوریتم نویسی، حلقه، شرط و …).
حال میخواهیم به برخی از کاربردهای مختلف برنامه نویسی متلب (MatLab) در بیومکانیک بپردازیم، که البته برای دانشجویان بیومکانیک مهندسی پزشکی، بیومکانیک ورزشی، حرکات اصلاحی، آسیب شناسی، ارتوپدی، توانبخشی، فیزیولوژی ورزشی و زمینههای مشابه دیگر کاربردهای مختلفی میتواند داشته باشد.
شکل 1
یکی از متداولترین مباحث کاربردی که با برنامه نویسی نیز بررسی شده است مبحث آنالیز حرکت است به ویژه آنالیز و محاسبات دو دسته پارامترهای سینماتیکی (زاویه، سرعت، شتاب، موقعیت و… در اعضا و مفاصل) و سینتیکی (نیرو، گشتاور، توان، انرژی و… در اعضا و مفاصل) که روابط مربوطه را با کدنویسی میتوان بررسی کرد و محاسبات مربوطه را انجام داد. در انتها با رسم نتایج و نمودارهای مربوط به سینماتیک و سینتیک حرکت، به الگوی پارامترهای مختلف در حرکت دست یافت و احتمال طبیعی بودن یا وجود ناهنجاری حرکتی را تشخیص داد.
شکل 2
مبحث بسیار مهم دیگر که با برنامه نویسی قابل بررسی است و اغلب در ادامه آنالیز حرکت مورد تحلیل قرار میگیرد، بحث مدلسازی اسکلتی و اسکلتیعضلانی بدن در حرکات مختلف است؛ اینکه چه تعدادی از اعضا و مفاصل و عضلات در مدل لحاظ شوند و هر مفصل چند درجه آزادی با چه دامنه حرکتی داشته باشد، اینکه خود عضله به چه صورت مدل شود (رشته نیرو، فنر، فنر-دمپر، مدل هیل، مدل هاکسلی و…)، اینکه مدلسازی با چه دقتی از هندسه استخوان و مفصل صورت بگیرد (آناتومیکی یا عملکردی باشد) و نمایش مدل و حرکت مدل چگونه باشد، همگی با برنامه نویسی قابل انجام و بررسی است که نمونههای مختلف آن در برنامه نویسی متلب در شکل ۳ دیده میشود. لازم به ذکر است که از مهمترین اهداف مدلسازی اسکلتیعضلانی، تخمین فعالیت عضله و نیرو و فشار مفصل است که آیا در معرض ریسک آسیب است یا خیر.
شکل 3
یک مبحث بسیار مهم و کاربردی دیگر که در واقع ترکیبی از دانش بیومکانیک بالینی و پردازش تصاویر پزشکی و بالینی است، بحث آنالیز پاسچر و شاخصهای بیومکانیک بالینی و ارتوپدی در تصاویر اعضا و مفاصل مختلف بدن است. به عنوان نمونه به کمک پردازش تصویر اعضای مارکرگذاری شده، میتوان با جداسازی موقعیت مارکرها از خود تصویر، زوایای انحراف اعضا و مفاصل را محاسبه و احتمال ناهنجاری یا دفرمیتی (بدشکلی) مفصل را بررسی کرد یا از روی تصاویر پزشکی (رادیوگرافی، CT، MRI و…)، شاخصهای بالینی و ارتوپدی را محاسبه کرد تا تشخیص و روند درمان، توانبخشی یا جراحی را مهندسی کنیم یا جهت خود فعالیت عضلات و مدلسازی اسکلتی عضلانی، از روی پردازش تصویر MRI سطح مقطع و بازوی گشتاور عضلات را تخمین بزنیم.
شکل 4
حتی با استفاده از برنامه نویسی مربوط به مدلسازی هندسه سه بعدی استخوانها و مفاصل از روی تصاویر پزشکی دوبعدی قطعه بندی شده، میتوان آن را برای تحلیلهای اجزاء محدود (Finite Element)، توزیع و نمایش پارامترهای مکانیکی در روابط اجزاء محدود (تنش، کرنش، انرژی و…) ا با برنامه نویسی بررسی کرد.
شکل 5
همچنین در بحث مراحل مختلف پردازش سیگنال عضله (الکترومایوگرافی یا EMG)، که بسیار در بحث تخمین فعالیت عضله و مدلسازی اسکلتی عضلانی نیز کاربرد دارد، میتوان از برنامه نویسی کمک گرفت و عملیات حذف نویز و یکسوسازی و فیلتر کردن و دریافت اطلاعات مفید ولتاژ سیگنال عضله را انجام داد. این امر بسیار بسیار در بحث تشخیص و توانبخشی ناهنجاریهای عضلانی نیز کاربرد دارد.
حال به مهمترین نکته موجود در این مقاله میرسیم. ممکن است برای بسیاری از دانشجویان و متخصصین بیومکانیک و زمینههای مشابه، این سؤال پیش بیاید که با وجود نرم افزارهای آمادهای که خودشان آنالیز حرکت، تحلیل اسکلتی عضلانی، مدلسازی، پردازش تصویر و تحلیل اجزاء محدود را انجام میدهند و کار را برای ما سادهتر میکنند، چرا باید برنامه نویسی را آموزش ببینیم و از آن در موارد مذکور کمک بگیریم؟
پاسخ تا حدی مشخص است. نرمافزارهای آماده موجود در زمینههای مختلفی که ذکر شد، لزوماً همه امکانات و محاسبات لازم را ندارند و هر کدام نقصها و محدودیتهایی دارند که لازم است با کمک برنامه نویسی، افزونههایی را در کنارشان ایجاد کرد تا اهداف مشخص ما را از محاسبات بیومکانیکی، تامین کنند. به عنوان مثال ممکن است یک نرم افزار تحلیل اسکلتی عضلانی، عضله را به صورت رشته نیرویی فرض کرده باشد و تأثیر سیگنال عضله (الکترومایوگرافی) را لحاظ نکرده باشد، لذا لازم است که یا با برنامه نویسی در خود نرم افزار یا با کمک برنامه نویسی نرم افزار جانبی (مثل متلب) امکان پردازش سیگنال عضله و اعمال آن به مدل اسکلتی عضلانی را فراهم کنیم.
شکل 6
در مجموع میتوان با کمک برنامه نویسی متلب، نرم افزارها و اپلیکیشنهای مجزا و مستقل بیومکانیکی ایجاد کرد. از جمله اپلیکیشن آنالیز و مدلسازی حرکت و آنالیز توزیع فشار کف پا که در شکل زیر نشان داده شده است. در واقع این امر مربوط به ایجاد یک نرم افزار یا اپلیکیشنی مستقل در حوزه بیومکانیک است که بدون نیاز به استفاده از نرم افزار برنامه نویسی مانند متلب، قابل اجرا و استفاده برای کاربران حوزه سلامت و درمان است.
شکل7
بنابراین فراموش نکنید که با برنامه نویسی، کارهای خارق العادهای در حوزه بیومکانیک، مهندسی پزشکی، ورزش، توانبخشی، آسیب شناسی، …. و در کل حوزه سلامت و درمان میتوان انجام داد و کمکهای شایانی به بهبود و ارتقاء سلامت و درمان جامعه کرد. با آرزوی سلامتی و موفقیت روافزون برای همه.
دیدگاه ها