宇树A1电池拆解分享

一. 关于A1电池

今天的主角是宇树的A1电池。该电池主要用在宇树的A1机器狗上,A1主打的是运动性能,最大持续奔跑速度可以达到3.3m/s (11.88km/h),是目前国内速度最快、最稳定的中小型四足机器人。之所以能跑得这么快,归功于A1的高级的动态平衡算法、高性能的扭矩电机以及强大的动力电池。手上刚好有一块A1电池,今天带大家拆解一下电池,学习一下A1电池的结构设计以及电路方案。

在拆解之前,先了解一下电池的相关参数:

参数数值
电池类型聚合物锂离子电池
产品重量870g
充电限制电压DC 25.2V
额定容量4200mAh 90.72Wh
最大充电功率100.8W

二. 拆解过程

2.1 结构设计

电池的结构还是比较简单的。整体由上下两面外壳,电芯以及控制板组成,上壳与下壳通过热熔螺母和螺钉连接在一起。在上壳顶部还包含LED灯的输出通道以及一个按键,将其盖板打开,里面有一个弹簧卡扣设计,用于和电池仓的装配。

2.2 电路方案

电路主要由上下两块PCB组成:

  1. 下层PCB电路: 下层的电路板主要负责与电池组相连,将电池组串联后的总电压通过中间的两根贴片螺母和螺钉传送至上层PCB中;同时还需要将电池组中单独电池的电压通过FPC排线传送至上层板,做电源管理用;板上还有4个LED灯以及两个按键,控制信号都是由上层电路板通过FPC排线传输下来。
  2. 上层PCB电路: 上层电路板就是主要负责电源管理。大多数IC芯片都做了保密处理,把丝印去掉了。大概组成就是MCU+前段模拟IC+电池管理控制器IC(像大疆的悟1的电池TB47用的方案就是MSP430+BQ78350+BQ76930,都是Ti的方案)。其中右图立起来的那四根黑线是温度传感器的探头,分别放在采样电阻、MOS管上面以及透过底层电路板放在电池组的缝隙里。

2.3 电芯设计

电芯使用的是常用的18650封装。采用2并6串的形式组装,假设每个电池充满电是4.2V的话,总电压可以达到25.2V,每个电池的容量为2100mAh,总容量就可以达到4200mAh,且两两并联的方式也让电池有了更强劲的放电能力。

三. 相关链接

  1. 宇树官网:https://www.unitree.com/
  2. 宇树官网-A1电池:https://www.unitree.com/a1battery
在Ubuntu 18.04的环境系统上连接机器狗Go1并实现目标检测功能开发,可以按照以下步骤进行: ### 硬件配置 1. **连接机器狗Go1**: - 确保机器狗Go1的电源已开启。 - 使用USB或以太网线将机器狗连接到计算机。如果使用USB,确保计算机识别了设备。 2. **安装必要的驱动程序**: - 打开终端,更新系统软件包列表: ```bash sudo apt update ``` - 安装必要的驱动程序(根据机器狗的具体型号和接口,可能需要不同的驱动): ```bash sudo apt install ros-melodic-usb-cam sudo apt install ros-melodic-opencv3 ``` ### 软件环境搭建 1. **安装ROS(Robot Operating System)**: - 安装ROS Melodic版本(Ubuntu 18.04推荐使用ROS Melodic): ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install ros-melodic-desktop-full ``` - 初始化rosdep: ```bash sudo rosdep init rosdep update ``` - 设置环境变量: ```bash echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 2. **创建ROS工作空间**: - 创建工作空间目录: ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` - 设置工作空间环境变量: ```bash echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` ### 图像采集与处理 1. **安装OpenCV**: - 安装OpenCV库: ```bash sudo apt install libopencv-dev python-opencv ``` 2. **编写图像采集节点**: - 在`~/catkin_ws/src`目录下创建一个新的ROS包: ```bash cd ~/catkin_ws/src catkin_create_pkg image_processing rospy std_msgs sensor_msgs ``` - 编写图像采集节点脚本(`image_acquisition.py`): ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 def image_callback(msg): bridge = CvBridge() cv_image = bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') cv2.imshow('Image', cv_image) cv2.waitKey(1) def main(): rospy.init_node('image_acquisition') rospy.Subscriber('/camera/image_raw', Image, image_callback) rospy.spin() if __name__ == '__main__': main() ``` - 编写CMakeLists.txt和package.xml文件,配置编译选项。 ### 目标检测算法实现 1. **安装深度学习框架**: - 安装TensorFlow或PyTorch: ```bash pip install tensorflow # 或者 pip install torch ``` 2. **编写目标检测节点**: - 在`image_processing`包中创建目标检测节点脚本(`object_detection.py`): ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 import tensorflow as tf class ObjectDetector: def __init__(self): self.bridge = CvBridge() self.detection_graph = tf.Graph() with self.detection_graph.as_default(): od_graph_def = tf.GraphDef() with tf.gfile.GFile('frozen_inference_graph.pb', 'rb') as fid: serialized_graph = fid.read() od_graph_def.ParseFromString(serialized_graph) tf.import_graph_def(od_graph_def, name='') self.sess = tf.Session(graph=self.detection_graph) def detect_objects(self, image): image_tensor = self.detection_graph.get_tensor_by_name('image_tensor:0') detection_boxes = self.detection_graph.get_tensor_by_name('detection_boxes:0') detection_scores = self.detection_graph.get_tensor_by_name('detection_scores:0') detection_classes = self.detection_graph.get_tensor_by_name('detection_classes:0') num_detections = self.detection_graph.get_tensor_by_name('num_detections:0') (boxes, scores, classes, num) = self.sess.run( [detection_boxes, detection_scores, detection_classes, num_detections], feed_dict={image_tensor: image} ) return boxes, scores, classes, num def image_callback(msg): detector = ObjectDetector() image = detector.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') image_expanded = np.expand_dims(image, axis=0) boxes, scores, classes, num = detector.detect_objects(image_expanded) # 处理检测结果... def main(): rospy.init_node('object_detection') rospy.Subscriber('/camera/image_raw', Image, image_callback) rospy.spin() if __name__ == '__main__': main() ``` ### 总结 通过以上步骤,你可以在Ubuntu 18.04的环境系统上连接机器狗Go1并实现目标检测功能开发。确保每一步都正确配置和安装必要的软件包,并根据具体需求进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬瓜~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值