Skip to content

Research in Wheeled Robotics using CoppeliaSim

By Pranav A. Bhounsule  |  pranav@uic.edu


Outcomes of Research

At the end of this research, students will be able to:

  1. Learn basic usage of the robotics simulator, CoppeliaSim
  2. Create models of robotic systems
  3. Write Lua code to control robots
  4. Evaluate how to use sensors and actuators
  5. Program a robot(s) to achieve a desired task

Equipment List and Resources

  1. Please download and install the education version of CoppeliaSim (it is free): coppeliarobotics.com/downloads
  2. We will use the programming language Lua to program the robots. Here is one resource to learn Lua: Lua Crash Course. Please feel free to search the internet for other resources.
  3. Please see (and bookmark) the regular API. This provides the list of functions that you can use to program robots: API Functions
  4. There is an active CoppeliaSim forum where you can ask and get answers: forum.coppeliarobotics.com
  5. There are many examples and videos on CoppeliaSim projects on YouTube and GitHub. Video tutorials with code using different versions of CoppeliaSim are available here: tiny.cc/educate

1. Basics of CoppeliaSim (1 week)

  1. Create, modify, and move shapes — Watch video
  2. Change the viewpoint (pan/rotate/zoom/fit-to-view) — Watch video
  3. Create composite shapes — Watch video
  4. Create a simulation — Watch video

Exercise

Your goal is to create a cascading effect like that in a Rube Goldberg machine using geometries available in CoppeliaSim. You can also arrange different orientation/position/size/shape combinations to create more interesting behaviors. Use at least 4 objects.

Here is one example from YouTube: Watch example

Send your .ttt file to pranav@uic.edu

2. Modeling and Controlling a Differential Drive Car (1 week)

  1. Modeling a differential drive car — Watch video
  2. Controlling a differential drive car — Watch video

Exercise

Get the car to move in a rectangular path by controlling the speed of the wheels.

Help

If you find it difficult to model the car, you can download the model from here and proceed to control it: differential_drive.ttt

Send your .ttt file to pranav@uic.edu

3. Line Following Robot (1 week)

Download the Line Following Robot: line_follower_1_speed.ttt

  1. Understanding how to access the vision sensors — Watch video
  2. Algorithm for line following — Watch video

Exercise

Download this scene and copy-paste the code you developed: line_follower_exercise.ttt

Tune the controller to complete the loop in the fastest time.

Send your .ttt file to pranav@uic.edu

4. Wall Following Robot (1 week)

Download the wall following robot here: wall_follower.ttt

  1. Understanding how to access the proximity sensors — Watch video
  2. Algorithm for wall following (feel free to develop your own too) — Watch video

Exercise

Download this scene and copy-paste the code you developed for the wall following robot: maze_solver_exercise.ttt

Tune the controller to move from start to goal in the fastest time without colliding with the walls.

Here is an example of the finished maze navigation: Watch example

Send your .ttt file to pranav@uic.edu

5. Final Project (2 weeks)

Your goal is to use the knowledge you have gained to make an informed choice for a robotic project. Then, you will implement the project in CoppeliaSim and create a short presentation explaining your work.

Here is a list of possible robot projects based on mobile cars. But feel free to choose something else. Search YouTube and the internet for more ideas.

  1. A robot that navigates through a maze
  2. A robot that avoids obstacles and drives to the goal
  3. A robot that pushes objects out of a marked area. The robot detects objects using proximity sensors. (Hint: search for sumo bot)
  4. Create a video game using a mobile robot. This video shows how to program keyboard presses: Watch video
  5. A robot that parallel parks using vision sensors
  6. A robot that drives on a road using vision sensors

Submission

Send your .ttt file and presentation to pranav@uic.edu