Skip to main content

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

  1. Enable gs_usb kernel module

    $ sudo modprobe gs_usb
    
  2. Bringup can device

    $ sudo ip link set can0 up type can bitrate 500000
    
  3. If no error occured during the previous steps, you should be able to see the can device now by using command

    $ ifconfig -a
    
  4. Install and use can-utils to test the hardware

    $ sudo apt install can-utils
    
  5. 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

pyagxrobots-0.8.4.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyagxrobots-0.8.4-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

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

Hashes for pyagxrobots-0.8.4.tar.gz
Algorithm Hash digest
SHA256 a51d715075fe25f034a8e5d9b01757353c08b35c2241652a435af1b6684d1156
MD5 395ff97b0491b3d66d37bc89b33621f0
BLAKE2b-256 6c1056c3c9070cff7cd7362f3686c33e4bec4625cda8a646f853edd9fbedcd50

See more details on using hashes here.

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

Hashes for pyagxrobots-0.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f8f6b9ca3cdcb7fae23bede70028b5968c95dad68bb6a61b29a0f0f99c2edc54
MD5 8dd8d8b375137abe2906511ba03edb00
BLAKE2b-256 ccf4bab02742a80eaa3742dff78017a59a5d1a427f5d77d51d9cd4e100436122

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page