PDA

View Full Version : کاربرد #C در رباتیک



prince0fpersia
چهارشنبه 12 بهمن 1390, 10:21 صبح
با سلام

میخواستم ببینم در برنامه نویسی ربات ها و همچنین کار با درگاه های I/O زبون سی شارپ چه امکاناتی داره و آیا استفاده از اون بهینه هست یا نه؟

من رشته ام سخت افزار و علاقه مند به فعالیت در زمینه رباتیک هستم

هنوز مردد هستم که برم سی++ رو به طور تخصصی دنبال کنم یا سی شارپ رو؟
با هر دو زبان آشنایی نسبی دارم

هدفم این هست که ربات های پیشرفته با قابلیت های پردازشی صوت و تصویر طراحی وبسازم و به احتمال بالا از خانواده x86 به عنوان پردازنده اصلی و یادر برخی موارد از ARM استفاده کنم

همچنین انگار جدیدا امکانات قوی برای پردازش تصویر با سی شارپ اضافه شده که اون رو از متلب قوی تر کرده توی این زمینه واسه همین تصمیم گرفتم کل پروژه هام رو با این زبان انجام بدم و توی همین زبان تخصص پیدا کنم

اما عنوان میشه که استفاده از سی شارپ یعنی استفاده از ماشین مجازی دات نت و استفاده از دات نت یعنی
سرعت کمتر و حجم حافظه بیشتر

و این یک ضعف برای ربات محسوب میشه (البته تو ربات های سایز بزرگ فکر نمیکنم این مورد، مشکلی ایجاد کنه)


به هر حال یک راهنمایی تخصصی از شمادوستان سی شارپ کار میخواستم و همچنین یک منبع آموزشی غنی از سی شارپ که برنامه نویسی پورت ها و درگاه ها رو هم حتما شامل بشه و فارسی هم باشه:خجالت:


خیلی ممنون میشم راهنمایی بفرمایید

prince0fpersia
چهارشنبه 12 بهمن 1390, 10:23 صبح
در مورد DLL ها و open CV هم سوال داشتم ... میشه اینارو هم توضیح بدین

ممنون

ya30ien2
چهارشنبه 12 بهمن 1390, 10:37 صبح
منم دوست دارم رباتیک یاد بگیرم اما طبق مقالاتی که دیدم متوجه شدم سی شارپ بدرد رباتیک نمیخوره برای اینکه یک زبان تحت ویندوز هستش و همه جا نوشته بود باید سی یاد بگیری که بتونی سخت افزار رو کدنویسی بکنی
امیدوارم کمکی کرده باشم

prince0fpersia
چهارشنبه 12 بهمن 1390, 12:43 عصر
خب مگه سی تحت ویندوز نیستش؟!!
یا سی ++ ؟

بعدشم چون قراره توی یک ربات هوشمند استفاده بشه فکر میکنم باید یک سیستم عاملی روش باشه تا بهتر بشه باهاش ارتباط برقرار کرد؟

epsi1on
چهارشنبه 12 بهمن 1390, 20:17 عصر
خب مگه سی تحت ویندوز نیستش؟!!
یا سی ++ ؟

بعدشم چون قراره توی یک ربات هوشمند استفاده بشه فکر میکنم باید یک سیستم عاملی روش باشه تا بهتر بشه باهاش ارتباط برقرار کرد؟
سلام دوست من.
همونطور که میدونید خود فریمورک دات نت سه به قولی نوع داره:

