9月26日傅利叶智能宣布他们的通用人形机器人Fourier GR-1正式开放预售。Fourier GR-1是一款多功能人形机器人,拥有高达40个FSA关节,能够提供230牛米的峰值扭矩。其先进的全身控制算法赋予机器人44个自由度,展现出人类般的敏捷性和运动动力学。
据说这款机器人具有出色的直腿行走、高速行走、敏捷避障、斜坡上下和强大抗冲击能力,以及与人类无缝协作执行任务的能力。这些功能使得Fourier GR-1成为未来“具身智能”的理想平台,旨在将人工智能技术与实体机器人相结合,创造出可控、可感知、可互动和可移动的实体。
Fourier GR-1的可扩展性使其成为验证各种人工智能模型和算法的理想平台,为行业、康复、家庭和研究领域的应用提供令人兴奋的可能性。
github上有其开源的控制机器人项目RoCS : Robot Control System和rocs_server。
本文主要介绍如何在云服务器上部署rocs_server。官方有Readme.md,为什么还需要出一篇blog专门介绍在云服务器上部署rocs_server。这是因为其依赖的webots主要是客户端的,PC适用的。如果希望在云服务器上跑,是比较麻烦的。这里希望降低大家部署的难度。
机器人控制系统(RoCS)是一种先进的软件框架,专为精确管理和控制机器人系统而设计。它由两个主要组件组成:上位机和下位机。
下位机作为人类生理学中 cerebellum 的模拟,专门从事与运动控制相关的任务。它负责电机控制、运动算法、硬件驱动程序管理以及对于机器人的运动和稳定性至关重要的其他关键功能。
相反,上位机主要致力于无缝数据交换和执行特定的逻辑应用程序。它的作用包括接收和播放音频、实时传输视频流、向机器人的硬件组件发送精确指令以及持续监控机器人的运行状态。
机器人控制系统分为三个不同的层次,每个层次都发挥着独特而关键的作用:
Server API 基本上作为核心功能与外部世界之间的关键通道,确保高效和安全的数据交换。
总的来说,上位机的各个元素,包括 Control App、Client SDK 和 Server API,共同构成了机器人控制系统(RoCS)。这个全面的框架为开发人员和操作人员提供了必要工具,以高效和精确地监控和远。控制机器人系统,从而确保其无缝和最佳的运行。
按照官方文档的要求,仿真环境需要Ubuntu OS. >= Ubuntu 20。因此,购买的服务器,只要操作系统选择ubuntu 20.04及其以上即可。另外,需要特别注意的是,如果可以的话,尽量选择海外区域的服务器,否则依赖的文件下载特别慢。
使用ubuntu账号登陆云服务器,执行如下命令
sudo apt update
sudo apt-get update
sudo apt --fix-broken install
sudo apt install mesa-utils
sudo apt install xvfb
sudo apt-get install cmake
sudo apt-get install libqt5core5a
Webots是一款专业的移动机器人仿真软件,提供了快速的原型制作环境。它可以帮助用户创建具有物理特性的3D虚拟世界,并在其中添加简单的被动对象或主动对象,例如移动机器人。这些机器人可以具有不同的移动方案,如轮式、有腿或飞行机器人,并可以配备许多传感器和执行器设备。用户可以对每个机器人进行单独编程,以表现出所需的行为。此外,Webots还包含大量机器人模型和控制器程序示例,并支持多种与真实移动机器人的接口。
进入 https://www.cyberbotics.com/ ,下载Ubuntu Debian (.deb)版本的Webots。
使用ubuntu账号登陆云服务器,执行如下命令来下载Webots:
mkdir rocs_server
cd rocs_server
wget "https://github.com/cyberbotics/webots/releases/download/R2023b/webots_2023b_amd64.deb"
进入 https://github.com/FFTAI/rocs_server/releases/tag/v1.1 (官网给的地址到现在为止是错误的),下载bin.zip、lib.zip、Source code(zip) 。下载后解压,构建出如下的代码结构:
~/rocs_server/
├── bin/ # 解压自bin.zip
│ ├── joystick/
│ ├── sdk/
│ └── webots/
├── lib/ # 解压自lib.zip
│ ├── build_gr1.sh
│ ├── eigen/
│ ├── qpOASES/
│ ├── rbdl/
│ └── v1.1
├── install_RoCS.sh # 来自Source code
├── start_RoCS_server_sdk.sh # 来自Source code
├── README.md (this file) # 来自Source code
└── webots_2023b_amd64.deb
官网文档这里是执行完install_RoCS.sh后直接执行start_RoCS_server_sdk.sh,但至少我购买的腾讯云的服务器是不行的。需要:
下载rocs_client
pip install rocs_client
# If you encounter network delay, you can choose to install from Tsinghua source
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rocs_client
脚本控制机器人
import time
from rocs_client import Human
from rocs_client.robot.human import ArmAction, HandAction, Motor
human = Human(host='127.0.0.1') # Please replace host with the ip of your device
human.start() # Start remote control
time.sleep(10) # Control system built-in state machine. To ensure normal calibration and startup of the robot, it is recommended to execute subsequent instructions after start() instruction for 10s
human.stand() # Stand up,这里如果等待时间不够长,机器人很容易跌倒
human.walk(0, 0.1) # Move forward at a speed of 0.1
human.upper_body(arm=ArmAction.LEFT_ARM_WAVE) # Wave left hand
human.stop()
当执行了控制命令,如human.stand()等,在webots的日志中,会有如下图中Received message的内容。
本文的目标是在云服务器上搭建一个傅利叶机器人仿真环境。这个环境中,虽然没有可视化界面,但是是为一个纯云端的dev环境,便于测试控制系统。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。