西木科技Westwood-Robotics人型机器人Bruce配置和真机配置
西木科技Westwood-Robotics人型机器人Bruce配置和真机配置
- 本文内容
- 机器人介绍
- Bruce机器人Gazebo中仿真代码部署
- Bruce真机代码部署
本文内容
- 人形机器人Brcue相关介绍
- docker中安装Gazebo并使用
- Bruce机器人控制器更换环境配置
机器人介绍
公司:西木科技Westwood-Robotics官网
Westwood Robotics(西木科技)是一家创立于2018年的美国公司,总部位于洛杉矶。该公司的创始团队成员主要源自加州大学洛杉矶分校的Robotics & Mechanisms Laboratory(RoMeLa)实验室。RoMeLa实验室在机器人学术界具有极高的声望,它由著名机器人学教授Dennis Hong创立并领导。
机器人:Bcuce机器人介绍
- 单腿5个自由度、单臂3个自由度、全身共16个自由度
- 仅重4.8kg、身高70cm、3000mAh电池
- 独立的无线急停装置
- 经由无线局域网通过SSH控制或蓝牙控制
- 腿部驱动器每个仅重250g、爆发力矩达8Nm

官方的github地址https://github.com/Westwood-Robotics
Bruce机器人Gazebo中仿真代码部署
docker中安装gazebo,并部署Bruce机器人仿真和代码
# docker中获取ubuntu系统,用jammy。
docker pull ubuntu:jammy-20240227
docker run -it \--env="DISPLAY=$DISPLAY" \--gpus all \--workdir="/home/zeven/bruce" \--volume="/home/zeven/bruce/BRUCE-OP:/home/zeven/bruce/BRUCE-OP" \--volume="/etc/apt/hosts" \--env="QT_X11_NO_MITSHM=1" \--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ubuntu:jammy-20240227rqt
export containerId=$(docker ps -l -q)
安装必要的包
apt clean# 2. 更新 apt 的缓存
apt-get update -y# 3. 安装 ca-certificates
apt-get install -y ca-certificatesBVC # 4. (可选) 安装任意一款 文本编辑器,以方便接下来修改配置文件
# Linux 常用文本编辑器:wim、nano、emacs
apt-get install <上述任意一个文本编辑器名>
# 如安装 vim
apt-get install vim
apt-get install curl
apt-get install pip
安装gazebo、docker显示相关和必要环境包
# 在宿主机执行
sudo apt-get install x11-xserver-utils
xhost +
#docker中执行
# 安装gazebo
echo "185.199.108.133 raw.githubusercontent.com" >> /etc/hosts
curl -sSL http://get.gazebosim.org | sh
# 测试安装是否正常
gezebo
# 安装环境依赖
pip install numpy pyserial termcolor matplotlib scipy osqp numba dynamixel-sdk posix_ipc pygame
然后依据
Bruce真机代码部署
电机驱动pyBear sdk安装
#获取代码
git clone git@github.com:Westwood-Robotics/PyBEAR.git
sudo cp 00-WestwoodRobotics.rules /etc/udev/rules.d
sudo udevadm control --reload
运行完后还是会出现权限不足问题,通过写udev规则解决。
下面是如何为这个设备编写udev规则的步骤:
打开终端: 在你的Linux系统中打开终端。
创建udev规则文件: 使用文本编辑器创建一个新的udev规则文件。例如,使用nano编辑器:
sudo nano /etc/udev/rules.d/99-usb2bear.rules
这里的文件名99-usb2bear.rules是你创建的udev规则文件,文件名前的数字 70 表示加载顺序,你可以根据需要选择不同的数字。
编写udev规则: 在打开的编辑器中,输入以下udev规则:
# bear
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="0666", GROUP="dialout"
# Dynamixel
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666", GROUP="dialout"
# imu
SUBSYSTEM=="tty", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="0666", GROUP="dialout"
这条规则表示,当udev检测到一个属于tty子系统,且具有特定供应商ID和产品ID的设备时,将该设备的文件模式设置为 0666(允许所有用户读写),并将该设备归属于 dialout 用户组。
保存并关闭文件: 如果你使用的是 nano,可以通过按 Ctrl+O 保存文件,然后按 Ctrl+X 退出编辑器。
重新加载udev规则: 保存规则文件后,需要重新加载udev规则,以使新规则生效:
sudo udevadm control --reload-rules
sudo udevadm trigger
将你的计算机权限修改为允许PyBEAR访问串行端口。
sudo chown -R your_username /usr/local
sudo usermod -a -G dialout your_username
CD到 PyBEAR/ 目录 安装相关包
pip3 install .
然后根据RM步骤进行
先编译包
cd BRUCE/BRUCE-OP
python3 -m Library.ROBOT_MODEL.BRUCE_DYNAMICS_AOT
python3 -m Library.ROBOT_MODEL.BRUCE_KINEMATICS_AOT
python3 -m Library.STATE_ESTIMATION.BRUCE_ORIENTATION_AOT
python3 -m Library.STATE_ESTIMATION.BRUCE_ESTIMATION_CF_AOT
python3 -m Library.STATE_ESTIMATION.BRUCE_ESTIMATION_KF_AOT
机器人控制中文件BRUCE_SERIAL_PORT 是相关通讯接口号需要更改Settings/BRUCE_macros.py (line 272-283)代码匹配BRUCE_SERIAL_PORT位置
相关文章:
西木科技Westwood-Robotics人型机器人Bruce配置和真机配置
西木科技Westwood-Robotics人型机器人Bruce配置和真机配置 本文内容机器人介绍Bruce机器人Gazebo中仿真代码部署Bruce真机代码部署 本文内容 人形机器人Brcue相关介绍docker中安装Gazebo并使用Bruce机器人控制器更换环境配置 机器人介绍 公司:西木科技Westwood-R…...
【招聘贴】JAVA后端·唯品会·BASE新加坡
作者|老夏(题图:公司业务介绍页) “ 请注意,这两个岗是BASE新加坡的,欢迎推荐给身边需要的朋友(特别是在新加坡的)。” VIP海外业务-产品技术团队,这两个岗位属于后端工程组的岗&…...
CVPR2024|vivo提出使用对抗微调获得泛化性更强的SAM,分割性能直接登顶 SOTA!
在计算机视觉不断发展的领域中,基础模型已成为一种关键工具,显示出对多种任务的出色适应性。其中,由 Meta AI 开发的 Segment Anything Model(SAM)在图像分割任务中表现杰出。然而,和其他类似模型一样&…...
程序员必备的ChatGPT技巧:从代码调试到项目管理
近年来,随着人工智能技术的迅猛发展,ChatGPT作为一种强大的对话式AI工具,已经广泛应用于各个领域。而对于程序员来说,ChatGPT不仅可以帮助他们解决编程中的各种问题,还能在项目管理中发挥重要作用。本篇博客将详细介绍…...
JAVA开发的一套医院绩效考核系统源码:KPI关键绩效指标的清晰归纳
KPI是关键绩效指标(Key Performance Indicators)的缩写,它是一种用于衡量员工或组织绩效的量化指标。这些指标通常与组织的目标和战略相关,并帮助管理层评估员工和组织的实际表现。KPI还可以为员工提供清晰的方向,使他…...
面向对象编程——python
目录 一、面向对象编程 1.1 类和对象 1.2 继承 1.3 封装 1.4 多态 1.5 Python中的面向对象编程 二、类、对象和变量 2.1 类(Class) 2.2.1 类的属性(Class Attributes) 2.2.2 类的方法(Class Methods…...
【LeetCode】每日一题:合并K个升序链表
给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 解题思路 分治加两个链表合并,或者用根堆,根堆的初始化方法很值得背诵,还涉及lambda的用法 AC代码 # Defini…...
从零开始学docker(四)-安装mysql及主从配置(一)
mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关…...
【目标检测】Yolov8 完整教程 | 检测 | 计算机视觉
学习资源:https://www.youtube.com/watch?vZ-65nqxUdl4 努力的小巴掌 记录计算机视觉学习道路上的所思所得。 1、准备图片images 收集数据网站:OPEN IMAGES 2、准备标签labels 网站:CVAT 有点是:支持直接导出yolo格式的标…...
新能源汽车 LabCar 测试系统方案(-)
什么是LabCar测试 LabCar测试目标是进行整车黄板台架功能测试,用于整车开发和测试阶段,满足设计人员和测试人员的试验需求,以验证整车性能,减少开发工作量。系统主要用于测试静态及动态工况下的纯电动汽车的各项功能实现情况。 …...
机器学习辅助的乙醇浓度检测(毕设节选)
目录 1.为什么要机器学习 2. 神经网络一般组成 3.BP神经网络工作过程 4.评价指标 5.实操代码 1.为什么要用机器学习 人工分析大量的谐振模式,建立各种WGM的响应与未知目标之间的关系,是一个很大的挑战。机器学习(ML)能够自行识别全谱的全部特征。作为…...
YOLO系列改进
yolo核心思想:把目标检测转变成一个回归问题。将整个图像作为网络的输入,仅仅经过一个神经网络,得到边界框的位置及其所属的类别。 YOLOv1 CVPR2016 输出7730的张量表示2个框的5个参数和20个种类。leaky ReLU,leaky并不会让负数…...
cuda与cudnn下载(tensorflow-gpu)
目录 前言 正文 前言 !!!tensorflow-gpu的版本要与cuda与cudnn想对应。这点十分重要!推荐下载较新的。即tensorflow-gpu2.60及以上,cuda11.x及以上,cudnn8.x及以上。 所以,下载之前先检查好…...
git 多分支实现上传文件但避免冲突检测
文章目录 背景实现步骤 背景 对于某些通过命令生成的配置文件(如 TypeScript 类型文件等) 实现步骤 1...
聊聊 golang 中 channel
1、引言 Do not communicate by sharing memory; instead, share memory by communicating Golang 的并发哲学是“不要通过共享内存进行通信,而要通过通信来共享内存”,提倡通过 channel 进行 goroutine 之间的数据传递和同步,而不是通过共享…...
SK Hynix 3D DRAM良率突破56.1%,开启存储新时代
根据韩国财经媒体Business Korea独家报道:在刚刚结束的VLSI 2024国际研讨会上,韩国半导体巨头SK Hynix公布了一项振奋人心的进展:其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步࿰…...
如何封装自动化测试框架?
封装自动化测试框架,测试人员不用关注框架的底层实现,根据指定的规则进行测试用例的创建、执行即可,这样就降低了自动化测试门槛,能解放出更多的人力去做更深入的测试工作。 本篇文章就来介绍下,如何封装自动化测试框…...
基于Java的在线编程考试系统【附源码】
毕业设计(论文) 题目:基于 二级学院: 现代技术学院 专业(方向): 计算机应用技术 班 级: 计科B2015 学 生: 指导教师: 2024年1月 29 日 本科毕业论文(设计)学术诚信声明 本人郑重…...
Beautiful Soup的使用
1、Beautiful Soup简介 Beautiful Soup是一个Python的一个HTML或XML的解析库,我们用它可以方便地从网页中提取数据。 Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓…...
633. 平方数之和(中等)
633. 平方数之和 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java内存溢出溢出代码正确代码与截图 1. 题目描述 题目中转:633. 平方数之和 2.详细题解 本题是167. 两数之和 II - 输入有序数组(中等)题目的变型,由两数之和变…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
