Welcome to the BestMan_Agilex repository, a codebase dedicated to the Agilex UGV platform.
-
Pull the repository
git clone --recursive https://github.com/Yuhan321/BestMan_Agilex.git cd BestMan_Agilex- If you've checked out
ugv_sdkwithout--recursive, you can run the following command to fetch the submodule:
git submodule update --init --recursive
- If you've checked out
-
Setup CAN-To-USB Adapter
-
Enable
gs_usbkernel module:sudo modprobe gs_usb
-
Bring up the CAN device:
sudo ip link set can0 up type can bitrate 500000
-
If no error occurred during the previous steps, you should be able to see the CAN device by using the following command:
ifconfig -a
-
Install and use
can-utilsto test the hardware:sudo apt install can-utils
-
Testing commands:
-
Receive data from
can0:candump can0
-
Send data to
can0:cansend can0 001#1122334455667788
-
-
-
Setup UWB Device
-
Check the serial port:
sudo dmesg | grep tty -
Set read/write permissions for all users:
sudo chmod 666 /dev/ttyUSB0
-
Alternatively, add the current user to the
dialoutgroup to simplify access by avoiding the need to modify permissions each time:sudo usermod -aG dialout $USERLog out and log back in for the changes to take effect.
-
-
Create a conda environment
cd Install conda env create -f basic_environment.yaml conda activate BestMan_Agilex -
Generate UGV SDK Python Shared Library (Personal Requirement)
If you want to generate the ugv_sdk_py shared library for your environment, please follow these steps:
-
Install Python development files:
sudo apt-get install python3-dev
-
Clone the ugv_sdk repository:
git clone --recursive https://github.com/westonrobot/ugv_sdk.git cd ugv_sdk -
Create a build directory and navigate into it:
mkdir build && cd build
-
Run cmake to enable Python binding and compile the project:
cmake -DPYTHON_BINDING=ON .. && make
After the build completes, replace the generated shared library file with the one in RoboticsToolBox/ugv_sdk_py.cpython-38-x86_64-linux-gnu.so to ensure compatibility with your environment.
-
-
Setup CAN device
sudo ip link set can0 up type can bitrate 500000
-
Run the following demos:
cd ~/BestMan_Agilex/Examples/
-
Get location information:
python get_location.py
-
Control motion (e.g., rotate at 0.2 rad/s):
python motion_test.py
-
Move to target:
python move_to_target_heading.py
-
Move to target with a precision of 0.1 meters:
python move_to_target_heading_parallel.py
-
Rotate to a fixed angle:
python rotate_to_fixed_angle.py
-
If you have any questions or need further assistance, please feel free to reach out via email:
