Cozmo人工智能機器人SDK使用筆記(X)-總結- |人工智能基礎(中小學版)實踐平臺|
|人工智能基礎(中小學版)實踐平臺|?Cozmo人工智能機器人SDK使用筆記(X)-總結-
Cozmo的SDK包括了使用其開發的大部分功能示例,全部內容參考如下鏈接:
----https://blog.csdn.net/zhangrelay/article/category/7739166----
更多精彩的開發內容參考forums.anki.com,例如:Vector機器人的Scratch 3.0擴展;Vector和Leap Motion。
總結:
1. SDK能做什么?
Cozmo SDK平臺的主要優勢是軟硬件的多功能和可擴展性。
2. 豐富的工具和實用程序
SDK提供從有限狀態機到三維可視化等全部內容。
3. 項目研究
Cozmo獨特的硬件、軟件和角色組合使其成為人機交互、行為和計算機視覺等領域研究項目的理想選擇。
4. 物聯網
使用Cozmo控制家居中Hue燈光,提供有關FitBit數據的反饋或在Nest攝像頭檢測到移動時做出提醒。
5. 原型測試
通過Cozmo這個緊湊、高效、多功能的測試平臺,快速輕松地迭代新算法并完善項目設計。
6. 寓教于樂(游戲)
從經典的棋盤游戲到創新的Twich體驗,SDK充分激活無限想象力,構建豐富多彩的游戲項目。
7. 表演展示
數百種無以倫比的世界級動態表情(呆、萌、酷、炫)并支持全手動硬件控制,使Cozmo成為目前最受歡迎的機器人演員。
Anki Cozmo和Vector全部SDK內容均為開源,可以在github和anki官網找到豐富的資源,進行系統的學習。
之后博客中內容會以ROS機器人操作系統1.0和2.0介紹使用為主(高校版本);
外掛ROS插件可以使Cozmo或Vector支持中文等更多功能。
SDK中還有四個文件夾沒有介紹,分別是face_images、lib、multi_robot和tools。
face_images中放了一些可以在Cozmo面部顯示的圖片png格式;
lib中使用的Flask是一個Python Web框架,?remote_control_cozmo.py和其他腳本可以使用這些實用程序功能與Web瀏覽器進行交互;
multi_robot是多機器人案例;
tools中給出了4個立方體的項目代碼。
multi robot independent:
import asyncio
import sys
import cozmo
from cozmo.util import degrees
async def turn_left(sdk_conn):
robot = await sdk_conn.wait_for_robot()
cozmo.logger.info("Turning robot 1")
await robot.turn_in_place(degrees(90)).wait_for_completed()
async def turn_right(sdk_conn):
robot = await sdk_conn.wait_for_robot()
cozmo.logger.info("Turning robot 2")
await robot.turn_in_place(degrees(-90)).wait_for_completed()
if __name__ == '__main__':
cozmo.setup_basic_logging()
loop = asyncio.get_event_loop()
# Connect to both robots
try:
conn1 = cozmo.connect_on_loop(loop)
conn2 = cozmo.connect_on_loop(loop)
except cozmo.ConnectionError as e:
sys.exit("A connection error occurred: %s" % e)
# Run two independent coroutines concurrently, one on each connection
task1 = asyncio.ensure_future(turn_left(conn1), loop=loop)
task2 = asyncio.ensure_future(turn_right(conn2), loop=loop)
multi robot unified:
import asyncio
import sys
import cozmo
from cozmo.util import degrees
async def run(sdk_conn1, sdk_conn2):
robot1 = await sdk_conn1.wait_for_robot()
robot2 = await sdk_conn2.wait_for_robot()
# First have one turn left and one turn right, one after the other
cozmo.logger.info("Turning robot 1")
await robot1.turn_in_place(degrees(90)).wait_for_completed()
cozmo.logger.info("Turning robot 2")
await robot2.turn_in_place(degrees(-90)).wait_for_completed()
# Then have them both turn back to the original position at the same time
cozmo.logger.info("Turning both robots")
turn1 = robot1.turn_in_place(degrees(-90))
turn2 = robot2.turn_in_place(degrees(90))
await turn1.wait_for_completed()
await turn2.wait_for_completed()
if __name__ == '__main__':
cozmo.setup_basic_logging()
loop = asyncio.get_event_loop()
# Connect to both robots
# NOTE: to connect to a specific device with a specific serial number,
# create a connector (eg. `cozmo.IOSConnector(serial='abc')) and pass it
# explicitly to `connect` or `connect_on_loop`
try:
conn1 = cozmo.connect_on_loop(loop)
conn2 = cozmo.connect_on_loop(loop)
except cozmo.ConnectionError as e:
sys.exit("A connection error occurred: %s" % e)
# Run a coroutine controlling both connections
loop.run_until_complete(run(conn1, conn2))
Fin
API/SDK 機器人
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。