The Annin Robotics AR4 robot is a 6DOF desktop size industrial robot that is a free, open plan low cost robot. This repository contains the necessary ROS 2 packages to plan and execute motions in Gazebo sim. It provides the arm description, simulation controllers and Moveit configuration needed to command it.
ar4_control
: Contains the configuration for the simulation ros2_control controller.ar4_gazebo
: Gazebo simulation for the ar4 arm.ar4_description
: Contains the URDF of the arm.ar4_moveit_config
: Contains configuration and launch files to run and command the arm.
It is a requirement to have docker engine
with the docker compose plugin
already installed in the host machine.
Build and/or run the container for Gazebo simulation
./docker/run.sh
Build and/or run the container for the real robot:
- Connect the teensy usb to the computer
- Run:
./docker/run.sh -s ar4_hardware
Force rebuilding the image
./docker/run.sh --build
Build the packages
colcon build
Source the built packages
source install/setup.bash
After building and sourcing the packages, run the Gazebo simulation:
ros2 launch ar4_gazebo gazebo_moveit.launch.py
By default, this will launch the simulation with the ROS bridge enabled.
If you want to disable the ROS bridge, use:
ros2 launch ar4_gazebo gazebo_moveit.launch.py use_ros_bridge:=false
To plan and command the arm to execute a motion, this launch file will also start MoveIt automatically. Once launched, you should see RViz showing the robot visualization and the MotionPlanning panel on the left.
There are two ways of selecting a target position for the arm, both through RViz:
- Selecting a random valid position.
- Moving the end effector to a desired position.
This will select a random position for the arm that would not cause a collision with itself or objects around it, calculated from the semantic information of the robot.
Moveit_RandomPosition.mp4
This allows you to select a goal position for the end effector, which is currently the last link in the arm as no gripper is being used. This is done by dragging and dropping where the end effector should move to.
Moveit_DesiredPosition.mp4
All packages in this repository except for ar4_description
are distributed under a BSD 3-Clause License.
ar4_description
is a derivative work from the ar4_ros_driver repository, which is distributed under a MIT License.