| Exit | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| LJ4 ↑ | LJ1 ↑ | LJ4 ↓ | R | T | Y | RJ4 ↑ | RJ1 ↑ | RJ4 ↓ | P |
| LJ2← | LJ1 ↓ | LJ2→ | F | G | H | RJ2← | RJ1 ↓ | RJ2→ | ; |
| Lj3← | LJ3→ | LJ5 open | LJ5 close | Reset | RJ5 open | RJ5 close | RJ3← | RJ3→ | / |
- Left Arm: https://github.com/otischung/robot_arm_esp32/tree/left-arm-J5-master
- Right Arm: https://github.com/otischung/robot_arm_esp32/tree/right-arm-J5-master
- Docker Image: https://github.com/otischung/pros_AI_image
Below are the devices we need.
- Arduino ESP32 *2
- Arm-control board, e.g., Raspberry Pi, Jetson Orin Nano
-
Follow the link for the left and right arms shown above to upload Arduino C++ code to ESP32.
-
Pull the docker image into the arm-control board by the following command:
docker pull ghcr.io/otischung/pros_ai_image:latest -
Download this project into the arm-control board.
-
In the arm-control board, run the robot control shell script to create the container.
-
Run
colcon build --symlink-installto build the project "robot_control". -
Open the arm writer, and arm keyboard inside the container.
ros2 run robot_control arm_writer ros2 run robot_control arm_keyboard
-
We've defined the
ttyUSB0to be the left robot arm and thettyUSB1to be the right robot arm. -
If the order of the
ttyUSBID is not like we expected, then you can pass the argument into the ROS node. -
If the argument is string, then it will be set directly.
ros2 run robot_control arm_writer --ros-args -p left:=/dev/ttyACM0 -p right:=/dev/ttyUSB0
-
If the argument is integer, then this integer will be appended to
/dev/ttyUSB.ros2 run robot_control arm_writer --ros-args -p left:=0 -p right:=1
This is same as
ros2 run robot_control arm_writer --ros-args -p left:=/dev/ttyUSB0 -p right:=/dev/ttyUSB1
-
The setup method is same for
arm_reader.