دات نت معمولی (http://en.wikipedia.org/wiki/.NET_Framework): برای رایانه های شخصی
دات نت فشرده (Compact) (http://en.wikipedia.org/wiki/.NET_Compact_Framework): برای PDA ها موبایل ها و چیزهای مثل اون.
دات نت میکرو (Micro) (http://en.wikipedia.org/wiki/.NET_Micro_Framework): برای Embedded system ها هست.

فکر میکنم اگر قراره که ربات در حین کار به PC یا چیزی در اون حد (چیزی که بشه دات نت معمولی رو روش نصب کرد) متصل نباشه، شما باید از DotNet Micro Framework استفاده کنید.
اون سه تایی که گفتم، به ترتیب از بالا به پایین قابلیتها کم میشه، مثلا توی MicroFramework تعداد کلاسهای پیش ساخته در دات نت (یا همون BCL) میشه حدود 70 تا، چیزی در نسخه معمولی دات نت بیش از چند صد تا یا چند هزار تاست. من تجربه ای در زمینه کاربرد #C در رباتیک ندارم، ولی بعید میدونم کتابخونه قابلی هم برای پردازش تصویر در MicroFramework وجود داشته باشه.

Ali N0ori
پنج شنبه 03 بهمن 1392, 21:22 عصر
سلام دوست عزیز من تا اونجایی که اطلاع دارم سی شارپ به درد رباتیک نمیخوره ولی اگه شما از میکروکنترلر اسفاده نمیخواید بکنبد من اطلاع ندارم ولی در میکرکنترلر ها سی شارپ هیچ کاربردی نداره
ببخشید اگه چیزی اشتباه گفتم چون طبق مقالاتی بود که خوندم

Vitallity
پنج شنبه 03 بهمن 1392, 22:27 عصر
شما در برنامه‌نویسی embeded بسیار منابع محدودی دارید و باید در حداکثر بهره‌وری ممکن برنامه بنویسی. C# به کد میانی تبدیل می‌شه و از لحاظ بازدهی بسیار ضعیف‌تر از زبان سیستمی مثل C یا C++ عمل می‌کنه حتی برای برامه نویسی توکار از C++ هم استفاده نمی‌کنند به خاطر overhead ناشی از ساختارهایی مثل کلاس یا Template یا ...

به نظرم در حال حاضر تمرکزتون رو روی تسلط به یه زبان برنامه‌نویسی سیستمی اختصاص بدید مثل C یا C++ چون بیشترین کنترل روی حافظه و کرنل رو خواهید داشت.

Abbas Naghdi
جمعه 04 بهمن 1392, 10:33 صبح
به نظر من زبان های شی گرا بهترین زبان ها برای هوش مصنوعی هست ... و البته C بهترین زبان برای باتیک ...
خب 2 فاکتور دارین ... شی گرا باشه و سیستمی ...
Java بهترین گزینه هست ...

هر چند C# شی گرا هست اما سیستمی نیست و وابسته هست ... و C هم شی گرا نیست و کد نویسی سخت و ... داره ...
جاوا از بنیاد برای همه چیز اخترا شده ... از اون اول پیدایشش برنامه های تلفن همراه و لینوکس و یونیکس و ویندوز و مک و .... و ربات و حتی اشیاعی مثل تلویزیون هم از جاوا استفاده میکنن ...
به علاوه ی ااینکه Syntax خیلی ساده و شبیه به C++ , C# داره که خیلی میتونه برای یاد گیری خوب باشه ... + کدی که تولید میکنه مخصوص همون ماشین هست و هزاران امکان دیگه.

Vitallity
جمعه 04 بهمن 1392, 22:37 عصر
به نظر من زبان های شی گرا بهترین زبان ها برای هوش مصنوعی هست ... و البته C بهترین زبان برای باتیک ...

چرا؟
C شی‌گراست ؟

خب 2 فاکتور دارین ... شی گرا باشه و سیستمی ...
C++ سیستمی نیست؟ شی گرا نیست؟

Java بهترین گزینه هست ... چرا؟ آیا جاوا روی virtual machine اجرا نمی‌شه و overhead حاصل از این تبدیل کد باعث افت بازدهی نمی‌شه؟


تا به حال درباره Lisp چیزی شنیدی؟ چه فرقی بین برنامه‌نویسی رباتیک با هوش مصنوعی هست؟ چند الگوی هوش مصنوعی می‌شناسید؟
صحبت کردن درباره درباره مسایلی که اطلاعاتمون کافی نیست باعث کمک کردن نمی‌شه... اگر کمکی ازمون ساخته نیست، فردی رو گمراه نکنیم.

Abbas Naghdi
شنبه 05 بهمن 1392, 07:47 صبح
چرا؟
C شی‌گراست ؟

C++ سیستمی نیست؟ شی گرا نیست؟
چرا؟ آیا جاوا روی virtual machine اجرا نمی‌شه و overhead حاصل از این تبدیل کد باعث افت بازدهی نمی‌شه؟

تا به حال درباره Lisp چیزی شنیدی؟ چه فرقی بین برنامه‌نویسی رباتیک با هوش مصنوعی هست؟ چند الگوی هوش مصنوعی می‌شناسید؟
صحبت کردن درباره درباره مسایلی که اطلاعاتمون کافی نیست باعث کمک کردن نمی‌شه... اگر کمکی ازمون ساخته نیست، فردی رو گمراه نکنیم.

C زبانی ساخت یافته هست نه شی گرا !
C++ شی گرا هست اما همچون Java نیست ... مگر C++ خالص ...

بعد از سال ها برنامه نویسی حالا شما اومدی بحث بر سر اطلاعات من میکنی :)
عزیز میشه شما به من بگیم Lisp چیه ؟
کامپایلش چیه ؟
البته شاید یکم سرچ کنید بفهمید اما در کل چنتا نرم افزار هوش مصنوعی یا چنتا روبات نوشتید که اینهمه ....
Lisp یا Prolog مربوط به هوش مصنوعی هستند ... خب که چی ؟
عزیز من .. من شنیدم و دیدم که با همین C# که کاملا انحصار میکروسافت هست ... برنامه های هوشمند و البته برای روبات ساختند ...
الان دانشگاه های بزرگ کشورمون برای روبات از C++ و C# استفاده میکنن !

من فکر میکنم شما فقط نامی از جاوا شنیدید و توضضیحاتی مختصر ... بهتره جاوا رو بهتر بشناسی ..
در مورد بازدهی :) ... اگر شما نرم افزاری با جاوا برای روبات نوشتید و افت بازدهی داشتید من پاسخ گو هستم ... :) ... انگار قراره برای Nasa کد بزنی :)

