A small example package for agxrobots
Project description
This is Python API for Agilex Robotics
This is a python API for CAN communication with Agilex Robotics
Installation
Notes:
Make sure that python version >=3.4. if you have python3 and python2 ,please use python3
Communication protocol
| Robot | Protocol V2 | CAN | Support Status |
|---|---|---|---|
| Scout 2.0 | Y | Y | Active |
| Scout Mini | Y | Y | Active |
| Hunter 2.0 | Y | Y | Active |
| Bunker | Y | Y | Active |
| Tracer | Y | Y | Active |
pip
$ pip3 install pyagxrobots
Notes:
Make sure that pip3 version >= 9.0.0.
cheak the pip3 version
$ pip3 -V
updata pip3
$ python3 -m pip install --upgrade pip
Setup CAN-To-USB adapter
-
Enable gs_usb kernel module
$ sudo modprobe gs_usb
-
Bringup can device
$ sudo ip link set can0 up type can bitrate 500000
-
If no error occured during the previous steps, you should be able to see the can device now by using command
$ ifconfig -a
-
Install and use can-utils to test the hardware
$ sudo apt install can-utils
-
Testing command
# receiving data from can0 $ candump can0 # send data to can0 $ cansend can0 001#1122334455667788
You can run step 1-5 for the first-time setup and run step 2 to bring up the device each time you unplug and re-plug the adapter.
import to your project
#!/usr/bin/env python3
# coding=utf-8
import pyagxrobots
robots=pyagxrobots.pysdkugv.robotstype() # robotstype depend on your robot
function list:
EnableCAN()
SetMotionCommand()
SetLightCommand()
GetRobotStae:
MotionCommandMessage:
GetLinearVelocity()
GetAngularVelocity()
GetLateralVelocity()
GetSteeringAngle()
LightCommandMessage:
GetLightCmdCtrl()
GetFrontMode()
GetFrontCustom()
GetRearMode()
GetRearCustom()
SystemStateMessage:
GetVehicleState()
GetControlMode()
GetBatteryVoltage()
GetErrorCode()
RcStateMessage:
OdometryMessage:
GetLeftWheel()
GetRightWheel()
ActuatorStateMessageV2:
rpm()
current()
pulse_count()
driver_voltage()
driver_temp()
motor_temp()
driver_state()
EnableCAN
- Prototype:
EnableCAN() - Description: Enable command and control mode.
SetMotionCommand
- Prototype:
SetMotionCommand() - Description:Send Version Request to robots.
- Parameters
linear_vel:(float)angular_vel:(float)lateral_velocity:(float)steering_angle:(float)
GetLinearVelocity
- Prototype:
GetLinearVelocity() - Description:Get the linear velocity from robot
- Return:linear velocity
GetAngularVelocity
- Prototype:
GetAngularVelocity() - Description:Get the angular velocity from robot.
- Return:angular velocity
GetSteeringAngle
- Prototype:
GetSteeringAngle() - Description:Get the steering angle from robot .
- Return:steering angle
GetLateralVelocity
- Prototype:
GetLateralVelocity() - Description:Get the lateral velocity from robot .
- Return:lateral velocity
GetControlMode
- Prototype:
GetControlMode() - Description:Get the control mode from robot .
- Return:control mode
GetLeftWheelOdeom
- Prototype:
GetLeftWheelOdeo() - Description:get robots LeftWheelOdom .
- Return:LeftWheelOdom
GetRightWheelOdom
- Prototype:
GetRightWheelOdom() - Description:get robots RightWheelOdom .
- Return:RightWheelOdeom
GetBatteryVoltage
- Prototype:
GetBatteryVoltage() - Description:Get the battery voltage from robot
- Return:battery voltage
GetErrorCode
- Prototype:
GetErrorCode() - Description:Get the error code from robot
- Return:error code
Example
Note:
For safety, please ensure that the robot's wheels are off the ground
1.ScoutMini
#!/usr/bin/env python3
# coding=UTF-8
import pyagxrobots
import time
scoutmini=pyagxrobots.pysdkugv.ScoutMiniBase()
scoutmini.EnableCAN()
num=5
while num>0:
scoutmini.SetMotionCommand(linear_vel=0.1)
print(scoutmini.GetLinearVelocity())
time.sleep(0.3)
num-=1
2.Bunker
#!/usr/bin/env python3
# coding=UTF-8
import pyagxrobots
import time
bunker=pyagxrobots.pysdkugv.BunkerBase()
bunker.EnableCAN()
num=5
while num>0:
bunker.SetMotionCommand(linear_vel=0.1)
print(bunker.GetLinearVelocity())
time.sleep(0.3)
num-=1
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyagxrobots-0.8.4.tar.gz.
File metadata
- Download URL: pyagxrobots-0.8.4.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a51d715075fe25f034a8e5d9b01757353c08b35c2241652a435af1b6684d1156
|
|
| MD5 |
395ff97b0491b3d66d37bc89b33621f0
|
|
| BLAKE2b-256 |
6c1056c3c9070cff7cd7362f3686c33e4bec4625cda8a646f853edd9fbedcd50
|
File details
Details for the file pyagxrobots-0.8.4-py3-none-any.whl.
File metadata
- Download URL: pyagxrobots-0.8.4-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8f6b9ca3cdcb7fae23bede70028b5968c95dad68bb6a61b29a0f0f99c2edc54
|
|
| MD5 |
8dd8d8b375137abe2906511ba03edb00
|
|
| BLAKE2b-256 |
ccf4bab02742a80eaa3742dff78017a59a5d1a427f5d77d51d9cd4e100436122
|