ROS2 packages for Annin Robotics AR3 robot arm. AR3 arm used for development had been upgraded to AR4 platform by retrofitting Teensy 4.1 microcontroller with 600 MHz clock speed to reduce latency between processing ROS commands. The observed latency was a result from hybridizing teensy driver code from ar3_core to utilize differential stepping logic from annin robotics driver code in order to maintain constant end-effector Z-height when moving along X/Y cartesian path.
- Ubuntu 20.04
- ROS2 Foxy
- Ported ar3_core packages from ROS1 to ROS2
- Extended functionality to utilize moveit_servo for xbox controller and wacom tablet input for real-time jogging
-
ar3_hardware
Workspace containing packages to control physical hardware and recieve input from xbox / wacom controllers.
git clone https://github.com/tran-nick/AR3_ROS2.git cd ~/AR3_ROS2/ar3_hardware source /opt/ros/foxy/setup.bash colcon build --symlink-install
source install/setup.bash # source workspace environment ros2 launch ar3_hardware_interface ar3_hardware.launch.py
ros2 launch xboxdemo moveit_servo.launch.py
ros2 launch xboxdemo hmi.launch.py
-
ar3_simulation
Workspace with fake hardware loaded. Used for testing new node developments and visualization.
git clone https://github.com/tran-nick/AR3_ROS2.git # Don't run if you've already cloned repo cd ~/AR3_ROS2/ar3_simulation source /opt/ros/foxy/setup.bash colcon build --symlink-install
ros2 launch ar3_moveit_config demo2.launch.py
-
teensyduino_sketches
Teensduino drivers for taking string commands from either ARCS.py program from Annin Robotics or ROS2 application. Code is extension of driver from ar3_core
ROS_ARCS_hybrid_indie.ino
-- Since we upgraded AR3 with AR4 parts, we needed driver that would work with both Teensy 3.5 and Teensy 4.1 board. This gets the board information from Arduino IDE and conditionally compiles driver based on Teensy you are uploading code to.