Mousavmousab
شنبه 05 بهمن 1392, 12:55 عصر
صلوات بفرستین ختم به خیر بشه !!!
الله ...

Vitallity
شنبه 05 بهمن 1392, 13:46 عصر
سن: 18

موفق باشی : )

Abbas Naghdi
شنبه 05 بهمن 1392, 14:01 عصر
Vitallity عزیز دارید جی رو ثابت میکنید !
من بحثی با شما ندارم ... اصلا شما استیون جابز :) 99 ساله
ول کن ...

Vitallity
شنبه 05 بهمن 1392, 14:03 عصر
Vitallity عزیز دارید جی رو ثابت میکنید !


توی کامنت قبلی عرض کرم چی رو می‌خوام ثابت کنم:

" صحبت کردن درباره درباره مسایلی که اطلاعاتمون کافی نیست باعث کمک کردن نمی‌شه... اگر کمکی ازمون ساخته نیست، فردی رو گمراه نکنیم. "

asdasd123123
شنبه 05 بهمن 1392, 16:05 عصر
-----------------------------------------------------------------------------------
c++ (http://barnamenevis.org/showthread.php?75596-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1)

majid_i68
شنبه 05 بهمن 1392, 16:34 عصر
توی دانشگاه با سی پلاس برای روباتیک استفاده میکردم... توی مسابقات هم شرکت کردن .. ظاهرا مقامی هم گرفتن ... اما من توی تیمشون نبودم...:لبخند: اگر بودم اول میشدن..

fmehrvarzi
شنبه 05 بهمن 1392, 21:32 عصر
بیشتر از سی پلاس پلاس استفاده میکنند
سی شارپ هم پشتیبانی میکند روباتیک پیشرفته:
http://i.msdn.microsoft.com/dynimg/IC162993.jpg
http://msdn.microsoft.com/en-us/library/bb483043.aspx
http://msdn.microsoft.com/en-us/library/dd771980.aspx

این هم یک فروشگاه روبات هست، که قیمت روباتهاش هم خیلی زیاده تمام محصولاتش زبان سی پلاس پلاس و وی بی و سی شارپ را پشتیبانی میکنه اصلا زبان های مایکروسافت ویندوز را پشتیبانی میکند!
http://www.drrobot.com/