从医学到脑机接口,他用实践证明“意念”控制机器人的可能
科幻电影中的赛博格(Cyborg)技术不断刷新着我们对“半机械人”的认知,从上世纪七八十年代的《攻壳机动队》、《银翼杀手》到后来的《阿凡达》、《明日边缘》等,各种超越思维的想象,让人机联动成为了可能。而在现代,面对人工智能的来势汹汹,很多人开始担心未来世界会不会变成由机器人主宰。
“钢铁侠”马斯克就是其中之一,他曾表示:“未来人类需要与机器合体成赛博格,才能避免被人工智能淘汰”。为此,这位成功的企业家召集了数位在神经科学、工程学等领域各有所长的科学家,成立了 Neuralink,试图通过脑机接口技术来避免人工智能的威胁。
与马斯克创办的其它公司一样,Neuralink 拥有疯狂基因——希望在短期内完成看似不可能的目标。当然,其员工也有着相同的想法。
比如,Neuralink 有一位联合创始人 Max Hodak。人如其名,他的想法也是非常 “疯狂马克斯”。在他的个人网页上写着:我相信我们这一代的基本目标之一是理解意识的物理学,并学会用它来设计。我热切地期待着一个比特多于原子的世界。
根据 LinkedIn 我们了解到,Max 本科四年在杜克大学 Miguel Nicolelis 教授的实验室担任助理研究员,参与了恒河猴的脑机接口的研究。Miguel Nicolelis 教授是谁?用一句话来说,他是脑机接口的先驱人物,其研究对计算机科学、人工智能和生物医学工程领域的基础和应用研究带来了深远的影响。
梦起世界杯,“圆梦”世界杯
1970 年 6 月 21 日,这一天,意大利和巴西正在争夺世界杯最后的冠军。9 岁的 Miguel Nicolelis 坐在电视机前看着这一切。比赛结束,巴西夺冠,众人欢呼。Miguel 只是继续安静地坐着,脑海里却在不断重播进最后一球时候的情景:球场上,八名运动员几乎没有说话,也没有眼神交流,但他们就好像是一个共同体的延伸,可以感受到彼此的想法,并展开行动。这对当时的 Miguel 来说有些深奥,但和许多其他孩子一样,他也希望有朝一日自己能成为世界杯赛场上的战士。
2014 年,Miguel 以“另类”的方式实现了自己的愿望:他为一位瘫痪少年做了一套“机械战甲”,让少年用大脑控制机械外肢,成功为巴西世界杯完成了开球。虽然不是真的踢世界杯,但作为神经科学家,他成为了一位为全球数以亿计行动困难的人带来希望的英雄。
Miguel 发明的仿生外骨骼是由患者大脑控制的,受到了 1970 年世界杯巴西夺冠队的启发,即该外骨骼是人身体的延伸。换句话说,对瘫痪的人来说,他的大脑本质上会将外骨骼视为身体上的一条腿。这并不是什么“神论”。多年以来,Miguel Nicolelis 在神经可塑性领域的研究表明,大脑能够重塑自己,以适应外部环境的变化,并且融入新的元素。
从医学到脑机接口
在他杜克大学的实验室里,桌上放满了仿生外骨骼的草图,此外,还有一张一个男人抱着猴子的照片。
“这是 Jon Kaas。” Miguel 说,“他是过去50年间,美国最伟大的科学家之一”。也正是 Jon 在神经可塑性上的研究,为 Miguel 取得的成就奠定了基础。“神经可塑性是我们一切工作的基础。Kaas 是我们的英雄。”
Kaas 进行可塑性早期研究的时候,Miguel 正就读于圣保罗大学的医学专业。虽然从中学开始就打算当一名神经外科医生,但在即将完成目标的时候,他的兴趣点转向了是否可以创建大脑的 3D 地图。在导师的建议下,Miguel 前往美国哈内曼大学,师从 John Chapin 进行博士后工作,专注于可同时读取多个神经元的传感器的研究。
在接下来的五年里,他们成功开发了一款头发丝粗细的传感器,将其植入大脑后,可同时阅读数十个神经元。1994 年,Miguel 成为了杜克大学助理教授,自此开始了一系列的动物实验,并不断取得成绩。
让“意念”控制机械臂成为可能
1999年,Miguel 创造出了第一台脑机接口装置(brain-machine interface,BMI),这是一种可以让人类大脑控制机器运动的设备。BMI 可以从神经元中读取信号,并将其转换为机器指令,这个过程就好比人类大脑将信号先发送到脊髓,然后再到肌肉的方式。
2000 年,其团队成功证明猫头鹰可以同时控制放置于不同地方的两个机械臂;一只成年的恒河猴可以通过脑机接口去控制视频游戏操纵杆;另一只猴子还可以通过自己的“意念”控制电脑光标的移动。
2001 年,这项技术被列入《麻省理工科技评论》“全球十大突破性技术”(10 Breakthrough Technologies)。
2004 年,脑机接口首次在人体中进行测试,参与的人包括 11 名将进行神脑刺激手术的帕金森患者,Miguel 的团队则获得了在手术过程中向其脑内植入传感器的许可。通过让患者玩视频游戏,然后链接脑机接口,帕金森患者们学会了用自己的大脑控制游戏。
2008 年,是 Miguel 团队最著名的一个实验。他们在一只名为 Idoya 的成年雌性恒河猴大脑中植入了一次可以读取 250-300 个神经元信号的电极。当 Idoya 在杜克大学实验室的跑步机上跑步时,放置于日本的人性机器人开始接收信号,不久之后也开始进行运动。Idoya 可以在跑步机的屏幕上观看机器人运动。令人惊讶的是,机器人从 Idoya 大脑接收命令的速度要比 Idoya 的腿还快,同时,当 Idoya 的双腿停止运动,但大脑还在思考走路的时候,机器人也还一直保持行走的状态。
2011 年,Miguel 出版书籍 Beyond Boundaries,并推出了“重拾行走计划”(Walk Again Project)。
2013 年,“重拾行走计划”获得了巴西政府的资金支持。同年,Miguel 和巴西科学家首次实现了两只老鼠之间的脑机接口交流。
2014 年,Miguel 成功让一位高位截瘫的男孩用自己的大脑控制机械外骨骼为巴西世界杯完成了开球。
2016 年,“重拾行走计划”的研究成果首次发表在《自然》旗下的《科学报告上》。
所有这些看起来不可思议的举动,都成为了现实。那么,现在脑机接口技术究竟发展到了什么阶段?未来又将如何造福全世界数以亿计的行动困难的人?脑机接口技术先驱 Miguel Nicolelis 教授以线上方式,在 EmTech China 2020 的现场,为我们带来答案。
道翰天琼CiGril机器人API
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
- 在平台注册账号
- 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
- 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。
开始接入
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 | 类型 | 默认值 | 描述 |
userid | String | 无 | 平台注册账号 |
appid | String | 无 | 平台创建的应用id |
key | String | 无 | 平台应用生成的秘钥 |
msg | String | "" | 用户端消息内容 |
接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552
注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
/**
* Get请求,获得返回数据
* @param urlStr
* @return
*/
private static String opUrl(String urlStr)
{
URL url = null;
HttpURLConnection conn = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 10000);
conn.setConnectTimeout(5 * 10000);
conn.setRequestMethod("POST");
if (conn.getResponseCode() == 200)
{
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
int len = -1;
byte[] buf = new byte[128];
while ((len = is.read(buf)) != -1)
{
baos.write(buf, 0, len);
}
baos.flush();
String result = baos.toString();
return result;
} else
{
throw new Exception("服务器连接错误!");
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
if (is != null)
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (baos != null)
baos.close();
} catch (IOException e)
{
e.printStackTrace();
}
conn.disconnect();
}
return "";
}
public static void main(String args []){
//msg参数就是传输过去的对话内容。
System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
}
}