Introduction to Chefbot- a DIY mobile robot and its hardware configuration

The following are the mandatory requirements for interfacing a mobile robot with ROS navigation package:

  • Odometry source: Robot should publish its odometry/position data with respect to the starting position. The necessary hardware components that provide odometry information are wheel encoders, IMU, and 2D/3D cameras (visual odometry).
  • Sensor source: There should be a laser scanner or a 3D vision sensor sensor, which can act as a laser scanner. The laser scanner data is essential for map building process using SLAM.
  • Sensor transform using tf: The robot should publish the transform of the sensors and other robot components using ROS transform.
  • Base controller: The base controller is a ROS node, which can convert a twist message from Navigation stack to corresponding motor velocities.
Figure 1: Chefbot prototype

We can check the components present in the robot and determine whether they satisfy the Navigation stack requirements. The following components are present in the robot:

  • Pololu DC Gear motor with Quadrature encoder (https://www.pololu.com/product/1447): The motor is operated in 12 V, 80 RPM, and 18 kg-cm torque. It takes current of 300 mA in free run and 5 A in stall condition. The motor shaft is attached to a quadrature encoder, which can deliver a maximum count of 8400 counts per revolution of the gearbox's output shaft. Motor encoders are one source of odometry of robot.
  • Pololu motor drivers (https://www.pololu.com/product/708): These are dual motor controllers for Pololu motors that can support up to 30 A and motor voltage from 5.5 V to 16 V.
  • Tiva C Launchpad Controller (http://www.ti.com/tool/ek-tm4c123gxl): This robot has a Tiva C LaunchPad controller for interfacing motors, encoders, sensors, and so on. Also, it can receive control commands from the PC and can send appropriate signals to the motors according to the command. This board can act as a embedded controller board of the robot. Tiva C LaunchPad board runs on 80 MHz.
  • MPU 6050 IMU: The IMU used in this robot is MPU 6050, which is a combination of accelerometer, gyroscope, and Digital Motion Processer (DMP). This motion processor can run sensor fusion algorithm onboard and can provide accurate results of roll, pitch, and yaw. The IMU values can be taken to calculate the odometry along with the wheel encoders.
  • Xbox Kinect/Asus Xtion Pro: These are 3D vision sensors and we can use these sensors to mock a laser scanner. The point cloud generated from these sensors can be converted into laser scan data and used in the Navigation stack.
  • Intel NUC PC: This is a mini PC from Intel, and we have to load this with Ubuntu and ROS. The PC is connected to Kinect and LaunchPad to retrieve the sensor values and the odometry details. The program running on the PC can compute TF of the robot and can run the Navigation stack and associated packages such as SLAM and AMCL. This PC is placed in the robot itself.

From the robot components lists, it is clear that it satisfies the requirements of the ROS navigation packages. The following figure shows the block diagram of this robot:

Figure 2: Block diagram of Chefbot

In this robot, the embedded controller board is the Tiva C LaunchPad. All the sensors and actuators are connected to the controller board and it is connected to Intel NUC PC for receiving higher level commands. The board and the PC communicate in UART protocol, IMU and the board communicate using I2C, Kinect is interfaced to PC via USB, and all the other sensors are interfaced through GPIO pins. A detailed connection diagram of the robot components follows:

Figure 3: Connection diagram of Chefbot
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.72.78