Skip to content
MasHBRS edited this page Feb 13, 2024 · 8 revisions

Direct Base Controller - Wiki

This is the wiki page of youbot project. Youbot is a robot who receives a target positition. The main node here is named "direct_base_controller", which receives the target position. It calculates the error (difference) between the target position and the base frame. If there is no difference then the youbot stops. Otherwise, the youbot moves as long as it is has not reached to its destination or it has not found any obstacles within its collision distance. Also the youbot contains a speed limiter which makes sure it will never exceeds the maximum speed limit. Below is a flowchart of the system.

Screenshot 2023-11-27 131459

This repository is a port from here.


Codes:

This project is a c++ translation of a previously developed project in ROS 1 using python, In the following you may find the original codes for the different components.

Class ComponentWisePoseErrorMonitor Click here.

Class ComponentWisePoseErrorCalculator Click here.

Class TwistSynchronizer Click here.

Class TwistLimiter Click here.

Class TwistController Click here.


Visualization:

  1. Under the link you may find the performance of youbot without any obstacles.

  2. Under the link you may find the performance of youbot with obstacles.

  3. Under the link you may find the performance of youbot with node life cycle feature.


Passed User Stories:

We met all five user stories defined for the youbot performance.

  1. The codes are written in c++ for ROS 2 (rolling) environment.
  2. The youbot moves towards the arbitrary target position.
  3. The youbot employs the lifecycle node.
  4. The parameters in the project are configurable.
  5. The obstacle avoidance is the last user story defind for the youbot.

Parameter Configuration:

In each run you change the parameter of the youbot using the config.yaml file. param config