ezgo 0.0.4__py3-none-any.whl → 0.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ezgo/__init__.py CHANGED
@@ -8,7 +8,7 @@ ezgo - 宇树Go2机器狗Python控制库
8
8
  支持运动控制、视频流获取、UI界面等功能。
9
9
  """
10
10
 
11
- __version__ = "0.0.4"
11
+ __version__ = "0.0.5"
12
12
  __author__ = "ezgo"
13
13
  __email__ = ""
14
14
  __license__ = "MIT"
ezgo/go2.py CHANGED
@@ -87,7 +87,13 @@ class Go2:
87
87
  def check_go2_connection(self):
88
88
  """检查机器狗IP连通性"""
89
89
  try:
90
- # 使用sudo ping检查机器狗IP (192.168.123.161是Go2的默认IP)
90
+ # 先尝试不使用sudo ping
91
+ result = subprocess.run(['ping', '-c', '1', '-W', '2', '192.168.123.161'],
92
+ capture_output=True, text=True, timeout=5)
93
+ if result.returncode == 0:
94
+ return True
95
+
96
+ # 如果不使用sudo失败,尝试使用sudo
91
97
  result = subprocess.run(['sudo', 'ping', '-c', '1', '-W', '2', '192.168.123.161'],
92
98
  capture_output=True, text=True, timeout=5)
93
99
  return result.returncode == 0
@@ -104,26 +110,31 @@ class Go2:
104
110
  def init(self):
105
111
  """初始化与Go2的连接"""
106
112
 
107
- # 检查机器狗IP连通性
113
+ # 检查机器狗IP连通性(仅作为警告,不阻止初始化)
108
114
  if not self.check_go2_connection():
109
- print("无法连接到机器狗,请检查网络连接")
110
- return False
115
+ print("警告:无法ping通机器狗IP,但继续尝试初始化SDK")
116
+ print("请确保机器狗已开机且网络连接正常")
111
117
 
112
- ChannelFactoryInitialize(0, self.interface)
118
+ try:
119
+ ChannelFactoryInitialize(0, self.interface)
113
120
 
114
- # 启动状态订阅
115
- self.sub_state(self.callback)
121
+ # 启动状态订阅
122
+ self.sub_state(self.callback)
116
123
 
117
- # 初始化运动控制客户端
118
- self.sport_client = SportClient()
119
- self.sport_client.SetTimeout(self.timeout)
120
- self.sport_client.Init()
121
-
122
- # 注意:视频流不再自动初始化,按需开启
123
- # self.cap = self.open_video() # 移除自动初始化
124
-
125
- self._initialized = True
126
- return True
124
+ # 初始化运动控制客户端
125
+ self.sport_client = SportClient()
126
+ self.sport_client.SetTimeout(self.timeout)
127
+ self.sport_client.Init()
128
+
129
+ # 注意:视频流不再自动初始化,按需开启
130
+ # self.cap = self.open_video() # 移除自动初始化
131
+
132
+ self._initialized = True
133
+ print("Go2 SDK初始化成功")
134
+ return True
135
+ except Exception as e:
136
+ print(f"SDK初始化失败: {e}")
137
+ return False
127
138
 
128
139
 
129
140
  def open_video(self, width: int = 480, height: int = 320):
@@ -594,67 +605,174 @@ class Go2:
594
605
 
595
606
  def HandStand(self, flag: int):
596
607
  """倒立行走。"""
597
- pass
608
+ # 执行指令
609
+ self._call(lambda: self.sport_client.HandStand(bool(flag)))
610
+ if flag:
611
+ time.sleep(4)
612
+ self._call(lambda: self.sport_client.HandStand(False))
598
613
 
599
614
  def LeftFlip(self):
600
615
  """左空翻。"""
601
- pass
616
+ # 执行指令
617
+ result = self._call(self.sport_client.LeftFlip)
618
+ return result == 0 if result is not None else False
602
619
 
603
620
  def BackFlip(self):
604
621
  """后空翻。"""
605
- pass
622
+ # 执行指令
623
+ result = self._call(self.sport_client.BackFlip)
624
+ return result == 0 if result is not None else False
606
625
 
607
- def FreeWalk(self, flag: int):
626
+ def FreeWalk(self, flag: int = None):
608
627
  """ 灵动模式(默认步态)。"""
609
- pass
628
+ # 执行指令
629
+ if flag is None:
630
+ # 切换模式
631
+ result = self._call(lambda: self.sport_client.FreeWalk())
632
+ else:
633
+ # 根据flag值执行相应操作
634
+ if flag:
635
+ # 开启灵动模式
636
+ result = self._call(lambda: self.sport_client.FreeWalk())
637
+ else:
638
+ # 关闭灵动模式 - 切换到其他模式
639
+ result = self._call(lambda: self.sport_client.StandUp())
640
+ return result == 0 if result is not None else False
610
641
 
611
642
  def FreeBound(self, flag: int):
612
643
  """ 并腿跑模式。"""
613
- pass
644
+ # 执行指令
645
+ result = self._call(lambda: self.sport_client.FreeBound(bool(flag)))
646
+ success = result == 0 if result is not None else False
647
+
648
+ if flag and success:
649
+ # 如果成功开启,等待2秒后自动关闭(这是为了演示效果)
650
+ time.sleep(2)
651
+ self._call(lambda: self.sport_client.FreeBound(False))
652
+
653
+ return success
614
654
 
615
655
  def FreeJump(self, flag: int):
616
656
  """ 跳跃模式。"""
617
- pass
657
+ # 执行指令
658
+ result = self._call(lambda: self.sport_client.FreeJump(bool(flag)))
659
+ success = result == 0 if result is not None else False
660
+
661
+ if flag and success:
662
+ # 如果成功开启,等待4秒后自动关闭(这是为了演示效果)
663
+ time.sleep(4)
664
+ self._call(lambda: self.sport_client.FreeJump(False))
665
+
666
+ return success
618
667
 
619
668
  def FreeAvoid(self, flag: int):
620
669
  """ 闪避模式。"""
621
- pass
670
+ # 执行指令
671
+ result = self._call(lambda: self.sport_client.FreeAvoid(bool(flag)))
672
+ success = result == 0 if result is not None else False
673
+
674
+ if flag and success:
675
+ # 如果成功开启,等待2秒后自动关闭(这是为了演示效果)
676
+ time.sleep(2)
677
+ self._call(lambda: self.sport_client.FreeAvoid(False))
678
+
679
+ return success
622
680
 
623
681
  def WalkUpright(self, flag: int):
624
682
  """ 后腿直立模式。"""
625
- pass
683
+ # 执行指令
684
+ result = self._call(lambda: self.sport_client.WalkUpright(bool(flag)))
685
+ success = result == 0 if result is not None else False
686
+
687
+ if flag and success:
688
+ # 如果成功开启,等待4秒后自动关闭(这是为了演示效果)
689
+ time.sleep(4)
690
+ self._call(lambda: self.sport_client.WalkUpright(False))
691
+
692
+ return success
626
693
 
627
694
  def CrossStep(self, flag: int):
628
695
  """ 交叉步模式。"""
629
- pass
696
+ # 执行指令
697
+ result = self._call(lambda: self.sport_client.CrossStep(bool(flag)))
698
+ success = result == 0 if result is not None else False
699
+
700
+ if flag and success:
701
+ # 如果成功开启,等待4秒后自动关闭(这是为了演示效果)
702
+ time.sleep(4)
703
+ self._call(lambda: self.sport_client.CrossStep(False))
704
+
705
+ return success
630
706
 
631
707
  def AutoRecoverSet(self, flag: int):
632
708
  """ 设置自动翻身是否生效。"""
633
- pass
709
+ try:
710
+ # 执行指令
711
+ result = self._call(lambda: self.sport_client.AutoRecoverSet(bool(flag)))
712
+ return result == 0 if result is not None else False
713
+ except AttributeError:
714
+ print("警告: AutoRecoverSet 方法在当前SDK版本中不可用")
715
+ return False
634
716
 
635
717
  def AutoRecoverGet(self):
636
718
  """ 查询自动翻身是否生效。"""
637
- pass
719
+ try:
720
+ # 执行指令
721
+ result = self._call(self.sport_client.AutoRecoverGet)
722
+ return result if result is not None else False
723
+ except AttributeError:
724
+ print("警告: AutoRecoverGet 方法在当前SDK版本中不可用")
725
+ return False
638
726
 
639
727
  def ClassicWalk(self, flag: int):
640
728
  """ 经典步态。"""
641
- pass
729
+ try:
730
+ # 执行指令
731
+ result = self._call(lambda: self.sport_client.ClassicWalk(bool(flag)))
732
+ return result == 0 if result is not None else False
733
+ except AttributeError:
734
+ print("警告: ClassicWalk 方法在当前SDK版本中不可用")
735
+ return False
642
736
 
643
737
  def TrotRun(self):
644
738
  """ 进入常规跑步模式 """
645
- pass
739
+ try:
740
+ # 执行指令
741
+ result = self._call(self.sport_client.TrotRun)
742
+ return result == 0 if result is not None else False
743
+ except AttributeError:
744
+ print("警告: TrotRun 方法在当前SDK版本中不可用")
745
+ return False
646
746
 
647
747
  def StaticWalk(self):
648
748
  """ 进入常规行走模式"""
649
- pass
749
+ try:
750
+ # 执行指令
751
+ result = self._call(self.sport_client.StaticWalk)
752
+ return result == 0 if result is not None else False
753
+ except AttributeError:
754
+ print("警告: StaticWalk 方法在当前SDK版本中不可用")
755
+ return False
650
756
 
651
757
  def EconomicGait(self):
652
758
  """ 进入常规续航模式 """
653
- pass
759
+ try:
760
+ # 执行指令
761
+ result = self._call(self.sport_client.EconomicGait)
762
+ return result == 0 if result is not None else False
763
+ except AttributeError:
764
+ print("警告: EconomicGait 方法在当前SDK版本中不可用")
765
+ return False
654
766
 
655
767
  def SwitchAvoidMode(self):
656
768
  """ 闪避模式下,关闭摇杆未推时前方障碍物的闪避以及后方的障碍物躲避"""
657
- pass
769
+ try:
770
+ # 执行指令
771
+ result = self._call(self.sport_client.SwitchAvoidMode)
772
+ return result == 0 if result is not None else False
773
+ except AttributeError:
774
+ print("警告: SwitchAvoidMode 方法在当前SDK版本中不可用")
775
+ return False
658
776
 
659
777
  def get_camera(self):
660
778
  """
