024年5月,美國計算機社區聯盟(CCC)發布第五版《美國機器人路線圖:機器人讓明天更美好》(以下簡稱“路線圖”),分析了機器人在人工智能(AI)具身、勞動力、數字經濟、人口結構、可持續發展、全球化等六方面的大趨勢,總結了在制造業回流、即時經濟(The “now” economy)、養活世界、老齡化社會、住房和基礎設施、可持續發展、拓展疆域(Expanding Frontiers)等七方面的社會驅動力,提出了勞動力、精益物流(lean-logistics)、易用性、安全和工具鏈等方面的挑戰,最終映射到智能具身、操縱、感知、控制、規劃、邊緣人工智能、機器學習和人機交互等八方面的研究機會,突出了智能具身、控制、規劃、邊緣人工智能、人機交互等內容的更新或調整。
自2009年首次發布以來,美國機器人路線圖每四年更新一次。最初的路線圖導出了美國“國家機器人計劃”(National Robotics Initiative),如今美國國家機器人計劃已經結束,而且機器人國會核心小組在過去的四年中沒有任何活動(最后一次活動是在2019年5月),對美國而言亟需一個跨行業、學術界和政府的整體愿景。2024年路線圖主題聚焦人工智能的應用、如何解決勞動力短缺問題、以及更加明確地強調可持續發展。本文主要梳理了路線圖中提出的八方面研究機會和六條建議,供參考。
(一)機器人是智能的物理具身
1. 軟體機器人
軟體機器人這一新興領域旨在設計、制造和控制機器人系統,這些機器人系統采用軟材料和結構,利用形態學計算優勢來簡化它們與世界的交互。然而,與剛性機器人相比,軟體機器人需要更復雜的材料及制造、建模和控制方法。為了制造符合人類需求的軟體機器人需要采用新的方法,這恰巧為人們提供使用新設計和制造方法的機會,例如生成式設計、多材料增材制造等。
2. 驅動和動力
為機器人提供高效、穩定、低成本的驅動和動力系統是一項持續的研究挑戰。動物的肌肉和新陳代謝經常被作為黃金標準,而工程系統尚未達到這一標準。目前,機器人的驅動系統有電磁驅動系統、液壓驅動系統、氣動驅動系統,它們適用于不同類型的機器人,同時有各自的局限性。例如,電磁驅動系統適用于傳統剛性機器人,功重比有待提高;液壓驅動系統適用于對功率要求高的系統,但在移動機器人系統中的應用受到限制;氣動驅動系統適用于軟體機器人,但控制精度、動力源便攜性等方面面臨研究挑戰。智能材料,包括電活性聚合物和液壓放大自愈靜電(Hasel)軟體驅動器,在提高功重比方面較具前景,但需要配備專用電源。驅動技術和動力存儲/輸送系統方面的新突破對機器人技術實現預期性能指標將起到重要作用。
3. 傳感
傳感對于所有機器人來說都是一個關鍵挑戰,尤其是對于軟體機器人來說。柔性和軟體傳感器在使人們更豐富地了解軟體機器人如何移動及與世界互動更具潛力。這一目標的實現需要在傳感器與軟體機器人集成方面進行更多的努力。
(二)操縱
目前的機器人操縱器成本高且通用性差,需要一系列多年的研究努力來解決。首要任務是開發先進的抓取技術,可以利用仿生學和軟體機器人的概念來制造多功能抓取機械裝置。先進抓取技術的進步涉及深入理解自然界的復雜性、探索新材料、以及以功能為導向的非傳統夾持器設計。其次,開發先進的觸覺感知技術,為機器人操縱器配備可以提供實時反饋的觸覺傳感器,從而顯著提高抓取的精度和可靠性。還有,開發基于學習的控制策略,通過應用機器學習技術使機器人能夠自適應地控制操縱任務并通過試錯學習新技能,從而提高機器人系統的多功能性和效率。
在人機協作領域,研究開發協作機器人系統使機器人與人類能夠在共享工作空間中和平共處。這將涉及自然語言處理、手勢識別等技術,以及人機交互安全機制研究。在復雜環境中的靈巧操縱領域,增強機器人系統操縱能力以適應雜亂和動態的環境。這將涉及開發用于路徑規劃和避障的先進算法、探索多模態傳感技術集成(例如,視覺、觸覺、壓力等)。
值得關注的是,規劃和控制的基礎算法仍然是機器人操縱技術研究的重點。為實現機器人操縱任務的高度自主性,需要制定技術路線。這項工作的重點是開發算法以實現自主決策和任務規劃,以及制定動態抓取和操縱策略以適應不可預見的挑戰。
(三)感知
感知技術是將機器人與物理世界連接起來的關鍵方式,涉及從傳感器獲取并解釋數據。目前,計算機視覺通常被視為主要的機器人感知方式,觸覺技術在過去十年取得了更多的進步。為推進機器人技術發展,感知技術方面需要取得六個關鍵方向的進展:(1)復雜的高維推理;(2)網絡安全和計算機視覺;(3)主動感知;(4)開放世界性能(Open-world Performance),即在新環境和任務中實現泛化;(5)視覺與其他系統集成;(6)系統結構,突破可靠性限制。
(四)控制
機器人控制技術主要涉及方面:(1)安全控制,主要包括將安全控制器設計擴展到高度非線性機器人系統、高維系統、多機器人系統、人機交互循環系統中,并確保此類控制器的實時性能;(2)仿生控制,生物學為機器人和復雜系統控制器設計提供了巨大的靈感,未來研發工作需要探索控制器設計的新生物學機制,為機器人研究界構建大規模數據集,提取信息以進行嚴格的控制器設計,考慮機器人傳感器、執行器和通信系統的局限性等;(3)高維和不連續系統的控制,機器人系統的自由度高且部署在復雜的環境中,未來需要探索混合系統的控制器綜合方法,以實現機器人在實際應用中的成功部署;(4)機器人機械裝置、控制和學習的協同開發,未來機器人需要材料選擇、機械設計、控制器設計、學習、感知和測試之間的協同,以便機器人的整體性能是最優的并為真實世界的任務做好準備。
(五)規劃
隨著機器人從實驗室走進現實世界,它們將持續需要規劃和控制算法以更好地應對非結構化、不可預測和更復雜的環境。具體包括:(1)不確定情況下的規劃,需要優先考慮概率方法和不依賴于準確的高保真模型的方法;(2)人機交互情況下的安全規劃,需要開發更復雜的規劃器,能夠在保證安全的情況下建模和處理人類的不確定性;(3)操縱和全身規劃,需要新的算法以及與新算法匹配的硬件。
(六)邊緣人工智能
人工智能在推動機器人技術發展方面發揮了重要作用,但對算力要求很高。邊緣人工智能能夠將計算從云端轉移到設備端,需要克服八方面挑戰:(1)能源效率和自主性,(2)實時處理和減少延遲,(3)硬件-軟件協同設計,(4)魯棒感知和態勢感知,(5)適應性和持續學習,(6)隱私保護和安全,(7)邊緣-云協作和資源管理,(8)操作性和標準化。
(七)機器學習
深度學習已有效用于改善機器視覺,深度強化學習也已用于機器人各級別的控制。近期,基礎模型的爆炸式增長推動了AI的進步,并引發了關于基礎模型在未來機器人中的作用的激烈討論。由于基礎模型依賴海量的數據,AI界一部分人認為,一旦擁有了與真實機器人體驗類似的真正多模態數據所訓練的模型,機器人控制就會從這些模型中產生。由于機器人需要的數據很難理解,AI界一部分人認為模擬可能是應對這一挑戰的有效方法。此外,機器人系統在使用機器學習尤其是深度學習時需要可解釋,取得人們的信任。
(八)人機交互
人機交互主要涉及三類機器人:(1)協作機器人(人機物理交互),這類機器人是一種在共享工作空間中與人類一起工作的機器人,以提高工作效率,需要具有安全、靈活、緊湊、易于使用等特點;(2)社交陪伴機器人(社交人機交互),這類機器人需要與人類進行溝通交流,發揮人類同伴的作用,目前仍面臨多模式通信、對用戶的理解等方面的挑戰;(3)“中介”機器人,與協作機器人和社交陪伴機器人不同,這類機器人充當“媒介”角色,允許用戶遠程操作或使用機器人設備擴展人類的能力,例如遠程手術、遠程操作機器人在太空中展開探索活動等,面臨為用戶提供能夠精確感知機器人周圍環境的界面、觸覺反饋等方面的挑戰。
該路線圖為美國機器人技術發展提出了六條建議:(1)機器人技術將改變社會,并可能在未來十年內變得像如今的計算技術一樣無處不在。美國政府應該將機器人技術再次確定為國家優先事項。(2)機器人技術的研發、創新和應用需要聯邦機構間的協作,同時需要產業界、學術界和政府三方的整體愿景。(3)美國應該重振國會機器人核心小組的活力,以確保各級活動有序開展。(4)統一各機構的資助項目,使研究人員、開發人員和企業家更易獲得這些資助機會。(5)考慮建立機制以提升美國產業的跨地區和國家競爭力。(6)提高對勞動力培訓的關注度,以解決勞動力短缺問題并確保適應新技術。
免責聲明:本文轉自戰略科技前沿。文章內容系原作者個人觀點,本公眾號編譯/轉載僅為分享、傳達不同觀點,如有任何異議,歡迎聯系我們!
轉自丨戰略科技前沿
研究所簡介
國際技術經濟研究所(IITE)成立于1985年11月,是隸屬于國務院發展研究中心的非營利性研究機構,主要職能是研究我國經濟、科技社會發展中的重大政策性、戰略性、前瞻性問題,跟蹤和分析世界科技、經濟發展態勢,為中央和有關部委提供決策咨詢服務。“全球技術地圖”為國際技術經濟研究所官方微信賬號,致力于向公眾傳遞前沿技術資訊和科技創新洞見。
地址:北京市海淀區小南莊20號樓A座
電話:010-82635522
微信:iite_er
然 C 語言是眾多初學者進入編程世界的首選語言,但真正通過C 語言入行的人并不多,甚至不到“望 C 止步”的一半!
中途而退的人都說難!難!難!難上加難!看了很多專業書籍、記錄重點知識點,最后卻無法真正運用到實際項目,時不時bug,斷連......
而 C 程序員則是相反的說法,認為“這是一門勤能補拙的語言”,他們在開始學習的時候,除了看書,還要花時間去同步練習,就和學數學一樣:先看理論,再去練習實踐,從而掌握。
C 語言不單是編程世界的敲門磚,還是其他語言的敲門磚,當你學好C語言之后,接下來無論想進軍Java、C++、C#、還是Python、Go、PHP、JavaScript 等語言,都會輕松不少。
— 01 —
C語言為什么學不好
經常聽到大家嘶喊:眼睛學會了,手卻跟不上操作!這是為什么?
盡管C 語言如此火爆,學習的人也很多,縱使沒有“望 C 止步”,但能運用自如的卻遠遠不到一半!
● 無論是C++、Java、Object-C等其他很多語言,在語法特點上都很C語言類似,學習C語言更能為我們打好程序設計的堅實基礎。
● 作為一門歷史悠久的程序設計語言,C語言有著其他語言無可比擬的廣泛的應用領域,小到“Hello World!”,大到操作系統,C語言的工作場景處處可見。學好C語言將大有可為。
● C語言強調的面向過程的問題分析方法,更是培養我們思維靈活性和嚴謹性的最佳途徑。
C語言靈活多變的語法更是一柄雙刃劍,一方面它能夠充分發揮程序員的個性、提高工作效率,也提高程序運行效率。但是另一方面,C語言也能帶來一些問題,其中最大的問題就是,學習了卻無法應用到實際項目…………因為你只是單純地學習了理論知識,沒有去通過練習來真正掌握這些知識的核心!
常見的“坑”
哪一個編譯器更好?
GCC 還是Visual C++?
哪一個IDE更好?
Visual Studio還是 Vim 或者 emacs?
這個表達式的結果到底是多少?
可能是這個?
有問題沒搞懂,該怎么辦?
找網絡幫么?
對于初學者來說,最重要是有一本讓你能夠系統全面地從基礎學起還能提供每個階段相對應的練習題及答案的一本書,而這些“坑”在初入門時并不那么重要。
學習C語言的順序
(1)選一本好的入門書,系統地學習。
(2)動手去上機操作和練習,對答案,任何理論知識都需要實操驗證。
(3)正確認識和理解C語言,把握學習的重點,避免分散精力。
從最基礎的語法(變量、字符串、條件、循環、數組、函數、結構體等),再到高階的算法(指針、內存管理等C語言中至關重要的兩大標準),循序漸進。
確實,大家在學習 C 語言的過程中,往往忽視了最重要的一點,看書很重要,但配套的訓練同樣不容忽視,兩者結合起來同時進行的才能快速提升編程水平,最終達成學習的目標——在實際項目中運用。
而學習 C 語言恰恰就是一個堅持看、敲、寫的過程,缺一不可:
1)多看書學習
不能僅僅記住那些名詞,那些規則,程序設計語言的重點在于應用。在應用中去總結和體會,用自己的語言去定義那些名詞術語,用自己的語言去概括那些語法的規則和意義。對,就是不要“你覺的”,而是要通過學習領會“你覺的”,最終到達“自己覺得”!
2)操作和練習
C語言是一門工具,我們要在不斷的操作和練習中熟悉工具的性能、使用方法和使用技巧,僅僅停留在紙上談兵的程度,是遠遠不夠的。
3)拓展知識面
C語言雖然是一門高級程序設計語言,但是它還是涉及很多計算機系統底層方面的知識,最典型的例如指針,多了解一些計算機原理方面的知識,拓展自己的知識面。
4)多做練習
不能僅僅停留在編碼上,程序設計的重點在于設計。做習題時拿起紙和筆,整理自己的思路,記錄自己分析問題和解決問題的想法。過段時間再來看看自己曾經的想法,評價一下,也就是說,學習C語言,要反復多次地進入學習。
5)反復學習
學習C語言,要反復多次地進入學習。每過段時間再來整理自己的所學和曾經的想法,
第一次,重點在于了解基本語法和知識點
第二次,在練習中體會基本語法和知識點
第三次,系統觀的練習和設計思想的鍛煉
逐漸在學習中培養自己的邏輯思維能力。學習自頂而下的分析方法,學習嚴謹而全面的流程控制。學習其他優秀工程師的思維技巧,將會是我們受益終生。
例如:字符串與格式化輸入/輸出,我們應該這樣去進行練習、實操,從而鞏固我們從書本上學到的理論知識,只有這樣才能掌握它的核心!
1)假設一個程序的開頭是這樣的。
#define BOOK "War and Peace"
int main(void){
float coast=12.99;
float percent=80.0;
請構造一個使用 BOOK、coast 和 percent 的 printf()語句,打印以下內容。
This copy of "War and Peace" sells for .99.
That is 80% of list.
分析與解答:
程序要求打印帶雙引號的字符串,因此在 printf()函數中需要加入轉義序列\"。此外,80% 需要使用浮點型數據 percent,打印時需要添加修飾符,百分號的打印需要使用轉換說明符號%% 。具體代碼如下。
*/
#include
#define BOOK "War and Peace"
int main(void){
float coast=12.99;
}
float percent=80.0;
printf("This copy of \"%s\" sells for $%.2f.\n",BOOK,coast);
printf("That is %.0f%% of list.\n",percent);
return 0;
2)打印下列各項內容要分別使用什么轉換說明符?
a.一個字段寬度與位數相同的十進制整數;
b.一個形如 8A、字段寬度為 4 的十六進制整數;
c.一個形如 232.346、字段寬度為 10 的浮點數;
d.一個形如 2.33e+002、字段寬度為 12 的浮點數;
e.一個字段寬度為 30、左對齊的字符串。
分析與解答:
a.整型數據使用轉換說明符%d,字段寬度與位數相同不需要使用特殊修飾符,因此轉 換說明符為%d;
b.十六進制數據的轉換說明符(輸出大寫字符應當使用大寫 X)是%X,因為寬度是 4, 使用 4 作為修飾符,因此轉換說明符為%4X;
c.浮點型數據轉換說明符是%f,10 位,小數點后有 3 位修飾符,應表示為 10.3,因此 轉換說明符為%10.3f;
d.顯示指數使用轉換說明符%e,字段寬度為 12,小數點后有 2 位的修飾符,應表示為 12.2,因此轉換說明符為%12.2e;
e.字符串使用轉換說明符%s,長度為 30,左對齊,使用?30 修飾符,因此轉換說明符 為%?30s;
3)打印下面的內容要分別使用什么轉換說明符?
a.字段寬度為 15 的 unsigned long 類型整數;
b.一個形如 0x8a、字段寬度為 4 的十六進制整數;
c.一個形如 2.33E+02、字段寬度為 12、左對齊的浮點數;
d.一個形如+232.346、字段寬度為 10 的浮點數;
e.一個字段寬度為 8 的字符串的前 8 個字符。
分析與解答:
a.unsigned 類型整數轉換說明符是%u,對于 long 類型字段寬度,應添加 l 修飾符,字 段寬度為 15,就需要添加 15 修飾符,因此轉換說明符為%15lu。
b.十六進制整型數據的轉換說明符是%x(輸出小寫字母使用小寫 x),輸出 0X 使用# 修飾符;長度為 4 就使用 4 作為修飾符,因此轉換說明符為%#4x;
c.輸出科學計數法使用轉換說明符%E(輸出大寫字母使用大寫 E),左對齊使用'?'號修 飾符,字符寬度為 12,顯示兩位小數使用 12.2 修飾符,因此轉換說明符為%?12.2E;
d.浮點數轉換說明符是%f,顯示正號使用'+'修飾符,字符寬度是 10,有 3 位小數,使 用 10.3 修飾符,因此轉換說明符為%+10.3f;
e.字符串轉換說明符是%s,字段寬度為 8,顯示前 8 個字符使用 8.8 修飾符,因此轉換 說明符為%8.8s。
4)打印下面各項內容要分別使用什么樣的轉換說明符?
a.一個字段寬度為 6、最少有 4 位數字的十進制數;
b.一個在參數列表中給定字段寬度的八進制整數;c.一個字段寬度為 2 的字符;
d.一個形如+3.13、字段寬度等于數字中字符數的浮點數;
e.一個字段寬度為 7、左對齊的字符串中的前 5 個字符。
分析與解答:
a.十進制整數使用轉換說明符%d,字段寬度為 6,最少有 4 位數字,使用 6.4 修飾符, 因此轉換說明符為%6.4d;
b.八進制數據使用轉換說明符%o,字段寬度由參數列表指定,使用修飾符' * ',因此轉 換說明符為%*o;
c.字符數據使用轉換說明符%c,字段寬度為 2,使用修飾符 2,因此轉換說明符為%2c;
d.浮點型數據使用轉換說明符%f,顯示正號,字段寬度為數字中字符數,即不指定字 段寬度,小數點后顯示兩位,使用修飾符+0.2,因此轉換說明符為%+0.2f;
e.字符串使用轉換說明符%s,字段寬度為 7,顯示前 5 個字符,左對齊,使用修飾符?7.5,因此轉換說明符為%?7.5s。
▲ 摘選自《C Primer Plus(第6版)中文版習題解答》第四章課后訓練題
— 02 —
C語言指路燈
C語言從早期的非正式的K&R標準,發展到1990 ISO/ANSI標準,進而發展到2011 ISO/EC標準。本書也隨著逐漸成熟,發展到現在的第6版。在所有這些版本中,我的目標足致力于編寫一本指導性強、 條理清晰而且有用的C語言教程。
——《C Primer Plus》系列書籍作者 Stephen Prata
很多人會問:C語言這么好,我也想學好它,但是我該怎么開始第一步呢?
萬事開頭難,跟著教材開始學就好了。
C語言書這么多,我該買哪一本呢?
其實,從C語言面世以來,相關書籍數不勝數,但唯獨有一本圖書,跟隨C語言一起成長,暢銷38年,迭代6版,每個版本豆瓣評分9分以上,累計銷售量已超過100萬冊,被C語言程序員奉為圭臬!
它就是《C Primer Plus》系列圖書,2016年人民郵電出版社發布《C Primer Plus 6》中文版,在豆瓣評分上獲得9.3分的高分好評,在之前版本的基礎之上進行了全新升級。從1984年至今,作者初心不變——致力于編寫一本指導性強、條理清晰而且有用的C語言教程。
C Primer Plus 第6版 中文版
內容介紹:
幾乎所有C 語言程序員都會將《C Primer Plus》作為自己的入門書籍,對于 C 語言初學者來說,它就像引路人一樣意義非凡。
所以,書中大量完整的、可運行的程序及詳細的注釋有助于理解代碼和概念。
與市面上其他的教程書籍相比,《C Primer Plus(第 6 版)中文版》最大的特點就是讀起來不會有枯澀煩躁之感。
因為斯蒂芬·普拉塔十分在意讀者在閱讀過程中的閱讀體驗,所以書中新出現的每一個術語,符號,都給出貼近讀者目前知識儲備的和理解能力的解釋。
而且,這本書在編排上也十分與眾不同,在每個知識點后面都會附帶一個“程序清單”,也就是程序實例,這是理解編程知識點的絕好方法,供初學者自己手動實操,提升編程水平。
C Primer Plus 第6版 中文版習題解答
內容介紹:
在千呼萬喚中,《C Primer Plus(第6版)中文版習題解答》面世了,為了每個程序員都能將所學的知識落實到實際項目,它是作者根據《C Primer Plus(第 6 版)中文版》而撰寫的,由北京師范大學名師詳細剖析所有題目,全面提升 C 編程能力的優選編程練習冊,也是這個《C Primer Plus》系列經典暢銷圖書不可缺少的學習伴侶。
《C Primer Plus(第6版)中文版習題解答》針對于提高 C 語言的編程技能、理解計算機原理的枯澀知識,和《C Primer Plus》系列一樣通俗易懂,作者旨在讓讀者讀得舒服、讀得通透。
在每章內容做了簡單總結和梳理的基礎上,根據學習的不同階段,對所有復習題和編程練習做了詳細的解答,至始至終都有詳盡完整的答案代碼示例。
◆ 在介紹C語言細節的同時,講解編程概念;
◆ 每次盡量用短小簡單的示例演示一兩個概念,學以致用是最有效的學習方式之一;
◆ 當概念用文字較難解釋時,則用圖表演示以幫助讀者理解;
◆ C語言的主要特性總結在方框中,便于查找和復習;
◆ 每章末尾設有復習題和編程練習,幫助讀者測試和加深對C語言的理解。
適宜人群:作為《C Primer Plus(第6版)中文版》的配套參考書,本書特別適合需要系統學習C語言的初學者閱讀,也適合打算鞏固C語言知識或者希望進一步提高編程技術的程序員閱讀。
— 03 —
結語
我們要時刻記?。篊 語言是一門十分嚴謹的語言,知識體系龐大,需要掌握的知識非常多,單單看書是無法真正掌握這門語言的核心,只有多寫多練習,才能透徹地了解 C 語言、懂得 C 語言,將它熟練運用。
深入貫徹落實黨的二十大精神,蘇州工業園區唯亭街道新鎮社區以開展結對共建為載體,堅持圍繞中心、服務大局、統籌兼顧、整體推進的原則,通過開展共建活動,將黨建互促互進的政治優勢轉化為雙方發展、服務群眾的實際行動,努力構建“資源共享、優勢互補、互相促進、共同提高”的黨建工作新格局。
9月6日下午,黨建聯盟捐贈儀式在新鎮社區三樓會議室如期舉行。蘇州蘇明裝飾股份有限公司、上海建工一建集團有限公司、蘇州柯利達裝飾股份有限公司的代表出席捐贈活動。捐贈儀式上,新鎮社區黨總支書記吳國清向三家公司代表頒發捐贈證書。
據悉,本次捐贈的三件設備價值兩萬元。三家黨建聯盟單位表示所捐贈的設備不僅是豐富居民群眾精神文化生活的一個載體,而且對解決好“一老一小”問題具有重要的意義。
他們紛紛表示,接下來將繼續大力支持新鎮社區工作,積極和社區紅色管家志愿者共同助力社區治理和發展,多渠道開展更多樣化的活動,鼓勵帶動其他兄弟企業加入。
未來,新鎮社區將繼續加強基層黨建工作,堅持以服務居民群眾為核心,繼續攜手各聯盟單位進一步發揮戰略協同效應,優勢互補,以更靈活、創新的姿態讓居民群眾有更多的獲得感和幸福感。(周艷萍)