Skip to content

ASME-ground-robot/2021-22

Repository files navigation

Ground Robot "Cali" (version 2021-22)

American Society of Mechanical Engineers at Cal State LA
Robotics Laboratory, California State University, Los Angeles

How to edit markdown files - https://www.markdownguide.org/cheat-sheet

Contents

About

Robot "Cali" is an open-source robotic platform for research and education. The robot is made of off-the-shelf components and integrates many open-source software packages. The robot has a embodided construct and a digital twin, allowing researchers and educators to develop and test their algorithms in both a simulated enviornment and the real world.

System at a glance

  • hardware - four wheel drive platform, one robot arm (scorbot-er3u)
  • software - Ubuntu 18.04, ROS, and packages (Rviz, Gazebo, opencv, ...)
  • computer - Jetson TX2
  • sensors - IMU, GPS, Lidar, Antenna, Transceiver, Camera, Encoders

The mechanical systems encompasses the chassis, suspension system, and drive system. The chassis consists of 1"x1" galvanized steel bolt together tubing for modularity. The suspension system consists of an independent radius arm setup with air shock absorbers for off road capabilities. The drive systems consists of 12V motors with 9" beach wheels for sandy and rocky terrain.

The electrical systems encompasses power, sensing, controls, and communications. A 12V 50ah li-on battery is used to power all electronics on the rover with buck and boost converters for voltage differences. Sensing comprises of a 3-D camera, 2-D lidar, absolute encoders, an IMU, and a gps all used to sense and navigate its surroundings. The control system uses microcontrollers, microprocessors, and motor drivers to operate and drive the robot. The communication system uses an omni directional antenna connected through a network system via router for wireless teleoperation.

Software organization

Brief descriptions of each folder. For more detailed information, please look at folder's readme files. (Will create soon)

  • hector_slam: package that uses lidar laser data to scan an environment and create a grayscale 2d map
  • microcontroller: all arduino codes used to control the robot and arm
  • ros-imu-bno055: package that lets us read all imu data and represent it in rviz
  • rover: all misc. files worked on the robot like teleoperation, opencv, etc.
  • rover_autonav: all the autonomous navigation simulations used for this project
  • rplidar_ros: package to get the rplidara1 to work with ros
  • scorbot: visualization and controls of the robotic arm
  • shared_tavern: used as a sharing folder to share files
  • doc: screenshots and images

Simulation

Autonomous Navigation

All codes used to control hardware for the rover. Contains important microcontroller codes and libraries as well as codes for teleoperation using joystick, autonomous navigation, sensor data integration, computer vision, and necessary ROS files.

Making a Gazebo World

To launch an empty world in gazebo:

  • open a terminal
  • type gazebo
  • press the key enter, this will open the Gazebo application with an empty world environment

Gazebo Instructions 1

Next on the top left, access the edit category and select Building Editor

Gazebo Instructions 2

This should show below:

Gazebo Instructions 3

NOTE: This tutorial assumes the user has a “blueprint” of the model. If not, then the user can customize to their needs as shown on the left.

Using a blueprint image of a map, the user can import it to show on the white square grid above. Note that importing an image is only supported by the following formats: .jpg and .png

Gazebo Instructions 4

Once imported, a scale of the map is needed for proportional consistency of the real-world to the simulations.

Gazebo Instructions 5 Gazebo Instructions 6

Now, simply trace the obstacles on the white grid with the wall option. This represents the areas where laser scans would bounce to emit back data.

Once the map environment is traced with walls, the user has an option to decorate the barriers with color or visual textures such as a brick wall.

Gazebo Instructions 7 Gazebo Instructions 8 Gazebo Instructions 9 Gazebo Instructions 10

To save the model, access the file category on the top left and provide a name of choice including the directory

Note: this only saves the environment as a model and not a world. So be careful to leave the pop up window as the model cannot be edited once exiting.

This saves the model in the building editor folder directory but can be customized to save in whichever folder desired

Gazebo Instructions 11

To include items such as a coke can, access the insert category and from the huge number of options, place items by dragging the option to the world environment.

Gazebo Instructions 12

To save a world, access the file category and select save world as save the end of your file as .world

Gazebo Instructions 13 Gazebo Instructions 14

Robotic Arm

Packages from ROS used to control the robotic arm using simulations. Contains microcontroller code, Moveit (Rviz) simulation packages, and Arm URDF model

Gazebo Model

Operating the Robotic Arm

Directories: ScorboTesting/src/scorbot_movelt/launch

  • ScorboTesting is the name of the workspace
  • Scorbot_moveit is the name of the package

Steps:

  1. Arduino to Jetson Open the Arduino Application Software Verify and upload the code file: R.A.6MotorPID

Robotic Arm Instructions 1

  1. Rosserial

Connects ROS to Arduino using rosserial

  rosrun rosserial_python serial_node.py_port:=/dev/ttyACM0_baud:=115200
  1. Open a new terminal

Go to ScorboTesting

  source devel/setup.bash
  roslaunch scorbot_moveit demo.launch 

Before moving the robotic arm through simulation, make sure to manually position the arm close to #^o and the end effector slightly pointing up. An example of this is shown below:

Robotic Arm Instructions 2 Robotic Arm Instructions 3

Robotic Arm Instructions 4

Motion the ball located in between the gears of the end-effector

Robotic Arm Instructions 5 Robotic Arm Instructions 5

Planning and executing poses are now permissible

Perception

In order too sense Cali's surroundings, a 3-D camera is used to map the area around the rover. The specific type of 3-D camera used is the Intel Realsense d435. The data will then be used in ROS via a topic.

Installation instructions

The software is based on ROS-Melodic on Ubuntu 18.04.

  1. Open up a terminal on your linux machine.
  2. mkdir -p ~/catkin_ws/src
  3. git clone https://github.com/CSULA-URC/2021-22.git (in src folder)
  4. cd ~/catkin_ws/
  5. catkin_make
  6. source devel/setup.bash

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published