@@ -674,7 +792,7 @@ class Go2:
674
792
  """
675
793
  获取声光控制对象(按需初始化)
676
794
 
677
- Returns:
795
+ Returns:
678
796
  Go2VUI: 声光控制对象
679
797
  """
680
798
  if not hasattr(self, '_vui') or self._vui is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezgo
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: 宇树Go2机器狗Python控制库
5
5
  Author-email: ezgo <noreply@example.com>
6
6
  License: MIT
@@ -0,0 +1,11 @@
1
+ ezgo/__init__.py,sha256=6OsmnWvKm2s_BqjwPGTqeYpYt4XUybSAOnvOdDJzCLw,1978
2
+ ezgo/camera.py,sha256=Vsr44vFtaop4LE0DlWyOHyvxF-jHnVO8iMPUwp5mbsE,2538
3
+ ezgo/go2.py,sha256=lSZwpYRAljcV4bAalkZXvs9X-qMaEGcuaHSNegGcX6M,31610
4
+ ezgo/go2_camera.py,sha256=nawUSLyvqTNiVRQ2sM-UdoJzqwZcySltLbCfUb0G9Qc,8614
5
+ ezgo/go2_vui.py,sha256=52I4Y8uqGkW9muDEnDzQ236HqVVTIgNIN_2gW5RTC48,10161
6
+ ezgo/ui.py,sha256=jUik6maaoemI2vsBM92OLZfJfskg54W7hwMls_gxppg,2777
7
+ ezgo-0.0.5.dist-info/LICENSE,sha256=Zk4eZBT3KaBhqM3LB_xN7QquwnoWsEHAoA6eLdE6W5M,1060
8
+ ezgo-0.0.5.dist-info/METADATA,sha256=Mooo_ZwJzl44ylJkPQHgsFUdV0nwCf0HZaxMuyKvsso,6869
9
+ ezgo-0.0.5.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
10
+ ezgo-0.0.5.dist-info/top_level.txt,sha256=BdCFEVD5V_4FxUtvH0BVlZKgxYnp7EKNsYs5OyFxj-g,5
11
+ ezgo-0.0.5.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- ezgo/__init__.py,sha256=k2oP52F-SZ6VBDE33l8cTJbEDGxlJLL7S9rZBBtFdYc,1978
2
- ezgo/camera.py,sha256=Vsr44vFtaop4LE0DlWyOHyvxF-jHnVO8iMPUwp5mbsE,2538
3
- ezgo/go2.py,sha256=V0bZ6frGIArop-lOoN6ybMekf7qfWv4jb7aWLxEHdkQ,25845
4
- ezgo/go2_camera.py,sha256=nawUSLyvqTNiVRQ2sM-UdoJzqwZcySltLbCfUb0G9Qc,8614
5
- ezgo/go2_vui.py,sha256=52I4Y8uqGkW9muDEnDzQ236HqVVTIgNIN_2gW5RTC48,10161
6
- ezgo/ui.py,sha256=jUik6maaoemI2vsBM92OLZfJfskg54W7hwMls_gxppg,2777
7
- ezgo-0.0.4.dist-info/LICENSE,sha256=Zk4eZBT3KaBhqM3LB_xN7QquwnoWsEHAoA6eLdE6W5M,1060
8
- ezgo-0.0.4.dist-info/METADATA,sha256=cOE5dut6FpLvbY3AUyYM8Y14PlicnuYZ9_RluuYXVWQ,6869
9
- ezgo-0.0.4.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
10
- ezgo-0.0.4.dist-info/top_level.txt,sha256=BdCFEVD5V_4FxUtvH0BVlZKgxYnp7EKNsYs5OyFxj-g,5
11
- ezgo-0.0.4.dist-info/RECORD,,
File without changes
File without changes