0
$\begingroup$

I embarked on a final year project to build a robot powered by ROS 2, despite my initial lack of familiarity with the framework. I'm inspired by the TurtleBot and plan to incorporate ROS 2 Navigation 2 (nav2) and other autonomous navigation features into my robot's design. The robot features triple omni wheels, which presented a challenge. I couldn't find existing URDF files online that matched my wheel configuration, and I lack the expertise to create them myself.

To begin, I decided to set up ROS 2 on a Raspberry Pi and Arduino Mega for my robot. My goal was to establish basic control using a joystick. However, I hit another roadblock. I couldn't find any ros2_control demo packages or examples that matched my wheel configuration.

My question is whether there's a straightforward approach for sending X and Y speed variables from the Raspberry Pi to the Arduino and receiving position coordinates (calculated by the Arduino using encoder values) in return. Alternatively, I'm open to suggestions for a simpler and more effective way to control my robot in this configuration.

$\endgroup$
1
  • $\begingroup$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. $\endgroup$
    – Community Bot
    Commented Oct 6, 2023 at 19:59

2 Answers 2

1
$\begingroup$

The very first entry after a google search point to this repository. It is written for ROS 1, but you can maybe directly use/adapt the URDF. If you are not familiar with this, have a look at the vast amount of URDF tutorials and tools like phobos etc.

I fear that there doesn't exist a ros2_controller matching your setup. You could write a new plugin using the steering controller library, we are happy for your contribution to ros2_control.

Start with getting familiar of the forward and inverse kinematics of your robot, e.g

Then create a new controller plugin, maybe by copying the tricycle controller as a starting point. There you have to implement the kinematics from above etc.

$\endgroup$
0
$\begingroup$

I developed a simulation environment to 3-wheeled omnidirectional robot as as a project for my master's degree. Take a look in the axebot repository. The URDF is in the axebot_description package. Additionally, I created based on the diff_drive_controller my own omnidirectional_controller. Take a look in the Omnidirectional Robot Kinematics and Odometry which explain the application of the forward and inverse kinematics for the 3-wheeled omnidirectional robot that I worked.

I think that these resources may guide you to develop a simulation environment to your robot. However, to control the real robot, you will also need to create a hardware component.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.