主要負(fù)責(zé)設(shè)計(jì)并實(shí)現(xiàn)機(jī)器人上位機(jī)與瀏覽器、下位機(jī)、管理后臺(tái)及云端服務(wù)之間的所有網(wǎng)絡(luò)通信鏈路,確保其高可用、低延遲。
1、負(fù)責(zé)AI產(chǎn)品Ubuntu桌面端應(yīng)用程序的全流程開發(fā),包括需求分析、架構(gòu)設(shè)計(jì)、編碼、測(cè)試、部署和維護(hù)。
2、熟悉C++ 下的 TCP/UDP Socket 編程及 WebSocket 協(xié)議,能夠解決多路連接下的數(shù)據(jù)包排序、丟包重傳、流量控制等網(wǎng)絡(luò)疑難問題。要求熟練使用 gRPC 或 RESTful API 框架(如使用libcurl)與云端后臺(tái)進(jìn)行高效、安全的數(shù)據(jù)交互。配合web前端實(shí)現(xiàn)核心用戶交互界面,包括但不限于:主交互窗口、聊天對(duì)話界面、設(shè)置面板、語音/視覺交互反饋UI等。
3、熟悉ROS 2 框架,通過Topic與下位機(jī)實(shí)現(xiàn)指令交互。
4、熟練使用SQLite 數(shù)據(jù)庫在C++項(xiàng)目中的集成與開發(fā),具備豐富的數(shù)據(jù)庫設(shè)計(jì)、SQL語句編寫及深度性能優(yōu)化經(jīng)驗(yàn)。深刻理解數(shù)據(jù)庫事務(wù)、索引優(yōu)化等概念,能保證數(shù)據(jù)操作的原子性和一致性。
5、熟練使用WebRTC 或基于 WebSocket 的自定義協(xié)議,實(shí)現(xiàn)實(shí)時(shí)視頻流渲染。熟悉主流視頻采集框架,能夠進(jìn)行攝像頭驅(qū)動(dòng)參數(shù)調(diào)優(yōu)。
6、熟練使用 GStreamer 或 ALSA/PulseAudio 等庫進(jìn)行麥克風(fēng)音頻采集,處理麥克風(fēng)錄音、揚(yáng)聲器播放等功能。
7、熟練掌握多線程編程和進(jìn)程間通信技術(shù)。
8、深度集成Ubuntu桌面環(huán)境,實(shí)現(xiàn)應(yīng)用自啟動(dòng)、后臺(tái)服務(wù)管理等。
9、進(jìn)行客戶端性能優(yōu)化,降低內(nèi)存和CPU占用,保證應(yīng)用長(zhǎng)時(shí)間運(yùn)行的穩(wěn)定性和流暢性。
崗位要求:
1、碩士以上學(xué)歷,計(jì)算機(jī)相關(guān)專業(yè)。3年以上 Linux平臺(tái)桌面應(yīng)用程序開發(fā)經(jīng)驗(yàn),需精通Ubuntu系統(tǒng)及其桌面環(huán)境(GNOME/KDE),熟練掌握C/C++、Makefile、Shell,有良好的編碼規(guī)范;
2、熟悉軟件工程/項(xiàng)目開發(fā)流程基本的理念和要求,有良好的文檔設(shè)計(jì)規(guī)范;
3、熟悉常用的數(shù)據(jù)結(jié)構(gòu)與算法分析;
4、熟悉Linux應(yīng)用編程,多線程編程,網(wǎng)絡(luò)編程;
5、熟悉Linux內(nèi)核驅(qū)動(dòng)編程;
6、熟悉常用的網(wǎng)絡(luò)通信協(xié)議;
7、Linux內(nèi)核理解較深,對(duì)應(yīng)用進(jìn)程/內(nèi)核的掛死、內(nèi)存泄露、死鎖等問題有較豐富的方法和經(jīng)驗(yàn)者優(yōu)先。
8、多媒體處理經(jīng)驗(yàn): 有音頻處理、視頻播放、動(dòng)畫實(shí)現(xiàn)經(jīng)驗(yàn)者優(yōu)先。