前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Ubuntu 22.04上部署傅利叶机器人仿真环境

在Ubuntu 22.04上部署傅利叶机器人仿真环境

原创
作者头像
buzzfrog
修改2023-12-04 20:02:45
5430
修改2023-12-04 20:02:45
举报
文章被收录于专栏:云上修行

背景

在上一篇《在云服务器上部署傅利叶机器人仿真环境》博客中,我详述了如何在腾讯云云服务器CVM中部署傅利叶机器人GR-1仿真环境。本文则回归传统方式,详述在Ubuntu 22.04上部署傅利叶机器人GR-1仿真环境。

本文提供两种部署环境:

  1. 在本地Macbook Pro中,通过UTM搭建虚拟的Ubuntu 22.04环境;
  2. 使用云服务商提供的云桌面搭建虚拟的Ubuntu 22.04环境。

另外,在安装的方式上,也不再使用前述文档中的v1.1,而是通过github中master分支直接来安装。参考文档为:https://github.com/FFTAI/rocs_server/blob/main/readme_zh_cn.md

对于环境购买和环境安装不表。

快速装机

在非root账户下,

代码语言:shell
复制
cd ~
sudo apt update
sudo apt upgrade

wget -qO- https://raw.githubusercontent.com/FFTAI/rocs_server/main/install.sh | bash

这个过程时间比较长,请耐心等待。

在仿真环境运行 (Webots)

I. 下载Webots

执行脚本快速安装

代码语言:shell
复制
cd ~
wget https://github.com/cyberbotics/webots/releases/download/R2023b/webots_2023b_amd64.deb

sudo dpkg -i webots_2023b_amd64.deb

II. 启动SDK控制程序

代码语言:shell
复制
cd ~/.rocs_server # 文档中错误的写成了cd ~/.rocs_server/sbin
bash start_up_rocs_svr.sh

这里有对于云桌面个大坑,对话式LLM完全无法帮助我,就是直接按照上述命令执行,会得到:

代码语言:txt
复制
~/.rocs_server# ./rocs_svr 
./rocs_svr: error while loading shared libraries: libz.so.1: failed to map segment from shared object

需要安装如下方式解决:

代码语言:txt
复制
mkdir /usr/local/tmpdir
sudo chmod 777 /usr/local/tmpdir
export TMP=/usr/local/tmpdir

原因详见:https://admin-ahead.com/portal/knowledgebase/4/error-while-loading-shared-libraries-libzso1-failed-to-map-segment-from-shared-object-Operation-not-permitted.html

III. 加载Webots模型

  1. 打开Webots 点击左下角的9宫格按钮,点击Webots这个瓢虫🐞图标。 图图
    点击打开世界文件,进入到Home目录下,使用Ctrl+H显示隐藏文件。 图图
  2. file -> open world -> ~/.rocs_server/bin/webots/worlds/SonnyV4.wbt

控制机器人

代码语言:txt
复制
sudo apt install python3-pip
pip3 install rocs_client

脚本控制机器人

代码语言:txt
复制
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()

命令集锦

目前傅利叶智能通用机器人GR-1支持的Arm和Hand命令有:

代码语言:txt
复制
@dataclass
class ArmAction(Enum):
    # 归零
    RESET = "RESET"
    # 左挥手
    LEFT_ARM_WAVE = "LEFT_ARM_WAVE"
    # 甩胳膊
    ARMS_SWING = "ARMS_SWING"
    # 打招呼
    HELLO = "HELLO"


@dataclass
class HandAction(Enum):
    # 半握手
    HALF_HANDSHAKE = "HALF_HANDSHAKE"
    # 竖大拇指
    THUMB_UP = "THUMB_UP"
    # 手张开
    OPEN = "OPEN"
    # 手微屈
    SLIGHTLY_BENT = "SLIGHTLY_BENT"
    # 抓握
    GRASP = "GRASP"
    # 抖动手
    TREMBLE = "TREMBLE"
    # 握手
    HANDSHAKE = "HANDSHAKE"

详见pypi中的rocs-client 1.3.0 python包。

rocs_client-1.3.0/rocs_client/robot/human.py中。

总结

本文的目标是在Ubuntu 22.04上搭建一个傅利叶机器人仿真环境,并执行示例代码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 快速装机
  • 在仿真环境运行 (Webots)
    • I. 下载Webots
      • II. 启动SDK控制程序
        • III. 加载Webots模型
        • 控制机器人
          • 命令集锦
          • 总结
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档