Skip to content

A 6 degree of freedom (DOF) robot arm is controlled using the ROS2 robotic manipulation platform, MoveIt 2. The ROS2 Humble version of MoveIt 2 is used, which runs in a Docker container on an Nvidia Jetson Nano board. The robot arm is equipped with an Intel Realsense D415 depth camera used to detect ArUco markers on objects to be picked up.

License

Notifications You must be signed in to change notification settings

TheNoobInventor/akabot

Repository files navigation

Akabot

Akabot, a 6 degree of freedom (DOF) robot arm, is controlled using the ROS2 robotic manipulation platform, MoveIt 2. The ROS2 Humble version of MoveIt 2 is used, which runs in a Docker container on an Nvidia Jetson Nano board. The robot arm is equipped with an Intel Realsense D415 depth camera used to detect ArUco markers on objects to be picked up.

(Work in Progress)

Package Overview

  • akabot_aruco : Contains configuration, launch and node files to use ArUco markers with akabot.
  • akabot_bringup : Contains ros2_control hardware component for PCA985 servo driver, launch files to bring up the depth camera and the real akabot.
  • akabot_description : Contains the URDF description files for akabot, sensors and ros2_control.
  • akabot_gazebo : Contains configuration, launch and world files needed to simulate akabot in Gazebo Fortress.
  • akabot_moveit_config : Contains configuration files for MoveIt2.

Hardware

Part list

The following components were used in this project:

Part
1 Robot arm kit
2 Nvidia Jetson Nano 4GB
3 Nvidia Jetson Nano case (optional)
4 SanDisk 64 GB SD Card
5 PCA9685 16 channel PWM Servo Driver
5 5V 5A (minimum) regulated power supply
6 Toggle switch

Note: The robot arm kit does not include a 5V regulated power supply, thus 18650 batteries were initially used as seen in the pictures above and the media in the calibration section. However, this was replaced with a 5V regulated power supply to make regulated power available to the servo motors.

Some other tools or parts used in the project are as follows:

Tool/Part
1 Wooden plank / base
2 Drill and a 3mm drill bit
3 M4 screws (length dependent on plank thickness)
4 4x M3 standoffs (minimum 10mm in length)
5 Duck tape
5 Double-sided tape

There are different choices available for the servo motors when purchasing the robot arm kit. This project uses 4 M996R servos and 2 YF6125MG servo motors.

Calibrating servos

The servo motors will need to be calibrated to ensure that servos move in the expected range when rotating. For calibration, the electronic components are connected as shown in the wiring digram below.

The PWM Servo driver board pins are connected to the Jetson Nano GPIO pins to use the i2c interface as follows:

PWM servo driver board Jetson Nano pins
VCC 5V
GND GND
SCL 5
SDA 3

The servo motors are plugged into channels 1 to 6 on the PWM servo motor driver board.

The following image shows the components connected for servo calibration - the first two servo motors are YF6125MG type servo motors, while the remaining 4 are M996R type servo motors.

Project Assembly

The electronic connections for Akabot are the same as detailed in the calibration process, apart from using the 18650 batteries to power the servo motors. The robot arm is assembled according to this guide; some patience is required to complete the assembly.

The assembled robot arm is shown again below.

The PWM servo driver board is stuck to the robot arm base with double-sided tape and the robot arm base is attached to a wooden plank with M4 screws, for stability when Akabot is in motion.

Four M3 10mm brass standoffs were screwed into the ones provided in the robot arm kit. This is done to create an allowance to mount the D415 depth camera to the base with double-sided tape.

Finally, the D415 depth camera is plugged into one of the USB ports of the Jetson Nano.

Installation

Docker Setup

TODO:

  • Upload docker image to DockerHub

In the Nvidia Jetson Nano, navigate to the source folder in the ROS2 workspace, akabot_ws in this case:

cd akabot_ws/src

Then run the following command to spin up a Docker container in detached mode:

docker-compose up -d

Run this command to attach to the container:

docker attach src-akabot-container-1

Inside the container, navigate to the source directory to start development:

cd /home/akabot_ws/src

Rviz

Gazebo Fortress

Launch MoveIt2 and RViz:

ros2 launch akabot_moveit_config moveit_rviz.launch.py use_sim_time:=True

Launch Gazebo Fortress:

ros2 launch akabot_gazebo gz_launch.py

Acknowledgment

About

A 6 degree of freedom (DOF) robot arm is controlled using the ROS2 robotic manipulation platform, MoveIt 2. The ROS2 Humble version of MoveIt 2 is used, which runs in a Docker container on an Nvidia Jetson Nano board. The robot arm is equipped with an Intel Realsense D415 depth camera used to detect ArUco markers on objects to be picked up.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published