%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
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0):
* 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 / 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
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0):
* 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 / 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
Documentation (AutonoWar v0.1.3, abrconnection v0.1.0):
* 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 / 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 - 0.3.5.1-1
- Package Spec generated