1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
%global _empty_manifest_terminate_build 0
Name: python-awconnection
Version: 0.3.5.1
Release: 1
Summary: An interface between Python and AutonoWar
License: MIT
URL: https://github.com/griffinteller/awconnection
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c8/26/cd07deec5a3b5a9daa32fc981def2aa1b1762624685d0b8e984dd4726734/awconnection-0.3.5.1.tar.gz
BuildArch: noarch
Requires: python3-pywin32
%description
# AutonoWar Connection
An interface between Python and AutonoWar
<br>
<br>
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0): <br><br>
* Coordinate system is left-handed, with x being east, y being upwards, and z being north.
* `RobotConnection()`: class which handles connection to the game. Should be instantiated at beginning of script, and method `connect()` should be called immediately after. `disconnect()` ends connection.
* `RobotConnection.set_tire_torque(tire_name, torque)`: sets torque of tire `tire_name` to `torque`. Current tire names are "BackLeft", "BackRight", "FrontLeft", and "FrontRight."
* `RobotConnection.set_tire_steering(tire_name, bering)`: sets tire `tire_name` to `bering`. All angles/berings are clockwise off of vertical (unity's coordinate system is left-handed).
* `RobotConnection.sensors`: Dictionary/Hashtable containing information about the state of the robot.
* Vectors are stored as dictionaries with keys `"x"`, `"y"`, and `"z"`.
* `sensors["gps"]`: Sensor containing position information of the robot.
* `sensors["gps"]["position"]`: Vector containing current position of robot relative to starting point.
* `sensors["gyroscope"]`: Sensor containing rotation information of the robot:
* `sensors["gyroscope"]["right"]`: Unit vector pointing right RELATIVE to the robot. For example, if the robot was facing in the default direction, its right vector would be <1, 0, 0> because its right direction is east. If the robot turned 90 degees counterclockwise, its right vector would be <0, 0, 1>. If the robot was facing a bering of 45 degrees and was climbing a 20 degree grade, its right vector would be <cos(45), sin(20), sin(45)> / sqrt(cos(45)^2 + sin(20)^2 + sin(45)^2).
* `sensors["gyroscope"]["up"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["gyroscope"]["forward"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["lidar"]["distanceArray"]`: Array containing distance to any object at 1 degree increments. `state_dict["lidar"]["distanceArray"][0]` would describe how many meters of clearance the robot has in front of itself, `state_dict["lidar"]["distanceArray"][90]` would describe its clearance to the right, and so on. If the robot has more than 100 meters of clearance in a particular direction, the value will capped at 100. In future updates, lidar upgrades might include an increase in range or density for in-game currency. Vertical FOV will be coming soon.
* `sensors["radar"]["pings"]`: array of vectors representing opponent locations
* `sensors["altimeter"]["altitude"]`: distance to ground in world space (i.e. NOT normal to robot)
%package -n python3-awconnection
Summary: An interface between Python and AutonoWar
Provides: python-awconnection
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-awconnection
# AutonoWar Connection
An interface between Python and AutonoWar
<br>
<br>
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0): <br><br>
* Coordinate system is left-handed, with x being east, y being upwards, and z being north.
* `RobotConnection()`: class which handles connection to the game. Should be instantiated at beginning of script, and method `connect()` should be called immediately after. `disconnect()` ends connection.
* `RobotConnection.set_tire_torque(tire_name, torque)`: sets torque of tire `tire_name` to `torque`. Current tire names are "BackLeft", "BackRight", "FrontLeft", and "FrontRight."
* `RobotConnection.set_tire_steering(tire_name, bering)`: sets tire `tire_name` to `bering`. All angles/berings are clockwise off of vertical (unity's coordinate system is left-handed).
* `RobotConnection.sensors`: Dictionary/Hashtable containing information about the state of the robot.
* Vectors are stored as dictionaries with keys `"x"`, `"y"`, and `"z"`.
* `sensors["gps"]`: Sensor containing position information of the robot.
* `sensors["gps"]["position"]`: Vector containing current position of robot relative to starting point.
* `sensors["gyroscope"]`: Sensor containing rotation information of the robot:
* `sensors["gyroscope"]["right"]`: Unit vector pointing right RELATIVE to the robot. For example, if the robot was facing in the default direction, its right vector would be <1, 0, 0> because its right direction is east. If the robot turned 90 degees counterclockwise, its right vector would be <0, 0, 1>. If the robot was facing a bering of 45 degrees and was climbing a 20 degree grade, its right vector would be <cos(45), sin(20), sin(45)> / sqrt(cos(45)^2 + sin(20)^2 + sin(45)^2).
* `sensors["gyroscope"]["up"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["gyroscope"]["forward"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["lidar"]["distanceArray"]`: Array containing distance to any object at 1 degree increments. `state_dict["lidar"]["distanceArray"][0]` would describe how many meters of clearance the robot has in front of itself, `state_dict["lidar"]["distanceArray"][90]` would describe its clearance to the right, and so on. If the robot has more than 100 meters of clearance in a particular direction, the value will capped at 100. In future updates, lidar upgrades might include an increase in range or density for in-game currency. Vertical FOV will be coming soon.
* `sensors["radar"]["pings"]`: array of vectors representing opponent locations
* `sensors["altimeter"]["altitude"]`: distance to ground in world space (i.e. NOT normal to robot)
%package help
Summary: Development documents and examples for awconnection
Provides: python3-awconnection-doc
%description help
# AutonoWar Connection
An interface between Python and AutonoWar
<br>
<br>
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0): <br><br>
* Coordinate system is left-handed, with x being east, y being upwards, and z being north.
* `RobotConnection()`: class which handles connection to the game. Should be instantiated at beginning of script, and method `connect()` should be called immediately after. `disconnect()` ends connection.
* `RobotConnection.set_tire_torque(tire_name, torque)`: sets torque of tire `tire_name` to `torque`. Current tire names are "BackLeft", "BackRight", "FrontLeft", and "FrontRight."
* `RobotConnection.set_tire_steering(tire_name, bering)`: sets tire `tire_name` to `bering`. All angles/berings are clockwise off of vertical (unity's coordinate system is left-handed).
* `RobotConnection.sensors`: Dictionary/Hashtable containing information about the state of the robot.
* Vectors are stored as dictionaries with keys `"x"`, `"y"`, and `"z"`.
* `sensors["gps"]`: Sensor containing position information of the robot.
* `sensors["gps"]["position"]`: Vector containing current position of robot relative to starting point.
* `sensors["gyroscope"]`: Sensor containing rotation information of the robot:
* `sensors["gyroscope"]["right"]`: Unit vector pointing right RELATIVE to the robot. For example, if the robot was facing in the default direction, its right vector would be <1, 0, 0> because its right direction is east. If the robot turned 90 degees counterclockwise, its right vector would be <0, 0, 1>. If the robot was facing a bering of 45 degrees and was climbing a 20 degree grade, its right vector would be <cos(45), sin(20), sin(45)> / sqrt(cos(45)^2 + sin(20)^2 + sin(45)^2).
* `sensors["gyroscope"]["up"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["gyroscope"]["forward"]`: Unit vector pointing up RELATIVE to the robot. Same idea as before.
* `sensors["lidar"]["distanceArray"]`: Array containing distance to any object at 1 degree increments. `state_dict["lidar"]["distanceArray"][0]` would describe how many meters of clearance the robot has in front of itself, `state_dict["lidar"]["distanceArray"][90]` would describe its clearance to the right, and so on. If the robot has more than 100 meters of clearance in a particular direction, the value will capped at 100. In future updates, lidar upgrades might include an increase in range or density for in-game currency. Vertical FOV will be coming soon.
* `sensors["radar"]["pings"]`: array of vectors representing opponent locations
* `sensors["altimeter"]["altitude"]`: distance to ground in world space (i.e. NOT normal to robot)
%prep
%autosetup -n awconnection-0.3.5.1
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-awconnection -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.5.1-1
- Package Spec generated
|