Skip to content

ZiadSaoud/Robo_Can_picker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robo_Can_picker

Description

The goal of the robot is to traverse a maze by reading QR codes, then pick a can using the on-board gripper. The robot will extract direction commands from the QR codes to navigate the maze and using color detection will locate the position of the can relative to the robot in order to pick it.

image

Robot circuitry

image

Forward and Inverse Kinematics:

The forward and inverse kinematics model of the robot according to the following article: image image

ROS Computing Graph:

rosgraph TX

The Raspberry pi, PC, and ESP8266 are connected to the same access point. The raspicam_node Ros node is running on the raspberry pi and publishing sensor_msgs/CompressedImage message type on the topic /raspicam_node/image/compressed. Roscore is running on the pc, in order to connect the Ros node running on the pi to the Ros running on the pc run the following on the pi before launching the camera node export ROS_MASTER_URI=http://PC Ip address:11311

The Image_republisher node converts the sensor_msgs/CompressedImage message to sensor_msgs/Image message type.

The Vision_node processes the images and distance data from the /distance topic and publishes geometry_msgs/Twist messages on the /cmd_vel topic to order the robot to move.

The serial_node is running on the ESP8266 it offers the following custom services:

  1. gripper_srv:service to open and close the gripper.
  2. servo_srv :service to set the servo attached to the camera and ultrasonic sensor to a specific angle.

and publishes the distance read from the ultrasonic sensor over the topic /distance.

Demo video

IMAGE

Tools used:

Raspberry pi ubuntu 16.04 disk image with Ros already installed from Ubiquity Robotics